<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:09:47 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-428] Add anydata/anyxml Binding Spec interfaces</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-428</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;In order to support generation of code for anydata and anyxml statements, we need to have an anchor point in the binding specification interfaces on top of which generated code can graft onto.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="31554">MDSAL-428</key>
            <summary>Add anydata/anyxml Binding Spec interfaces</summary>
                <type id="10102" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10316&amp;avatarType=issuetype">Sub-task</type>
                            <parent id="26832">MDSAL-10</parent>
                                    <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="rovarga">Robert Varga</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                    </labels>
                <created>Wed, 27 Mar 2019 14:28:47 +0000</created>
                <updated>Fri, 29 Mar 2019 00:42:34 +0000</updated>
                            <resolved>Fri, 29 Mar 2019 00:42:34 +0000</resolved>
                                                    <fixVersion>4.0.0</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="66620" author="rovarga" created="Wed, 27 Mar 2019 15:01:13 +0000"  >&lt;p&gt;As the data model underlying anydata/anyxml is not available at compile-time, whatever we generate will only be a read-only type capture of the data. Furthermore the underlying object model may be dynamic and subject to run-time constraints. For example if anydata comes from XML it will look differently than if it comes from JSON &#8211; it may even be NormalizedNode data with or without the corresponding schema.&lt;/p&gt;

&lt;p&gt;This means we can only generate tagging interface to hold a reference to the data and expose some minimal information about it, the rest will need to go through some runtime service &#8211; both in terms of unpacking to binding world (i.e. &quot;interpret this anydata in terms of global schemacontext rooted here&quot;) and packing back (&quot;convert this binding structure into an anydata instance living here&quot;).&lt;/p&gt;

&lt;p&gt;To support these operations, such generated instance really needs to bind only to an opaque object model, so the baseline interfaces are very simple:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; AnyxmlObject&amp;lt;T &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; AnyxmlObject&amp;lt;T&amp;gt;&amp;gt; &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; BindingObject, DataContainer {
    @NonNull &lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;&amp;lt;T&amp;gt; implementedInterface();

    @NonNull OpaqueData&amp;lt;?&amp;gt; getValue();
}

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;where OpaqueData is a type-capture interface:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;interface&lt;/span&gt; OpaqueData&amp;lt;T&amp;gt; {
    @NonNull &lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;&amp;lt;T&amp;gt; getObjectModel();
    @NonNull T getData();
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    </comments>
                    <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|i03nbj:</customfieldvalue>

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