<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:54:41 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-921] Design insert/move operations on top of ordered (leaf-)lists</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-921</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;In order to implement &lt;a href=&quot;https://jira.opendaylight.org/browse/MDSAL-246&quot; title=&quot;Re-align data interaction model with RFCs 6241/8040/8072&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MDSAL-246&quot;&gt;MDSAL-246&lt;/a&gt; we need a way how to express insert/move operations within ordered lists.&lt;/p&gt;

&lt;p&gt;This should be a two-step process, with this issue dealing with the frontend operations and internal representation, i.e. how does the user express the operations and how they are tracked and applied within InMemoryDataTree.&lt;/p&gt;

&lt;p&gt;The results of these operations can result in straight overwrites being reported by the DataTreeCandidate and improving the situation there should be a separate effort.&lt;/p&gt;</description>
                <environment></environment>
        <key id="31153">YANGTOOLS-921</key>
            <summary>Design insert/move operations on top of ordered (leaf-)lists</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</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>Sun, 2 Dec 2018 16:11:09 +0000</created>
                <updated>Tue, 19 Sep 2023 16:20:55 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                                    <component>data-impl</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="65855" author="rovarga" created="Mon, 3 Dec 2018 04:19:16 +0000"  >&lt;p&gt;This requires two things:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;definition of desired operations captured in an interface&lt;/li&gt;
	&lt;li&gt;MapAdaptor-type utility class for switching between implementations&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;As for naming, it would seem the correct term would be &apos;KeyValueList&apos;, as the we really care about iteration order and need insert (of which append/prepend are special cases) and a move operation. Two instances are only equal if the order of key/value pairs matches. Aside from these, we do want to provide Map operations, but need to define how a replace operation behaves with respect to iteration order (is it replace or remove-and-append?)&lt;/p&gt;

&lt;p&gt;As for MapAdaptor: ImmutableMap conforms to the contract with efficient move (but not insert) if we break into package-private constructor. Even if we do not do that, we need to provide at least a singleton specialization and quite possibly &apos;small&apos; and &apos;large&apos; implementations, to mimic what we do with HashMap vs. TrieMap.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="31154">YANGTOOLS-922</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="31152">YANGTOOLS-920</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>MDSAL-246</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03l8n:</customfieldvalue>

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