X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftransform%2Fbase%2Fserializer%2FNodeSerializerDispatcher.java;h=9c1adfc6230568bc7f0592539ca7df3f42c31ddb;hb=a791edb78424e32a3b02c92491d941e092248c3f;hp=e19b625ef2f266bb2559fb2914ee76b8756559d0;hpb=4a5d26c9de475a4cff151ee4255e027211c2eeb4;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/base/serializer/NodeSerializerDispatcher.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/base/serializer/NodeSerializerDispatcher.java index e19b625ef2..9c1adfc623 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/base/serializer/NodeSerializerDispatcher.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/base/serializer/NodeSerializerDispatcher.java @@ -16,7 +16,7 @@ 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.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.MixinNode; -import org.opendaylight.yangtools.yang.data.impl.schema.transform.FromNormalizedNodeSerializer; +import org.opendaylight.yangtools.yang.data.impl.schema.transform.FromNormalizedNodeSerializerFactory; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; @@ -42,6 +42,11 @@ public interface NodeSerializerDispatcher { * The same instance of serializer can be provided in case it is immutable. */ public static abstract class BaseNodeSerializerDispatcher implements NodeSerializerDispatcher { + private final FromNormalizedNodeSerializerFactory factory; + + protected BaseNodeSerializerDispatcher(final FromNormalizedNodeSerializerFactory factory) { + this.factory = Preconditions.checkNotNull(factory); + } @Override public final Iterable dispatchChildElement(Object childSchema, @@ -67,7 +72,7 @@ public interface NodeSerializerDispatcher { private Iterable onAugmentationSchema(Object childSchema, DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, AugmentationSchema.class, dataContainerChild); - return getAugmentationNodeSerializer().serialize((AugmentationSchema) childSchema, + return factory.getAugmentationNodeSerializer().serialize((AugmentationSchema) childSchema, (AugmentationNode) dataContainerChild); } @@ -75,7 +80,7 @@ public interface NodeSerializerDispatcher { DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, org.opendaylight.yangtools.yang.model.api.ChoiceNode.class, dataContainerChild); - return getChoiceNodeSerializer() + return factory.getChoiceNodeSerializer() .serialize((org.opendaylight.yangtools.yang.model.api.ChoiceNode) childSchema, (ChoiceNode) dataContainerChild); } @@ -83,20 +88,20 @@ public interface NodeSerializerDispatcher { private Iterable onListNode(Object childSchema, DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, ListSchemaNode.class, dataContainerChild); - return getMapNodeSerializer().serialize((ListSchemaNode) childSchema, (MapNode) dataContainerChild); + return factory.getMapNodeSerializer().serialize((ListSchemaNode) childSchema, (MapNode) dataContainerChild); } private Iterable onLeafListNode(Object childSchema, DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, LeafListSchemaNode.class, dataContainerChild); - return getLeafSetNodeSerializer().serialize((LeafListSchemaNode) childSchema, + return factory.getLeafSetNodeSerializer().serialize((LeafListSchemaNode) childSchema, (LeafSetNode) dataContainerChild); } private Iterable onLeafNode(Object childSchema, DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, LeafSchemaNode.class, dataContainerChild); - Iterable elements = getLeafNodeSerializer().serialize((LeafSchemaNode) childSchema, + Iterable elements = factory.getLeafNodeSerializer().serialize((LeafSchemaNode) childSchema, (LeafNode) dataContainerChild); checkOnlyOneSerializedElement(elements, dataContainerChild); return elements; @@ -114,7 +119,7 @@ public interface NodeSerializerDispatcher { DataContainerChild dataContainerChild) { checkSchemaCompatibility(childSchema, ContainerSchemaNode.class, dataContainerChild); - Iterable elements = getContainerNodeSerializer().serialize((ContainerSchemaNode) childSchema, + Iterable elements = factory.getContainerNodeSerializer().serialize((ContainerSchemaNode) childSchema, (ContainerNode) dataContainerChild); checkOnlyOneSerializedElement(elements, dataContainerChild); return elements; @@ -126,17 +131,5 @@ public interface NodeSerializerDispatcher { "Incompatible schema: %s with node: %s, expected: %s", childSchema, dataContainerChild, containerSchemaNodeClass); } - - protected abstract FromNormalizedNodeSerializer getContainerNodeSerializer(); - - protected abstract FromNormalizedNodeSerializer, LeafSchemaNode> getLeafNodeSerializer(); - - protected abstract FromNormalizedNodeSerializer, LeafListSchemaNode> getLeafSetNodeSerializer(); - - protected abstract FromNormalizedNodeSerializer getMapNodeSerializer(); - - protected abstract FromNormalizedNodeSerializer getChoiceNodeSerializer(); - - protected abstract FromNormalizedNodeSerializer getAugmentationNodeSerializer(); } }