X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fwriter%2Fimpl%2FNodeCliSerializerDispatcher.java;fp=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fwriter%2Fimpl%2FNodeCliSerializerDispatcher.java;h=0000000000000000000000000000000000000000;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hp=e6d47cc24f7125f463a31d60a90df5f34c6e0066;hpb=071a641d7c12c0e6112d5ce0afe806b54f116ed2;p=controller.git diff --git a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/NodeCliSerializerDispatcher.java b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/NodeCliSerializerDispatcher.java deleted file mode 100644 index e6d47cc24f..0000000000 --- a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/NodeCliSerializerDispatcher.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2013 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.controller.netconf.cli.writer.impl; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -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.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.FromNormalizedNodeSerializerFactory; -import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.serializer.NodeSerializerDispatcher; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; -import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; -import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; -import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; - -public class NodeCliSerializerDispatcher implements NodeSerializerDispatcher { - private final FromNormalizedNodeSerializerFactory factory; - - public NodeCliSerializerDispatcher(final FromNormalizedNodeSerializerFactory factory) { - this.factory = Preconditions.checkNotNull(factory); - } - - @Override - public final Iterable dispatchChildElement(final Object childSchema, - final DataContainerChild dataContainerChild) { - if (dataContainerChild instanceof ContainerNode) { - return onContainerNode(childSchema, dataContainerChild); - } else if (dataContainerChild instanceof LeafNode) { - return onLeafNode(childSchema, dataContainerChild); - } else if (dataContainerChild instanceof MixinNode) { - if (dataContainerChild instanceof LeafSetNode) { - return onLeafListNode(childSchema, dataContainerChild); - } else if (dataContainerChild instanceof MapNode) { - return onListNode(childSchema, dataContainerChild); - } else if (dataContainerChild instanceof ChoiceNode) { - return onChoiceNode(childSchema, dataContainerChild); - } else if (dataContainerChild instanceof AugmentationNode) { - return onAugmentationSchema(childSchema, dataContainerChild); - } - } - throw new IllegalArgumentException("Unable to serialize " + childSchema); - } - - private Iterable onAugmentationSchema(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, AugmentationSchema.class, dataContainerChild); - return factory.getAugmentationNodeSerializer().serialize((AugmentationSchema) childSchema, - (AugmentationNode) dataContainerChild); - } - - private Iterable onChoiceNode(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, ChoiceSchemaNode.class, dataContainerChild); - return factory.getChoiceNodeSerializer().serialize( - (ChoiceSchemaNode) childSchema, (ChoiceNode) dataContainerChild); - } - - private Iterable onListNode(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, ListSchemaNode.class, dataContainerChild); - return factory.getMapNodeSerializer().serialize((ListSchemaNode) childSchema, (MapNode) dataContainerChild); - } - - private Iterable onLeafListNode(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, LeafListSchemaNode.class, dataContainerChild); - return factory.getLeafSetNodeSerializer().serialize((LeafListSchemaNode) childSchema, - (LeafSetNode) dataContainerChild); - } - - private Iterable onLeafNode(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, LeafSchemaNode.class, dataContainerChild); - final Iterable elements = factory.getLeafNodeSerializer().serialize((LeafSchemaNode) childSchema, - (LeafNode) dataContainerChild); - checkOnlyOneSerializedElement(elements, dataContainerChild); - return elements; - } - - private static void checkOnlyOneSerializedElement(final Iterable elements, - final DataContainerChild dataContainerChild) { - final int size = Iterables.size(elements); - Preconditions.checkArgument(size == 1, - "Unexpected count of elements for entry serialized from: %s, should be 1, was: %s", dataContainerChild, - size); - } - - private Iterable onContainerNode(final Object childSchema, - final DataContainerChild dataContainerChild) { - checkSchemaCompatibility(childSchema, ContainerSchemaNode.class, dataContainerChild); - - final Iterable elements = factory.getContainerNodeSerializer().serialize( - (ContainerSchemaNode) childSchema, (ContainerNode) dataContainerChild); - checkOnlyOneSerializedElement(elements, dataContainerChild); - return elements; - } - - private static void checkSchemaCompatibility(final Object childSchema, final Class containerSchemaNodeClass, - final DataContainerChild dataContainerChild) { - Preconditions.checkArgument(containerSchemaNodeClass.isAssignableFrom(childSchema.getClass()), - "Incompatible schema: %s with node: %s, expected: %s", childSchema, dataContainerChild, - containerSchemaNodeClass); - } -}