X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-common-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fcommon%2Fimpl%2Futil%2Fcompat%2FDataNormalizer.java;h=8fb6ff38a2477243545fe6fef86ca48532c4d493;hb=aacafb25b08def6ea9f2537356da418805c80ba9;hp=e52e196326825ed362788934080c2b16597174f1;hpb=72a2f458d328d443e2a5479ac147c1242a41a70f;p=controller.git diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizer.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizer.java index e52e196326..8fb6ff38a2 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizer.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizer.java @@ -18,8 +18,6 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.AugmentationIdentifier; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.Node; import org.opendaylight.yangtools.yang.data.api.SimpleNode; @@ -117,25 +115,15 @@ public class DataNormalizer { currentOp.normalize(legacyData)); } - public InstanceIdentifier toLegacy(final InstanceIdentifier normalized) { + public InstanceIdentifier toLegacy(final InstanceIdentifier normalized) throws DataNormalizationException { ImmutableList.Builder legacyArgs = ImmutableList.builder(); PathArgument previous = null; + DataNormalizationOperation currentOp = operation; for (PathArgument normalizedArg : normalized.getPath()) { - if (normalizedArg instanceof NodeIdentifier) { - if (previous != null) { - legacyArgs.add(previous); - } - previous = normalizedArg; - } else if (normalizedArg instanceof NodeIdentifierWithPredicates) { - // We skip previous node, which was mixin. - previous = normalizedArg; - } else if (normalizedArg instanceof AugmentationIdentifier) { - // We ignore argument + currentOp = currentOp.getChild(normalizedArg); + if(!currentOp.isMixin()) { + legacyArgs.add(normalizedArg); } - // FIXME : Add option for reading choice - } - if (previous != null) { - legacyArgs.add(previous); } return new InstanceIdentifier(legacyArgs.build()); }