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%2FDataNormalizationOperation.java;h=7c5c2ba0e090b85f1833308264b16abbc38e2d1f;hp=2b9694bed71d87dfb8d48e04024b94f619e5c049;hb=874a18a9ce5dc09bc49922754bf8fb3e981fffb9;hpb=44c747db358bf0d49434d5f818121286b5928d4a diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java index 2b9694bed7..7c5c2ba0e0 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java @@ -10,11 +10,6 @@ package org.opendaylight.controller.md.sal.common.impl.util.compat; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import com.google.common.base.Optional; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; - import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -23,14 +18,15 @@ import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import javax.xml.transform.dom.DOMSource; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.CompositeNode; -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.NodeWithValue; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; +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.YangInstanceIdentifier.NodeWithValue; +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; @@ -45,6 +41,7 @@ import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.AugmentationTarget; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; +import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -52,19 +49,36 @@ import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.SchemaNode; +import com.google.common.base.Optional; +import com.google.common.collect.FluentIterable; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; + +/** + * @deprecated This class provides compatibility between {@link CompositeNode} and {@link NormalizedNode}. + * Users of this class should use {@link NormalizedNode}s directly. + */ +@Deprecated public abstract class DataNormalizationOperation implements Identifiable { private final T identifier; + private final Optional dataSchemaNode; @Override public T getIdentifier() { return identifier; }; - protected DataNormalizationOperation(final T identifier) { + protected DataNormalizationOperation(final T identifier, final SchemaNode schema) { super(); this.identifier = identifier; + if(schema instanceof DataSchemaNode) { + this.dataSchemaNode = Optional.of((DataSchemaNode) schema); + } else { + this.dataSchemaNode = Optional.absent(); + } } public boolean isMixin() { @@ -88,10 +102,15 @@ public abstract class DataNormalizationOperation impleme public abstract boolean isLeaf(); + public Optional getDataSchemaNode() { + // FIXME + return dataSchemaNode; + } + private static abstract class SimpleTypeNormalization extends DataNormalizationOperation { - protected SimpleTypeNormalization(final T identifier) { - super(identifier); + protected SimpleTypeNormalization(final T identifier, final DataSchemaNode potential) { + super(identifier,potential); } @Override @@ -127,8 +146,8 @@ public abstract class DataNormalizationOperation impleme private static final class LeafNormalization extends SimpleTypeNormalization { - protected LeafNormalization(final NodeIdentifier identifier) { - super(identifier); + protected LeafNormalization(final LeafSchemaNode potential) { + super(new NodeIdentifier(potential.getQName()),potential); } @Override @@ -141,7 +160,7 @@ public abstract class DataNormalizationOperation impleme private static final class LeafListEntryNormalization extends SimpleTypeNormalization { public LeafListEntryNormalization(final LeafListSchemaNode potential) { - super(new NodeWithValue(potential.getQName(), null)); + super(new NodeWithValue(potential.getQName(), null),potential); } @Override @@ -160,8 +179,8 @@ public abstract class DataNormalizationOperation impleme private static abstract class CompositeNodeNormalizationOperation extends DataNormalizationOperation { - protected CompositeNodeNormalizationOperation(final T identifier) { - super(identifier); + protected CompositeNodeNormalizationOperation(final T identifier, final DataSchemaNode schema) { + super(identifier,schema); } @SuppressWarnings({ "rawtypes", "unchecked" }) @@ -226,8 +245,8 @@ public abstract class DataNormalizationOperation impleme private final Map> byQName; private final Map> byArg; - protected DataContainerNormalizationOperation(final T identifier, final DataNodeContainer schema) { - super(identifier); + protected DataContainerNormalizationOperation(final T identifier, final DataNodeContainer schema, final DataSchemaNode node) { + super(identifier,node); this.schema = schema; this.byArg = new ConcurrentHashMap<>(); this.byQName = new ConcurrentHashMap<>(); @@ -283,7 +302,7 @@ public abstract class DataNormalizationOperation impleme private final List keyDefinition; protected ListItemNormalization(final NodeIdentifierWithPredicates identifier, final ListSchemaNode schema) { - super(identifier, schema); + super(identifier, schema,schema); keyDefinition = schema.getKeyDefinition(); } @@ -324,7 +343,7 @@ public abstract class DataNormalizationOperation impleme private static final class UnkeyedListItemNormalization extends DataContainerNormalizationOperation { protected UnkeyedListItemNormalization(final ListSchemaNode schema) { - super(new NodeIdentifier(schema.getQName()), schema); + super(new NodeIdentifier(schema.getQName()), schema,schema); } @Override @@ -342,7 +361,7 @@ public abstract class DataNormalizationOperation impleme private static final class ContainerNormalization extends DataContainerNormalizationOperation { protected ContainerNormalization(final ContainerSchemaNode schema) { - super(new NodeIdentifier(schema.getQName()), schema); + super(new NodeIdentifier(schema.getQName()),schema, schema); } @Override @@ -360,8 +379,8 @@ public abstract class DataNormalizationOperation impleme private static abstract class MixinNormalizationOp extends CompositeNodeNormalizationOperation { - protected MixinNormalizationOp(final T identifier) { - super(identifier); + protected MixinNormalizationOp(final T identifier, final DataSchemaNode schema) { + super(identifier,schema); } @Override @@ -395,7 +414,7 @@ public abstract class DataNormalizationOperation impleme private final DataNormalizationOperation innerOp; public UnorderedLeafListMixinNormalization(final LeafListSchemaNode potential) { - super(new NodeIdentifier(potential.getQName())); + super(new NodeIdentifier(potential.getQName()),potential); innerOp = new LeafListEntryNormalization(potential); } @@ -430,7 +449,7 @@ public abstract class DataNormalizationOperation impleme public AugmentationNormalization(final AugmentationSchema augmentation, final DataNodeContainer schema) { //super(); - super(augmentationIdentifierFrom(augmentation), augmentationProxy(augmentation,schema)); + super(augmentationIdentifierFrom(augmentation), augmentationProxy(augmentation,schema),null); } @Override @@ -479,7 +498,7 @@ public abstract class DataNormalizationOperation impleme private final ListItemNormalization innerNode; public UnorderedMapMixinNormalization(final ListSchemaNode list) { - super(new NodeIdentifier(list.getQName())); + super(new NodeIdentifier(list.getQName()),list); this.innerNode = new ListItemNormalization(new NodeIdentifierWithPredicates(list.getQName(), Collections. emptyMap()), list); } @@ -519,7 +538,7 @@ public abstract class DataNormalizationOperation impleme private final UnkeyedListItemNormalization innerNode; public UnkeyedListMixinNormalization(final ListSchemaNode list) { - super(new NodeIdentifier(list.getQName())); + super(new NodeIdentifier(list.getQName()),list); this.innerNode = new UnkeyedListItemNormalization(list); } @@ -576,8 +595,8 @@ public abstract class DataNormalizationOperation impleme private final ImmutableMap> byQName; private final ImmutableMap> byArg; - protected ChoiceNodeNormalization(final org.opendaylight.yangtools.yang.model.api.ChoiceNode schema) { - super(new NodeIdentifier(schema.getQName())); + protected ChoiceNodeNormalization(final ChoiceSchemaNode schema) { + super(new NodeIdentifier(schema.getQName()),schema); ImmutableMap.Builder> byQNameBuilder = ImmutableMap.builder(); ImmutableMap.Builder> byArgBuilder = ImmutableMap.builder(); @@ -617,8 +636,8 @@ public abstract class DataNormalizationOperation impleme private static class AnyXmlNormalization extends DataNormalizationOperation { - protected AnyXmlNormalization( final NodeIdentifier identifier ) { - super( identifier ); + protected AnyXmlNormalization( final AnyXmlSchemaNode schema) { + super( new NodeIdentifier(schema.getQName()), schema); } @Override @@ -633,10 +652,11 @@ public abstract class DataNormalizationOperation impleme @Override public NormalizedNode normalize( final Node legacyData ) { - NormalizedNodeAttrBuilder, AnyXmlNode> builder = + NormalizedNodeAttrBuilder builder = Builders.anyXmlBuilder().withNodeIdentifier( new NodeIdentifier( legacyData.getNodeType() ) ); - builder.withValue(legacyData); + // Will be removed +// builder.withValue(legacyData); return builder.build(); } @@ -654,8 +674,7 @@ public abstract class DataNormalizationOperation impleme private static final Optional findChildSchemaNode(final DataNodeContainer parent,final QName child) { DataSchemaNode potential = parent.getDataChildByName(child); if (potential == null) { - Iterable choices = FluentIterable.from( - parent.getChildNodes()).filter(org.opendaylight.yangtools.yang.model.api.ChoiceNode.class); + Iterable choices = FluentIterable.from(parent.getChildNodes()).filter(ChoiceSchemaNode.class); potential = findChoice(choices, child); } return Optional.fromNullable(potential); @@ -677,10 +696,9 @@ public abstract class DataNormalizationOperation impleme return fromDataSchemaNode(result); } - private static org.opendaylight.yangtools.yang.model.api.ChoiceNode findChoice( - final Iterable choices, final QName child) { - org.opendaylight.yangtools.yang.model.api.ChoiceNode foundChoice = null; - choiceLoop: for (org.opendaylight.yangtools.yang.model.api.ChoiceNode choice : choices) { + private static ChoiceSchemaNode findChoice(final Iterable choices, final QName child) { + ChoiceSchemaNode foundChoice = null; + choiceLoop: for (ChoiceSchemaNode choice : choices) { for (ChoiceCaseNode caze : choice.getCases()) { if (findChildSchemaNode(caze, child).isPresent()) { foundChoice = choice; @@ -746,13 +764,13 @@ public abstract class DataNormalizationOperation impleme return fromListSchemaNode((ListSchemaNode) potential); } else if (potential instanceof LeafSchemaNode) { - return new LeafNormalization(new NodeIdentifier(potential.getQName())); - } else if (potential instanceof org.opendaylight.yangtools.yang.model.api.ChoiceNode) { - return new ChoiceNodeNormalization((org.opendaylight.yangtools.yang.model.api.ChoiceNode) potential); + return new LeafNormalization((LeafSchemaNode) potential); + } else if (potential instanceof ChoiceSchemaNode) { + return new ChoiceNodeNormalization((ChoiceSchemaNode) potential); } else if (potential instanceof LeafListSchemaNode) { return fromLeafListSchemaNode((LeafListSchemaNode) potential); } else if (potential instanceof AnyXmlSchemaNode) { - return new AnyXmlNormalization( new NodeIdentifier(potential.getQName() ) ); + return new AnyXmlNormalization( (AnyXmlSchemaNode) potential); } return null; }