X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Ftools%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fwriter%2Fimpl%2FContainerNodeCliSerializer.java;fp=opendaylight%2Fnetconf%2Ftools%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Fwriter%2Fimpl%2FContainerNodeCliSerializer.java;h=62b995e93739308a14e1ab68044df5773203c9fe;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hp=0000000000000000000000000000000000000000;hpb=071a641d7c12c0e6112d5ce0afe806b54f116ed2;p=controller.git diff --git a/opendaylight/netconf/tools/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/ContainerNodeCliSerializer.java b/opendaylight/netconf/tools/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/ContainerNodeCliSerializer.java new file mode 100644 index 0000000000..62b995e937 --- /dev/null +++ b/opendaylight/netconf/tools/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/writer/impl/ContainerNodeCliSerializer.java @@ -0,0 +1,51 @@ +/* + * 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 java.util.Collections; +import org.opendaylight.controller.netconf.cli.writer.OutFormatter; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.serializer.ContainerNodeBaseSerializer; +import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.serializer.NodeSerializerDispatcher; +import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; + +final class ContainerNodeCliSerializer extends ContainerNodeBaseSerializer { + + private final NodeSerializerDispatcher dispatcher; + private final OutFormatter out; + + ContainerNodeCliSerializer(final OutFormatter out, final NodeSerializerDispatcher dispatcher) { + this.out = Preconditions.checkNotNull(out); + this.dispatcher = Preconditions.checkNotNull(dispatcher); + } + + @Override + public Iterable serialize(final ContainerSchemaNode schema, final ContainerNode containerNode) { + final StringBuilder output = new StringBuilder(); + out.increaseIndent(); + out.addStringWithIndent(output, containerNode.getNodeType().getLocalName()); + out.openComposite(output); + out.newLine(output); + + for (final String childOutput : super.serialize(schema, containerNode)) { + output.append(childOutput); + out.newLine(output); + } + + out.closeCompositeWithIndent(output); + out.decreaseIndent(); + return Collections.singletonList(output.toString()); + } + + @Override + protected NodeSerializerDispatcher getNodeDispatcher() { + return dispatcher; + } + +} \ No newline at end of file