<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:55:14 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>[YANGTOOLS-1114] Reconsider DefaultEffectiveStatement definition</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1114</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;Our current definition of DefaultEffectiveStatement (and declared statement by extension) requires users to manually parse the value to correlate it to the actual value.&lt;/p&gt;

&lt;p&gt;What we really would like to say is that both these have a bound value, which is bound the parent type &#8211; i.e. the bracket is EffectiveStatement&amp;lt;Object&amp;gt;, specialized to Uint16 for uint16 types.&lt;/p&gt;

&lt;p&gt;Since we are required to parse the argument when a statement is defined, this needs some more thought as to the inference mechanics &#8211; i.e. before we can successfully create the statement we need to have its parent statement perform type inference to resolve the base type.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32789">YANGTOOLS-1114</key>
            <summary>Reconsider DefaultEffectiveStatement definition</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</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>Tue, 23 Jun 2020 16:11:49 +0000</created>
                <updated>Fri, 5 Jan 2024 14:59:38 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>parser</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="70012" author="rovarga" created="Wed, 27 Oct 2021 11:31:14 +0000"  >&lt;p&gt;DataNodeIdentifier is our candidate for yang.common&apos;s representation of YANG&apos;s instance-identifier type.&lt;/p&gt;</comment>
                            <comment id="70013" author="rovarga" created="Wed, 27 Oct 2021 12:18:32 +0000"  >&lt;p&gt;RFC7950 defines four places where a &apos;default&apos; statement can occur, which boil down to two distinct kinds:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;when used under a &apos;typedef&apos;, a &apos;leaf&apos; or a &apos;leaf-list&apos;, where it binds to the value domain (i.e. boils down to one of the built-in types, perhaps restricted)&lt;/li&gt;
	&lt;li&gt;when used under a &apos;choice&apos;, where it binds to a child case identifier, i.e. it boils down to QName along the SchemaNodeIdentifier axis&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;The value domain part a bit thorny where &apos;instance-identifier&apos;, &apos;leafref&apos; and &apos;identityref&apos; type are concerned, as they differ in how namespaces are bound. In both cases qualified qnames are bound at the declaration site, but then unqualified qnames are&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;bound at the declaration site for &apos;typedef&apos; default&lt;/li&gt;
	&lt;li&gt;bound at the particular instantiation site for &apos;leaf&apos; and &apos;leaf-list&apos; default&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;We need to consider all of these in this design. I think we can expend some memory in making an indirection, i.e. to have a DefaultArg interface and that providing access to values. I think it is fair for parser implementation to provide QualifedBound values for leaf/leaf-list, just as is the case with XPath expressions. Users usually have the means to understand the default namespace at the instantiation site.&lt;/p&gt;</comment>
                            <comment id="70014" author="rovarga" created="Wed, 27 Oct 2021 14:02:06 +0000"  >&lt;p&gt;The other part is that we need to understand how the type system is wired before we call DefaultStatementSupport.parseArgument(), simply because we want immutable classes and in order to correctly interpret the incoming string we need to know in what domain it resides.&lt;/p&gt;

&lt;p&gt;This implies that all statements which could potentially be holding back a default statement &lt;b&gt;must&lt;/b&gt; be present in a previous phase &amp;#8211; and must gate its finalization of that previous phase with inference actions, so that when that previous phase completes, &apos;default&apos;s parent has either a populated namespace, or can reconstruct that information on demand (for example via a vritual namespace?).&lt;/p&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="34802">YANGTOOLS-1356</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03t7z:</customfieldvalue>

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