<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:08:59 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-198] Augmentable&apos;s Builder addAugmentation variant without first class argument</title>
                <link>https://jira.opendaylight.org/browse/MDSAL-198</link>
                <project id="10137" key="MDSAL">mdsal</project>
                    <description>&lt;p&gt;It would be &quot;nice&quot; (this is an Enhancement, not a Bug) if an Augmentable DataObject would have an alternative sugar shortcut new addAugmentation method variant which does not require the first (java.lang.Class&amp;lt;? extends Augmentation&amp;lt;...&amp;gt;&amp;gt; augmentationType but only the second Augmentation&amp;lt;...&amp;gt; augmentation argument.&lt;/p&gt;

&lt;p&gt;This would just shorten the typical and often found code which IMHO is a little a silly, where the interface of an augmentation has to be specified together with creating (&quot;can&apos;t it figure this out by itself??&quot; - kind of thing).&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;br/&gt;
URL: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45742/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45742/&lt;/a&gt;&lt;/p&gt;</environment>
        <key id="27020">MDSAL-198</key>
            <summary>Augmentable&apos;s Builder addAugmentation variant without first class argument</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="5" iconUrl="https://jira.opendaylight.org/images/icons/priorities/trivial.svg">Lowest</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="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Sep 2016 16:12:25 +0000</created>
                <updated>Sun, 19 Jul 2020 10:20:42 +0000</updated>
                            <resolved>Tue, 21 Apr 2020 07:47:51 +0000</resolved>
                                                    <fixVersion>6.0.0</fixVersion>
                                    <component>Binding codegen</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="54478" author="vorburger" created="Fri, 16 Sep 2016 16:25:08 +0000"  >&lt;p&gt;If only Augmentation had a getImplementedInterface() method just like DataContainer does, then it would seem totally feasible to generate convenience shortcut methods like this in *Builder classes:&lt;/p&gt;

&lt;p&gt;    public *Builder addAugmentation(Augmentation&amp;lt;...&amp;gt; augmentation) {&lt;br/&gt;
        this.addAugmentation(augmentation.getImplementedInterface(), augmentation);&lt;/p&gt;

&lt;p&gt;but of course Augmentation does not have getImplementedInterface() - yet.  I could see following possible solutions:&lt;/p&gt;

&lt;p&gt;1. In reality, one can see that all gen. YANG augmentations interfaces always extend both DataObject and Augmentation.  So initially I was tempted to propose that Augmentation simply extend DataObject or DataContainer .. but rovarga when asked on IRC if it &quot;would it be conceivable to make Augmentation extend DataContainer&quot; on IRC clarified that &quot;not sure, probably that&apos;s not what we want to do... pretty sure it&apos;s not &amp;#8211; due to InstanceIdentifier type safety &amp;#8211; cannot start with an Augmentation&quot;.&lt;/p&gt;

&lt;p&gt;2. We could attempt to factor out the getImplementedInterface() method currently declared on DataContainer into some new interface, and have both DataContainer and Augmentation extend that.  I&apos;ve tried that, and it lead to a frightening encounter with Java Generics Hell, so unless someone smarter sees a way of doing this that I missed, I don&apos;t think this is feasible (because getImplementedInterface() in DataContainer returns, rightfully Class&amp;lt;? extends DataContainer&amp;gt;, and Augmentation&apos;s getImplementedInterface() would have to return Class&amp;lt;? extends Augmentation&amp;gt; but that will, correctly, lead to type conflict on YANG augmentations interfaces always extend both DataObject and Augmentation.&lt;/p&gt;

&lt;p&gt;3. Just let Augmentation have its own getImplementedAugmentationInterface() method, LIKE DataContainer, but without any code sharing and inheritance (that&apos;s probably never needed; because the &quot;clients&quot; using this always know whether they&apos;re dealing with an Augmentation or a DataContainer)&lt;/p&gt;</comment>
                            <comment id="54479" author="vorburger" created="Fri, 16 Sep 2016 16:28:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45742/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45742/&lt;/a&gt; proposes implementation of approach 3.&lt;/p&gt;</comment>
                            <comment id="54480" author="martin.ciglan" created="Mon, 17 Oct 2016 11:09:57 +0000"  >&lt;p&gt;Hi&lt;/p&gt;

&lt;p&gt;is this still in progress? Please update. Many thanks.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10300">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="33066">MDSAL-575</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_10207" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>External References</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45742/&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45742/&lt;/a&gt;</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6733</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=6733]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02wx3:</customfieldvalue>

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