X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;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=9876a57d1a23fd2996398709db738747c57cbea6;hp=b4dcb1167c70d8743d73ba106e2aaf4842017489;hb=1e884647502a8d91f8a57bde8193c60b9bbcce0d;hpb=614324d63a339ef4acbc9e2c3bbaaef469f97868 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 b4dcb1167c..9876a57d1a 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 @@ -9,36 +9,15 @@ package org.opendaylight.controller.md.sal.common.impl.util.compat; import static com.google.common.base.Preconditions.checkArgument; -import java.util.AbstractMap; -import java.util.ArrayList; +import com.google.common.collect.ImmutableList; import java.util.Iterator; -import java.util.Map; - -import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; -import org.opendaylight.yangtools.yang.data.api.Node; -import org.opendaylight.yangtools.yang.data.api.SimpleNode; -import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.MixinNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer; -import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; -import org.opendaylight.yangtools.yang.data.impl.ImmutableCompositeNode; -import org.opendaylight.yangtools.yang.data.impl.SimpleNodeTOImpl; -import org.opendaylight.yangtools.yang.data.impl.util.CompositeNodeBuilder; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import com.google.common.base.Preconditions; -import com.google.common.base.Predicates; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; - /** - * @deprecated This class provides compatibility between {@link CompositeNode} and {@link NormalizedNode}. - * Users of this class should use {@link NormalizedNode}s directly. + * @deprecated This class provides compatibility between XML semantics + * and {@link org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree} */ @Deprecated public class DataNormalizer { @@ -85,31 +64,6 @@ public class DataNormalizer { return currentOp; } - public Map.Entry> toNormalized( - final Map.Entry legacy) { - return toNormalized(legacy.getKey(), legacy.getValue()); - } - - public Map.Entry> toNormalized(final YangInstanceIdentifier legacyPath, - final CompositeNode legacyData) { - - YangInstanceIdentifier normalizedPath = toNormalized(legacyPath); - - DataNormalizationOperation currentOp = operation; - for (PathArgument arg : normalizedPath.getPathArguments()) { - try { - currentOp = currentOp.getChild(arg); - } catch (DataNormalizationException e) { - throw new IllegalArgumentException(String.format("Failed to validate normalized path %s", - normalizedPath), e); - } - } - Preconditions.checkArgument(currentOp != null, - "Instance Identifier %s does not reference correct schema Node.", normalizedPath); - return new AbstractMap.SimpleEntry>(normalizedPath, - currentOp.normalize(legacyData)); - } - public YangInstanceIdentifier toLegacy(final YangInstanceIdentifier normalized) throws DataNormalizationException { ImmutableList.Builder legacyArgs = ImmutableList.builder(); DataNormalizationOperation currentOp = operation; @@ -122,85 +76,6 @@ public class DataNormalizer { return YangInstanceIdentifier.create(legacyArgs.build()); } - public CompositeNode toLegacy(final YangInstanceIdentifier normalizedPath, final NormalizedNode normalizedData) { - // Preconditions.checkArgument(normalizedData instanceof - // DataContainerNode,"Node object %s, %s should be of type DataContainerNode",normalizedPath,normalizedData); - if (normalizedData instanceof DataContainerNode) { - return toLegacyFromDataContainer((DataContainerNode) normalizedData); - } else if (normalizedData instanceof AnyXmlNode) { - Node value = ((AnyXmlNode) normalizedData).getValue(); - return value instanceof CompositeNode ? (CompositeNode) value : null; - } - return null; - } - - public static Node toLegacy(final NormalizedNode node) { - if (node instanceof MixinNode) { - /** - * Direct reading of MixinNodes is not supported, since it is not - * possible in legacy APIs create pointer to Mixin Nodes. - * - */ - return null; - } - - if (node instanceof DataContainerNode) { - return toLegacyFromDataContainer((DataContainerNode) node); - } else if (node instanceof AnyXmlNode) { - return ((AnyXmlNode) node).getValue(); - } - return toLegacySimple(node); - - } - - private static SimpleNode toLegacySimple(final NormalizedNode node) { - return new SimpleNodeTOImpl(node.getNodeType(), null, node.getValue()); - } - - @SuppressWarnings({ "unchecked", "rawtypes" }) - private static CompositeNode toLegacyFromDataContainer(final DataContainerNode node) { - CompositeNodeBuilder builder = ImmutableCompositeNode.builder(); - builder.setQName(node.getNodeType()); - for (NormalizedNode child : node.getValue()) { - if (child instanceof MixinNode && child instanceof NormalizedNodeContainer) { - builder.addAll(toLegacyNodesFromMixin((NormalizedNodeContainer) child)); - } else if (child instanceof UnkeyedListNode) { - builder.addAll(toLegacyNodesFromUnkeyedList((UnkeyedListNode) child)); - } else { - addToBuilder(builder, toLegacy(child)); - } - } - return builder.toInstance(); - } - - private static Iterable> toLegacyNodesFromUnkeyedList(final UnkeyedListNode mixin) { - ArrayList> ret = new ArrayList<>(); - for (NormalizedNode child : mixin.getValue()) { - ret.add(toLegacy(child)); - } - return FluentIterable.from(ret).filter(Predicates.notNull()); - } - - private static void addToBuilder(final CompositeNodeBuilder builder, final Node legacy) { - if (legacy != null) { - builder.add(legacy); - } - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - private static Iterable> toLegacyNodesFromMixin( - final NormalizedNodeContainer> mixin) { - ArrayList> ret = new ArrayList<>(); - for (NormalizedNode child : mixin.getValue()) { - if (child instanceof MixinNode && child instanceof NormalizedNodeContainer) { - Iterables.addAll(ret, toLegacyNodesFromMixin((NormalizedNodeContainer) child)); - } else { - ret.add(toLegacy(child)); - } - } - return FluentIterable.from(ret).filter(Predicates.notNull()); - } - public DataNormalizationOperation getRootOperation() { return operation; }