<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:56:21 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-1509] Revise ExtensibleObject API</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-1509</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;ExtensibleObject relies on ClassToInstanceMap indirection through getExtensions() method. Since we have default methods (since Java 8), we can do better without the Guava tie-in:&lt;/p&gt;

&lt;p&gt;&#160;&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; ExtensibleObject {
    &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; &amp;lt;T &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; E&amp;gt; @Nullable T extension(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;Class&lt;/span&gt;&amp;lt;T&amp;gt; type) {
      &lt;span class=&quot;code-comment&quot;&gt;// Iterate over availableExtension() and use isInstance() check
&lt;/span&gt;    }

    Collection&amp;lt;? &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; E&amp;gt; supportedExtensions();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Given there typically are only one or two extensions, the search is equally-perfomant and users end up cleaner:&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;
ExtensibleObject obj;
&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; ext = obj.extension(FooExtension.class);
&lt;span class=&quot;code-comment&quot;&gt;// ... whatever&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;where previous they&apos;d do:&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;
ExtensibleObject obj;
&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; ext = obj.getExtensions().getInstance(FooExtension.class);
&lt;span class=&quot;code-comment&quot;&gt;// ... whatever &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This will make it slightly ugly for extensions which build on top of each other, but we have exactly &lt;b&gt;0&lt;/b&gt; of those and, at the end on the day, they&apos;d have to co-operate anyway, so a reasonable implementation would use the same object &#8211; and we cover that use case.&lt;/p&gt;</description>
                <environment></environment>
        <key id="36935">YANGTOOLS-1509</key>
            <summary>Revise ExtensibleObject API</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="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>
                            <label>pt</label>
                    </labels>
                <created>Tue, 16 May 2023 23:01:02 +0000</created>
                <updated>Wed, 17 May 2023 11:13:53 +0000</updated>
                            <resolved>Wed, 17 May 2023 11:13:53 +0000</resolved>
                                                    <fixVersion>11.0.0</fixVersion>
                                    <component>common</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                        <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|i04567:</customfieldvalue>

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