<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:10:37 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[MDSAL-697] Do not use AddedByUsesAware</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-697</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;If we discount obsolete components, we have two remaining users of isAddedByUses():&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;CaseNodeCodecContext.createBindingArg(), which uses it to decide whether to use a case qualifier or not&lt;/li&gt;
	&lt;li&gt;Generators are using them for various tricks around ignoring statements and/or performing additional lookups&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;The first case should be moved to BindingRuntimeContext, and perhaps receive information about which CaseSchemaNodes should use the alternate Item.&lt;/p&gt;

&lt;p&gt;The second case is the crux of the issue, as we need to discern the various uses and how they relate to &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-696&quot; title=&quot;Do not use DerivableSchemaNode&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-696&quot;&gt;&lt;del&gt;MDSAL-696&lt;/del&gt;&lt;/a&gt;. Once we understand what logic (transitively) depends on accurate information, we can build the requisite bits of state into individual Generators.&lt;/p&gt;

&lt;p&gt;The theory of operation is such that we have two guidelines from the parser: EffectiveStatement and its DeclaredStatement (if it was declared). There are a few rules:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;if a statement&apos;s effective parent.getDeclared().substatements() contains that statement&apos;s getDeclared() object, then the statement has isAddedByUses() == false and isAugmenting() == false, otherwise&lt;/li&gt;
	&lt;li&gt;if a statement&apos;s getDeclared() can be (recursively) found in any grouping used by its parent, then the statement has isAddedByUses() == true&lt;/li&gt;
	&lt;li&gt;if a statements&apos;s getDeclared() can be (recursively) found in any augment attached to its parent, then the statement has isAugmenting() == true&lt;/li&gt;
	&lt;li&gt;if a statement has isAugmenting() == true and apply it&apos;s getDeclared() is found via method 2. by using its augment as a parent, then it also has isAddedByUses()&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;These rules need to be validated and they obviously contain a lot of poking around, hence we will to perform some score keeping while we resolve what&apos;s what. Also note this relies on inter-statement linkage be known, which in turn requires generators to be present &amp;#8211; which is a chicken-and-egg problem.&lt;/p&gt;

&lt;p&gt;Solving that amounts to performing incremental linkage, where we start populating the tree and remembering what statements are unresolved, and then proceed with attempting to link groupings and augments, reporting when either forward progress has been made or full subtree linkage has completed. If we fail to make any progress, we have found a bug and need to report that. Once we completely link modules, we can proceed with gathering the information for BindingRuntimeTypes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="34663">MDSAL-697</key>
            <summary>Do not use AddedByUsesAware</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Oct 2021 20:43:55 +0000</created>
                <updated>Fri, 15 Oct 2021 23:15:54 +0000</updated>
                                                                            <component>Binding codegen</component>
                    <component>Binding runtime</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="69717" author="rovarga" created="Fri, 15 Oct 2021 23:15:54 +0000"  >&lt;p&gt;With initial movement from mdsal-binding-dom-codec it seems we are cracking something larger open. As we will be forced reduce reliance of SchemaNode uniqueness, it seems prudent to start capturing state in a dedicated structure, which we may reuse as a reference point later.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="34662">MDSAL-696</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>YANGTOOLS-1348</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i04087:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>