-/*
- * 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 java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-import org.opendaylight.controller.netconf.cli.io.ConsoleIO;
-import org.opendaylight.controller.netconf.cli.writer.OutFormatter;
-import org.opendaylight.controller.netconf.cli.writer.WriteException;
-import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.serializer.NodeSerializerDispatcher;
-import org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.DomUtils;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NormalizedNodeWriter extends AbstractWriter<DataSchemaNode> {
-
- private static final Logger LOG = LoggerFactory.getLogger(NormalizedNodeWriter.class);
- private final OutFormatter out;
-
- public NormalizedNodeWriter(final ConsoleIO console, final OutFormatter out) {
- super(console);
- this.out = out;
- }
-
- public void writeInner(final DataSchemaNode dataSchemaNode, final List<NormalizedNode<?, ?>> dataNodes) throws WriteException,
- IOException {
- //Preconditions.checkState(dataNodes.size() == 1);
- // TODO - add getDispatcher method to CnSnToNormalizedNodeParserFactory
- // to be able call dispatchChildElement
- final NormalizedNode<?, ?> dataContainerChild = dataNodes.get(0);
-
- if (dataContainerChild != null) {
- console.writeLn(serializeToCliOutput(dataContainerChild, dataSchemaNode));
- }
-
- }
-
- private String serializeToCliOutput(final NormalizedNode<?, ?> dataContainerChild,
- final DataSchemaNode childSchema) {
- final CliOutputFromNormalizedNodeSerializerFactory factorySerialization = CliOutputFromNormalizedNodeSerializerFactory
- .getInstance(out, DomUtils.defaultValueCodecProvider());
- final NodeSerializerDispatcher<String> dispatcher = factorySerialization.getDispatcher();
- final Iterable<String> result = dispatcher.dispatchChildElement(childSchema, (DataContainerChild<?, ?>) dataContainerChild);
-
- if (result == null) {
- return "";
- }
-
- final Iterator<String> output = result.iterator();
- if (!output.hasNext()) {
- return "";
- }
-
- return output.next();
- }
-
-}