2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.data.api.schema.stream;
10 import com.google.common.annotations.Beta;
11 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
12 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
13 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
14 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
15 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
20 * A {@link NormalizedNodeStreamWriter} which logs the events into a {@link Logger}.
23 public final class LoggingNormalizedNodeStreamWriter extends AbstractIndentingNormalizedNodeStreamWriter {
24 private static final Logger LOG = LoggerFactory.getLogger(LoggingNormalizedNodeStreamWriter.class);
26 public LoggingNormalizedNodeStreamWriter() {
27 // Default constructor
30 public LoggingNormalizedNodeStreamWriter(final int indentSize) {
36 LOG.trace("<<FLUSH>>");
41 LOG.debug("<<END-OF-STREAM>>");
45 void enterUnkeyedListItem(final NodeIdentifier name, final String indent) {
46 LOG.debug("{}{}[](no key)", indent, name);
50 void enterUnkeyedList(final NodeIdentifier name, final String indent) {
51 LOG.debug("{}{}(no key)", indent, name);
55 void enterMapNode(final NodeIdentifier name, final String indent) {
56 LOG.debug("{}{}(key)", indent, name);
60 void enterMapEntryNode(final NodeIdentifierWithPredicates identifier, final String indent) {
61 LOG.debug("{}{}[](key)", indent, identifier);
65 void enterLeafSet(final NodeIdentifier name, final String indent) {
66 LOG.debug("{}{}(leaf-list)", indent, name);
70 void enterContainerNode(final NodeIdentifier name, final String indent) {
71 LOG.debug("{}{}(container)", indent, name);
75 void enterChoiceNode(final NodeIdentifier name, final String indent) {
76 LOG.debug("{}{}(choice)", indent, name);
80 void enterAugmentationNode(final AugmentationIdentifier identifier, final String indent) {
81 LOG.debug("{}{}(augmentation)", indent, identifier);
85 void enterLeafSetEntryNode(final NodeWithValue<?> name, final String indent) {
86 LOG.debug("{}{}(entry}", indent, name.getNodeType());
90 void enterLeafNode(final NodeIdentifier name, final String indent) {
91 LOG.debug("{}{}(leaf)", indent, name);
95 void enterAnyxmlNode(final NodeIdentifier name, final String indent) {
96 LOG.debug("{}{}(anyxml)", indent, name);
100 void enterAnydataNode(final NodeIdentifier name, final String indent) {
101 LOG.debug("{}{}(anydata)", indent, name);
105 void exitNode(final String indent) {
106 LOG.debug("{}(end)", indent);
110 @SuppressFBWarnings("SLF4J_SIGN_ONLY_FORMAT")
111 void scalarValue(final Object value, final String indent) {
112 LOG.debug("{}({})={}", indent, value.getClass().getSimpleName(), value);