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%2FCliOutputFromNormalizedNodeSerializerFactory.java;fp=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fwriter%2Fimpl%2FCliOutputFromNormalizedNodeSerializerFactory.java;h=cab07afe6c36778e02938d3d63b604fba4ab0f1c;hb=b3d2a00776a1a5e3a139d73ced859aa557c931af;hp=0000000000000000000000000000000000000000;hpb=d04e0863b86415749a8437241c57df0d32a3b133;p=controller.git diff --git a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/CliOutputFromNormalizedNodeSerializerFactory.java b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/CliOutputFromNormalizedNodeSerializerFactory.java new file mode 100644 index 0000000000..cab07afe6c --- /dev/null +++ b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/CliOutputFromNormalizedNodeSerializerFactory.java @@ -0,0 +1,103 @@ +/* + * 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.controller.netconf.cli.writer.impl; + +import org.opendaylight.controller.netconf.cli.writer.OutFormatter; +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.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; +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.impl.codec.xml.XmlCodecProvider; +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.data.impl.schema.transform.base.serializer.NodeSerializerDispatcher; +import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; +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 final class CliOutputFromNormalizedNodeSerializerFactory implements FromNormalizedNodeSerializerFactory { + private final ContainerNodeCliSerializer containerSerializer; + private final ChoiceNodeCliSerializer choiceSerializer; + private final AugmentationNodeCliSerializer augmentSerializer; + private final LeafNodeCliSerializer leafNodeSerializer; + private final LeafSetNodeCliSerializer leafSetSerializer; + private final MapNodeCliSerializer mapNodeSerializer; + private final LeafSetEntryNodeCliSerializer leafSetEntryNodeSerializer; + private final MapEntryNodeCliSerializer mapEntryNodeSerializer; + final NodeSerializerDispatcher dispatcher = new NodeCliSerializerDispatcher(this); + + private CliOutputFromNormalizedNodeSerializerFactory(final OutFormatter out, final XmlCodecProvider codecProvider) { + + containerSerializer = new ContainerNodeCliSerializer(out, dispatcher); + choiceSerializer = new ChoiceNodeCliSerializer(out, dispatcher); + augmentSerializer = new AugmentationNodeCliSerializer(out, dispatcher); + leafNodeSerializer = new LeafNodeCliSerializer(out); + + leafSetEntryNodeSerializer = new LeafSetEntryNodeCliSerializer(out); + leafSetSerializer = new LeafSetNodeCliSerializer(out, leafSetEntryNodeSerializer); + + mapEntryNodeSerializer = new MapEntryNodeCliSerializer(out, dispatcher); + mapNodeSerializer = new MapNodeCliSerializer(out, mapEntryNodeSerializer); + } + + public NodeSerializerDispatcher getDispatcher() { + return dispatcher; + } + + public static CliOutputFromNormalizedNodeSerializerFactory getInstance(final OutFormatter out, + final XmlCodecProvider codecProvider) { + return new CliOutputFromNormalizedNodeSerializerFactory(out, codecProvider); + } + + @Override + public FromNormalizedNodeSerializer getAugmentationNodeSerializer() { + return augmentSerializer; + } + + @Override + public FromNormalizedNodeSerializer getChoiceNodeSerializer() { + return choiceSerializer; + } + + @Override + public FromNormalizedNodeSerializer getContainerNodeSerializer() { + return containerSerializer; + } + + @Override + public FromNormalizedNodeSerializer, LeafSchemaNode> getLeafNodeSerializer() { + return leafNodeSerializer; + } + + @Override + public FromNormalizedNodeSerializer, LeafListSchemaNode> getLeafSetEntryNodeSerializer() { + return leafSetEntryNodeSerializer; + } + + @Override + public FromNormalizedNodeSerializer, LeafListSchemaNode> getLeafSetNodeSerializer() { + return leafSetSerializer; + } + + @Override + public FromNormalizedNodeSerializer getMapEntryNodeSerializer() { + return mapEntryNodeSerializer; + } + + @Override + public FromNormalizedNodeSerializer getMapNodeSerializer() { + return mapNodeSerializer; + } + +} \ No newline at end of file