X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=restconf%2Frestconf-nb-bierman02%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Frestconf%2Fimpl%2FNormalizedDataPrunner.java;fp=restconf%2Frestconf-nb-bierman02%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Frestconf%2Fimpl%2FNormalizedDataPrunner.java;h=0000000000000000000000000000000000000000;hb=e299375e295bf17cbc7292469c6f3e013d0d7aab;hp=975da60b3d4704cb3e62a4e6560b341cff0b9cee;hpb=09c1d18add7cfc310f3d190a1a02a523159162ce;p=netconf.git diff --git a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/NormalizedDataPrunner.java b/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/NormalizedDataPrunner.java deleted file mode 100644 index 975da60b3d..0000000000 --- a/restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/restconf/impl/NormalizedDataPrunner.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.netconf.sal.restconf.impl; - -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; -import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode; -import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; -import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; -import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.MapNode; -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.SystemMapNode; -import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode; -import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode; -import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode; -import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder; -import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.Builders; - -class NormalizedDataPrunner { - - public DataContainerChild pruneDataAtDepth(final DataContainerChild node, final Integer depth) { - if (depth == null) { - return node; - } - - if (node instanceof LeafNode || node instanceof LeafSetNode || node instanceof AnyxmlNode) { - return node; - } else if (node instanceof MixinNode) { - return processMixinNode(node, depth); - } else if (node instanceof DataContainerNode) { - return processContainerNode(node, depth); - } - throw new IllegalStateException("Unexpected Mixin node occured why pruning data to requested depth"); - } - - private DataContainerChild processMixinNode(final NormalizedNode node, final Integer depth) { - if (node instanceof AugmentationNode) { - return processAugmentationNode(node, depth); - } else if (node instanceof ChoiceNode) { - return processChoiceNode(node, depth); - } else if (node instanceof UserMapNode) { - return processOrderedMapNode(node, depth); - } else if (node instanceof MapNode) { - return processMapNode(node, depth); - } else if (node instanceof UnkeyedListNode) { - return processUnkeyedListNode(node, depth); - } - throw new IllegalStateException("Unexpected Mixin node occured why pruning data to requested depth"); - } - - private DataContainerChild processContainerNode(final NormalizedNode node, final Integer depth) { - final ContainerNode containerNode = (ContainerNode) node; - DataContainerNodeBuilder newContainerBuilder = Builders.containerBuilder() - .withNodeIdentifier(containerNode.getIdentifier()); - if (depth > 1) { - processDataContainerChild((DataContainerNode) node, depth, newContainerBuilder); - } - return newContainerBuilder.build(); - } - - private DataContainerChild processChoiceNode(final NormalizedNode node, final Integer depth) { - final ChoiceNode choiceNode = (ChoiceNode) node; - DataContainerNodeBuilder newChoiceBuilder = Builders.choiceBuilder() - .withNodeIdentifier(choiceNode.getIdentifier()); - - processDataContainerChild((DataContainerNode) node, depth, newChoiceBuilder); - - return newChoiceBuilder.build(); - } - - private DataContainerChild processAugmentationNode(final NormalizedNode node, final Integer depth) { - final AugmentationNode augmentationNode = (AugmentationNode) node; - DataContainerNodeBuilder newAugmentationBuilder = - Builders.augmentationBuilder().withNodeIdentifier(augmentationNode.getIdentifier()); - - processDataContainerChild((DataContainerNode) node, depth, newAugmentationBuilder); - - return newAugmentationBuilder.build(); - } - - private void processDataContainerChild(final DataContainerNode node, final Integer depth, - final DataContainerNodeBuilder newBuilder) { - for (DataContainerChild nodeValue : node.body()) { - newBuilder.withChild(pruneDataAtDepth(nodeValue, depth - 1)); - } - } - - private DataContainerChild processUnkeyedListNode(final NormalizedNode node, final Integer depth) { - CollectionNodeBuilder newUnkeyedListBuilder = Builders - .unkeyedListBuilder(); - if (depth > 1) { - for (UnkeyedListEntryNode oldUnkeyedListEntry : ((UnkeyedListNode) node).body()) { - DataContainerNodeBuilder newUnkeyedListEntry = Builders - .unkeyedListEntryBuilder().withNodeIdentifier(oldUnkeyedListEntry.getIdentifier()); - for (DataContainerChild oldUnkeyedListEntryValue : oldUnkeyedListEntry.body()) { - newUnkeyedListEntry.withChild(pruneDataAtDepth(oldUnkeyedListEntryValue, depth - 1)); - } - newUnkeyedListBuilder.addChild(newUnkeyedListEntry.build()); - } - } - return newUnkeyedListBuilder.build(); - } - - private DataContainerChild processOrderedMapNode(final NormalizedNode node, final Integer depth) { - CollectionNodeBuilder newOrderedMapNodeBuilder = Builders.orderedMapBuilder(); - processMapEntries(node, depth, newOrderedMapNodeBuilder); - return newOrderedMapNodeBuilder.build(); - } - - private DataContainerChild processMapNode(final NormalizedNode node, final Integer depth) { - CollectionNodeBuilder newMapNodeBuilder = Builders.mapBuilder(); - processMapEntries(node, depth, newMapNodeBuilder); - return newMapNodeBuilder.build(); - } - - private void processMapEntries(final NormalizedNode node, final Integer depth, - final CollectionNodeBuilder newOrderedMapNodeBuilder) { - if (depth > 1) { - for (MapEntryNode oldMapEntryNode : ((MapNode) node).body()) { - DataContainerNodeBuilder newMapEntryNodeBuilder = - Builders.mapEntryBuilder().withNodeIdentifier(oldMapEntryNode.getIdentifier()); - for (DataContainerChild mapEntryNodeValue : oldMapEntryNode.body()) { - newMapEntryNodeBuilder.withChild(pruneDataAtDepth(mapEntryNodeValue, depth - 1)); - } - newOrderedMapNodeBuilder.withChild(newMapEntryNodeBuilder.build()); - } - } - } -}