X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frest%2Fimpl%2FNormalizedNodeJsonBodyWriter.java;h=2cdded2813d446df1c878f276d42a75755db0d07;hb=f94de91bba1210fa852aaab0490743f9f3553e99;hp=5c17f2a14ab2558c4acd089e224828a9248530eb;hpb=7c36786fa7e491d952c82cb13f28bbe87bc26015;p=controller.git diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java index 5c17f2a14a..2cdded2813 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/NormalizedNodeJsonBodyWriter.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.sal.rest.impl; import com.google.common.base.Charsets; +import com.google.common.base.Optional; import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.io.OutputStream; @@ -22,6 +23,7 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.MessageBodyWriter; import javax.ws.rs.ext.Provider; import org.opendaylight.controller.sal.rest.api.Draft02; +import org.opendaylight.controller.sal.rest.api.RestconfNormalizedNodeWriter; import org.opendaylight.controller.sal.rest.api.RestconfService; import org.opendaylight.controller.sal.restconf.impl.InstanceIdentifierContext; import org.opendaylight.controller.sal.restconf.impl.NormalizedNodeContext; @@ -31,7 +33,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory; import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.codec.gson.JsonWriterFactory; @@ -47,6 +48,8 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; Draft02.MediaTypes.OPERATION + RestconfService.JSON, MediaType.APPLICATION_JSON }) public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter { + private static final int DEFAULT_INDENT_SPACES_NUM = 2; + @Override public boolean isWriteable(final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType) { return type.equals(NormalizedNodeContext.class); @@ -70,22 +73,23 @@ public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter context = (InstanceIdentifierContext) t.getInstanceIdentifierContext(); SchemaPath path = context.getSchemaNode().getPath(); - final JsonWriter jsonWriter = createJsonWriter(entityStream); + final JsonWriter jsonWriter = createJsonWriter(entityStream, t.getWriterParameters().isPrettyPrint()); jsonWriter.beginObject(); - writeNormalizedNode(jsonWriter,path,context,data); + writeNormalizedNode(jsonWriter,path,context,data, t.getWriterParameters().getDepth()); jsonWriter.endObject(); jsonWriter.flush(); } private void writeNormalizedNode(JsonWriter jsonWriter, SchemaPath path, - InstanceIdentifierContext context, NormalizedNode data) throws IOException { - final NormalizedNodeWriter nnWriter; + InstanceIdentifierContext context, NormalizedNode data, Optional depth) throws + IOException { + final RestconfNormalizedNodeWriter nnWriter; if (SchemaPath.ROOT.equals(path)) { /* * Creates writer without initialNs and we write children of root data container * which is not visible in restconf */ - nnWriter = createNormalizedNodeWriter(context,path,jsonWriter); + nnWriter = createNormalizedNodeWriter(context,path,jsonWriter, depth); writeChildren(nnWriter,(ContainerNode) data); } else if (context.getSchemaNode() instanceof RpcDefinition) { /* @@ -93,7 +97,7 @@ public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter child : data.getValue()) { nnWriter.write(child); } } - private NormalizedNodeWriter createNormalizedNodeWriter(final InstanceIdentifierContext context, - final SchemaPath path, final JsonWriter jsonWriter) { + private RestconfNormalizedNodeWriter createNormalizedNodeWriter(final InstanceIdentifierContext context, + final SchemaPath path, final JsonWriter jsonWriter, Optional depth) { final SchemaNode schema = context.getSchemaNode(); final JSONCodecFactory codecs = getCodecFactory(context); @@ -133,13 +137,20 @@ public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter context) {