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%2FDataNormalizationOperation.java;h=4174fac41cda9a6e6e0edfc12617f37746aaae37;hb=refs%2Fchanges%2F99%2F69099%2F2;hp=bbe366016342a7998c961e5028538e56a4b57f9b;hpb=edf86350dae8df2cfad04236eddfb05b29e8bce8;p=controller.git 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 bbe3660163..4174fac41c 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 @@ -30,9 +30,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; +import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationTarget; -import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; +import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -56,9 +56,8 @@ public abstract class DataNormalizationOperation impleme } protected DataNormalizationOperation(final T identifier, final SchemaNode schema) { - super(); this.identifier = identifier; - if(schema instanceof DataSchemaNode) { + if (schema instanceof DataSchemaNode) { this.dataSchemaNode = Optional.of((DataSchemaNode) schema); } else { this.dataSchemaNode = Optional.absent(); @@ -78,7 +77,7 @@ public abstract class DataNormalizationOperation impleme return Collections.singleton(identifier.getNodeType()); } - public abstract DataNormalizationOperation getChild(final PathArgument child) throws DataNormalizationException; + public abstract DataNormalizationOperation getChild(PathArgument child) throws DataNormalizationException; public abstract DataNormalizationOperation getChild(QName child) throws DataNormalizationException; @@ -90,7 +89,8 @@ public abstract class DataNormalizationOperation impleme return dataSchemaNode; } - private static abstract class SimpleTypeNormalization extends DataNormalizationOperation { + private abstract static class SimpleTypeNormalization + extends DataNormalizationOperation { protected SimpleTypeNormalization(final T identifier, final DataSchemaNode potential) { super(identifier,potential); @@ -115,7 +115,6 @@ public abstract class DataNormalizationOperation impleme public boolean isLeaf() { return true; } - } private static final class LeafNormalization extends SimpleTypeNormalization { @@ -128,7 +127,7 @@ public abstract class DataNormalizationOperation impleme private static final class LeafListEntryNormalization extends SimpleTypeNormalization { - public LeafListEntryNormalization(final LeafListSchemaNode potential) { + LeafListEntryNormalization(final LeafListSchemaNode potential) { super(new NodeWithValue(potential.getQName(), null),potential); } @@ -138,8 +137,8 @@ public abstract class DataNormalizationOperation impleme } } - private static abstract class CompositeNodeNormalizationOperation extends - DataNormalizationOperation { + private abstract static class CompositeNodeNormalizationOperation + extends DataNormalizationOperation { protected CompositeNodeNormalizationOperation(final T identifier, final DataSchemaNode schema) { super(identifier,schema); @@ -153,14 +152,15 @@ public abstract class DataNormalizationOperation impleme } - private static abstract class DataContainerNormalizationOperation extends - CompositeNodeNormalizationOperation { + private abstract static class DataContainerNormalizationOperation + extends CompositeNodeNormalizationOperation { private final DataNodeContainer schema; private final Map> byQName; private final Map> byArg; - protected DataContainerNormalizationOperation(final T identifier, final DataNodeContainer schema, final DataSchemaNode node) { + protected DataContainerNormalizationOperation(final T identifier, final DataNodeContainer schema, + final DataSchemaNode node) { super(identifier,node); this.schema = schema; this.byArg = new ConcurrentHashMap<>(); @@ -177,14 +177,6 @@ public abstract class DataNormalizationOperation impleme return register(potential); } - private DataNormalizationOperation fromLocalSchema(final PathArgument child) throws DataNormalizationException { - if (child instanceof AugmentationIdentifier) { - return fromSchemaAndQNameChecked(schema, ((AugmentationIdentifier) child).getPossibleChildNames() - .iterator().next()); - } - return fromSchemaAndQNameChecked(schema, child.getNodeType()); - } - @Override public DataNormalizationOperation getChild(final QName child) throws DataNormalizationException { DataNormalizationOperation potential = byQName.get(child); @@ -195,15 +187,25 @@ public abstract class DataNormalizationOperation impleme return register(potential); } - protected DataNormalizationOperation fromLocalSchemaAndQName(final DataNodeContainer schema2, final QName child) throws DataNormalizationException { + private DataNormalizationOperation fromLocalSchema(final PathArgument child) + throws DataNormalizationException { + if (child instanceof AugmentationIdentifier) { + return fromSchemaAndQNameChecked(schema, ((AugmentationIdentifier) child).getPossibleChildNames() + .iterator().next()); + } + return fromSchemaAndQNameChecked(schema, child.getNodeType()); + } + + protected DataNormalizationOperation fromLocalSchemaAndQName(final DataNodeContainer schema2, + final QName child) throws DataNormalizationException { return fromSchemaAndQNameChecked(schema2, child); } private DataNormalizationOperation register(final DataNormalizationOperation potential) { if (potential != null) { byArg.put(potential.getIdentifier(), potential); - for (final QName qName : potential.getQNameIdentifiers()) { - byQName.put(qName, potential); + for (final QName qname : potential.getQNameIdentifiers()) { + byQName.put(qname, potential); } } return potential; @@ -212,20 +214,18 @@ public abstract class DataNormalizationOperation impleme } private static final class ListItemNormalization extends - DataContainerNormalizationOperation { - - private final List keyDefinition; + DataContainerNormalizationOperation { protected ListItemNormalization(final NodeIdentifierWithPredicates identifier, final ListSchemaNode schema) { - super(identifier, schema,schema); - keyDefinition = schema.getKeyDefinition(); + super(identifier, schema, schema); } @Override public NormalizedNode createDefault(final PathArgument currentArg) { final DataContainerNodeAttrBuilder builder = Builders .mapEntryBuilder().withNodeIdentifier((NodeIdentifierWithPredicates) currentArg); - for (final Entry keyValue : ((NodeIdentifierWithPredicates) currentArg).getKeyValues().entrySet()) { + for (final Entry keyValue : + ((NodeIdentifierWithPredicates) currentArg).getKeyValues().entrySet()) { builder.addChild(Builders.leafBuilder() // .withNodeIdentifier(new NodeIdentifier(keyValue.getKey())).withValue(keyValue.getValue()) @@ -241,7 +241,8 @@ public abstract class DataNormalizationOperation impleme } } - private static final class UnkeyedListItemNormalization extends DataContainerNormalizationOperation { + private static final class UnkeyedListItemNormalization + extends DataContainerNormalizationOperation { protected UnkeyedListItemNormalization(final ListSchemaNode schema) { super(new NodeIdentifier(schema.getQName()), schema,schema); @@ -267,8 +268,8 @@ public abstract class DataNormalizationOperation impleme } - private static abstract class MixinNormalizationOp extends - CompositeNodeNormalizationOperation { + private abstract static class MixinNormalizationOp + extends CompositeNodeNormalizationOperation { protected MixinNormalizationOp(final T identifier, final DataSchemaNode schema) { super(identifier,schema); @@ -283,9 +284,7 @@ public abstract class DataNormalizationOperation impleme private static final class OrderedLeafListMixinNormalization extends UnorderedLeafListMixinNormalization { - - - public OrderedLeafListMixinNormalization(final LeafListSchemaNode potential) { + OrderedLeafListMixinNormalization(final LeafListSchemaNode potential) { super(potential); } @@ -299,10 +298,11 @@ public abstract class DataNormalizationOperation impleme private final DataNormalizationOperation innerOp; - public UnorderedLeafListMixinNormalization(final LeafListSchemaNode potential) { + UnorderedLeafListMixinNormalization(final LeafListSchemaNode potential) { super(new NodeIdentifier(potential.getQName()),potential); innerOp = new LeafListEntryNormalization(potential); } + @Override public NormalizedNode createDefault(final PathArgument currentArg) { return Builders.leafSetBuilder().withNodeIdentifier(getIdentifier()).build(); @@ -325,10 +325,10 @@ public abstract class DataNormalizationOperation impleme } } - private static final class AugmentationNormalization extends DataContainerNormalizationOperation { + private static final class AugmentationNormalization + extends DataContainerNormalizationOperation { - public AugmentationNormalization(final AugmentationSchema augmentation, final DataNodeContainer schema) { - //super(); + AugmentationNormalization(final AugmentationSchemaNode augmentation, final DataNodeContainer schema) { super(augmentationIdentifierFrom(augmentation), augmentationProxy(augmentation,schema),null); } @@ -340,8 +340,8 @@ public abstract class DataNormalizationOperation impleme @Override - protected DataNormalizationOperation fromLocalSchemaAndQName(final DataNodeContainer schema, final QName child) - throws DataNormalizationException { + protected DataNormalizationOperation fromLocalSchemaAndQName(final DataNodeContainer schema, + final QName child) throws DataNormalizationException { final Optional potential = findChildSchemaNode(schema, child); if (!potential.isPresent()) { return null; @@ -349,7 +349,7 @@ public abstract class DataNormalizationOperation impleme final DataSchemaNode result = potential.get(); // We try to look up if this node was added by augmentation - if ((schema instanceof DataSchemaNode) && result.isAugmenting()) { + if (schema instanceof DataSchemaNode && result.isAugmenting()) { return fromAugmentation(schema, (AugmentationTarget) schema, result); } return fromDataSchemaNode(result); @@ -371,10 +371,10 @@ public abstract class DataNormalizationOperation impleme private final ListItemNormalization innerNode; - public UnorderedMapMixinNormalization(final ListSchemaNode list) { + UnorderedMapMixinNormalization(final ListSchemaNode list) { super(new NodeIdentifier(list.getQName()),list); this.innerNode = new ListItemNormalization(new NodeIdentifierWithPredicates(list.getQName(), - Collections. emptyMap()), list); + Collections.emptyMap()), list); } @Override @@ -405,7 +405,7 @@ public abstract class DataNormalizationOperation impleme private final UnkeyedListItemNormalization innerNode; - public UnkeyedListMixinNormalization(final ListSchemaNode list) { + UnkeyedListMixinNormalization(final ListSchemaNode list) { super(new NodeIdentifier(list.getQName()),list); this.innerNode = new UnkeyedListItemNormalization(list); } @@ -435,7 +435,7 @@ public abstract class DataNormalizationOperation impleme private static final class OrderedMapMixinNormalization extends UnorderedMapMixinNormalization { - public OrderedMapMixinNormalization(final ListSchemaNode list) { + OrderedMapMixinNormalization(final ListSchemaNode list) { super(list); } @@ -454,9 +454,10 @@ public abstract class DataNormalizationOperation impleme protected ChoiceNodeNormalization(final ChoiceSchemaNode schema) { super(new NodeIdentifier(schema.getQName()),schema); final ImmutableMap.Builder> byQNameBuilder = ImmutableMap.builder(); - final ImmutableMap.Builder> byArgBuilder = ImmutableMap.builder(); + final ImmutableMap.Builder> byArgBuilder = + ImmutableMap.builder(); - for (final ChoiceCaseNode caze : schema.getCases()) { + for (final CaseSchemaNode caze : schema.getCases().values()) { for (final DataSchemaNode cazeChild : caze.getChildNodes()) { final DataNormalizationOperation childOp = fromDataSchemaNode(cazeChild); byArgBuilder.put(childOp.getIdentifier(), childOp); @@ -487,17 +488,17 @@ public abstract class DataNormalizationOperation impleme private static class AnyXmlNormalization extends DataNormalizationOperation { - protected AnyXmlNormalization( final AnyXmlSchemaNode schema) { - super( new NodeIdentifier(schema.getQName()), schema); + protected AnyXmlNormalization(final AnyXmlSchemaNode schema) { + super(new NodeIdentifier(schema.getQName()), schema); } @Override - public DataNormalizationOperation getChild( final PathArgument child ) throws DataNormalizationException { + public DataNormalizationOperation getChild(final PathArgument child) throws DataNormalizationException { return null; } @Override - public DataNormalizationOperation getChild( final QName child ) throws DataNormalizationException { + public DataNormalizationOperation getChild(final QName child) throws DataNormalizationException { return null; } @@ -507,15 +508,17 @@ public abstract class DataNormalizationOperation impleme } @Override - public NormalizedNode createDefault( final PathArgument currentArg ) { + public NormalizedNode createDefault(final PathArgument currentArg) { return null; } } - private static final Optional findChildSchemaNode(final DataNodeContainer parent,final QName child) { + private static Optional findChildSchemaNode(final DataNodeContainer parent, + final QName child) { DataSchemaNode potential = parent.getDataChildByName(child); if (potential == null) { - final Iterable choices = FluentIterable.from(parent.getChildNodes()).filter(ChoiceSchemaNode.class); + final Iterable choices = FluentIterable.from(parent.getChildNodes()) + .filter(ChoiceSchemaNode.class); potential = findChoice(choices, child); } return Optional.fromNullable(potential); @@ -526,12 +529,14 @@ public abstract class DataNormalizationOperation impleme final Optional potential = findChildSchemaNode(schema, child); if (!potential.isPresent()) { - throw new DataNormalizationException(String.format("Supplied QName %s is not valid according to schema %s, potential children nodes: %s", child, schema,schema.getChildNodes())); + throw new DataNormalizationException(String.format( + "Supplied QName %s is not valid according to schema %s, potential children nodes: %s", child, + schema,schema.getChildNodes())); } final DataSchemaNode result = potential.get(); // We try to look up if this node was added by augmentation - if ((schema instanceof DataSchemaNode) && result.isAugmenting()) { + if (schema instanceof DataSchemaNode && result.isAugmenting()) { return fromAugmentation(schema, (AugmentationTarget) schema, result); } return fromDataSchemaNode(result); @@ -540,7 +545,7 @@ public abstract class DataNormalizationOperation impleme private static ChoiceSchemaNode findChoice(final Iterable choices, final QName child) { ChoiceSchemaNode foundChoice = null; choiceLoop: for (final ChoiceSchemaNode choice : choices) { - for (final ChoiceCaseNode caze : choice.getCases()) { + for (final CaseSchemaNode caze : choice.getCases().values()) { if (findChildSchemaNode(caze, child).isPresent()) { foundChoice = choice; break choiceLoop; @@ -550,7 +555,7 @@ public abstract class DataNormalizationOperation impleme return foundChoice; } - public static AugmentationIdentifier augmentationIdentifierFrom(final AugmentationSchema augmentation) { + public static AugmentationIdentifier augmentationIdentifierFrom(final AugmentationSchemaNode augmentation) { final ImmutableSet.Builder potentialChildren = ImmutableSet.builder(); for (final DataSchemaNode child : augmentation.getChildNodes()) { potentialChildren.add(child.getQName()); @@ -558,7 +563,8 @@ public abstract class DataNormalizationOperation impleme return new AugmentationIdentifier(potentialChildren.build()); } - private static DataNodeContainer augmentationProxy(final AugmentationSchema augmentation, final DataNodeContainer schema) { + private static DataNodeContainer augmentationProxy(final AugmentationSchemaNode augmentation, + final DataNodeContainer schema) { final Set children = new HashSet<>(); for (final DataSchemaNode augNode : augmentation.getChildNodes()) { children.add(schema.getDataChildByName(augNode.getQName())); @@ -567,23 +573,18 @@ public abstract class DataNormalizationOperation impleme } /** - * Returns a DataNormalizationOperation for provided child node + * Returns a DataNormalizationOperation for provided child node. * + *

* If supplied child is added by Augmentation this operation returns * a DataNormalizationOperation for augmentation, * otherwise returns a DataNormalizationOperation for child as * call for {@link #fromDataSchemaNode(DataSchemaNode)}. - * - * - * @param parent - * @param parentAug - * @param child - * @return */ private static DataNormalizationOperation fromAugmentation(final DataNodeContainer parent, final AugmentationTarget parentAug, final DataSchemaNode child) { - AugmentationSchema augmentation = null; - for (final AugmentationSchema aug : parentAug.getAvailableAugmentations()) { + AugmentationSchemaNode augmentation = null; + for (final AugmentationSchemaNode aug : parentAug.getAvailableAugmentations()) { final DataSchemaNode potential = aug.getDataChildByName(child.getQName()); if (potential != null) { augmentation = aug; @@ -611,24 +612,24 @@ public abstract class DataNormalizationOperation impleme } else if (potential instanceof LeafListSchemaNode) { return fromLeafListSchemaNode((LeafListSchemaNode) potential); } else if (potential instanceof AnyXmlSchemaNode) { - return new AnyXmlNormalization( (AnyXmlSchemaNode) potential); + return new AnyXmlNormalization((AnyXmlSchemaNode) potential); } return null; } private static DataNormalizationOperation fromListSchemaNode(final ListSchemaNode potential) { final List keyDefinition = potential.getKeyDefinition(); - if(keyDefinition == null || keyDefinition.isEmpty()) { + if (keyDefinition == null || keyDefinition.isEmpty()) { return new UnkeyedListMixinNormalization(potential); } - if(potential.isUserOrdered()) { + if (potential.isUserOrdered()) { return new OrderedMapMixinNormalization(potential); } return new UnorderedMapMixinNormalization(potential); } private static DataNormalizationOperation fromLeafListSchemaNode(final LeafListSchemaNode potential) { - if(potential.isUserOrdered()) { + if (potential.isUserOrdered()) { return new OrderedLeafListMixinNormalization(potential); } return new UnorderedLeafListMixinNormalization(potential);