X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Freader%2Fimpl%2FContainerReader.java;fp=opendaylight%2Fnetconf%2Fnetconf-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fcli%2Freader%2Fimpl%2FContainerReader.java;h=0000000000000000000000000000000000000000;hp=7850e5ea39341cefa1442d7c049e2508fb4e9a35;hb=23fe9ca678ada6263fec5dd996f4025e4a32fcf5;hpb=071a641d7c12c0e6112d5ce0afe806b54f116ed2 diff --git a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/reader/impl/ContainerReader.java b/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/reader/impl/ContainerReader.java deleted file mode 100644 index 7850e5ea39..0000000000 --- a/opendaylight/netconf/netconf-cli/src/main/java/org/opendaylight/controller/netconf/cli/reader/impl/ContainerReader.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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.reader.impl; - -import com.google.common.base.Function; -import com.google.common.collect.Collections2; -import com.google.common.collect.Lists; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Set; -import org.opendaylight.controller.netconf.cli.CommandArgHandlerRegistry; -import org.opendaylight.controller.netconf.cli.io.BaseConsoleContext; -import org.opendaylight.controller.netconf.cli.io.ConsoleContext; -import org.opendaylight.controller.netconf.cli.io.ConsoleIO; -import org.opendaylight.controller.netconf.cli.reader.AbstractReader; -import org.opendaylight.controller.netconf.cli.reader.ReadingException; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; -import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; - -public class ContainerReader extends AbstractReader { - - private final CommandArgHandlerRegistry argumentHandlerRegistry; - private static final InputArgsLocalNameComparator CONTAINER_CHILDS_SORTER = new InputArgsLocalNameComparator(); - - public ContainerReader(final ConsoleIO console, final CommandArgHandlerRegistry argumentHandlerRegistry, - final SchemaContext schemaContext) { - super(console, schemaContext); - this.argumentHandlerRegistry = argumentHandlerRegistry; - } - - public ContainerReader(final ConsoleIO console, final CommandArgHandlerRegistry argumentHandlerRegistry, - final SchemaContext schemaContext, final boolean readConfigNode) { - super(console, schemaContext, readConfigNode); - this.argumentHandlerRegistry = argumentHandlerRegistry; - } - - @Override - public List> readWithContext(final ContainerSchemaNode containerNode) throws IOException, ReadingException { - console.formatLn("Submit child nodes for container: %s, %s", containerNode.getQName().getLocalName(), - Collections2.transform(containerNode.getChildNodes(), new Function() { - @Override - public String apply(final DataSchemaNode input) { - return input.getQName().getLocalName(); - } - })); - final DataContainerNodeAttrBuilder builder = ImmutableContainerNodeBuilder.create(); - builder.withNodeIdentifier(new NodeIdentifier(containerNode.getQName())); - - final ArrayList> nodesToAdd = new ArrayList<>(); - final SeparatedNodes separatedNodes = SeparatedNodes.separateNodes(containerNode, getReadConfigNode()); - for (final DataSchemaNode childNode : sortChildren(separatedNodes.getMandatoryNotKey())) { - final List> redNodes = argumentHandlerRegistry.getGenericReader(getSchemaContext(), - getReadConfigNode()).read(childNode); - if (redNodes.isEmpty()) { - console.formatLn("No data specified for mandatory element %s.", childNode.getQName().getLocalName()); - return Collections.emptyList(); - } else { - nodesToAdd.addAll(redNodes); - } - } - - for (final DataSchemaNode childNode : sortChildren(separatedNodes.getOthers())) { - nodesToAdd.addAll(argumentHandlerRegistry.getGenericReader(getSchemaContext(), - getReadConfigNode()).read(childNode)); - } - return Collections.> singletonList(builder.withValue((ArrayList) nodesToAdd).build()); - } - - private List sortChildren(final Set unsortedNodes) { - final List childNodes = Lists.newArrayList(unsortedNodes); - Collections.sort(childNodes, CONTAINER_CHILDS_SORTER); - return childNodes; - } - - @Override - protected ConsoleContext getContext(final ContainerSchemaNode schemaNode) { - return new BaseConsoleContext<>(schemaNode); - } - - private static class InputArgsLocalNameComparator implements Comparator { - @Override - public int compare(final DataSchemaNode o1, final DataSchemaNode o2) { - return o1.getQName().getLocalName().compareTo(o2.getQName().getLocalName()); - } - } - -}