Example usage for com.google.gson.stream JsonReader endObject

List of usage examples for com.google.gson.stream JsonReader endObject

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader endObject.

Prototype

public void endObject() throws IOException 

Source Link

Document

Consumes the next token from the JSON stream and asserts that it is the end of the current object.

Usage

From source file:org.opendaylight.restconf.jersey.providers.JsonToPATCHBodyReader.java

License:Open Source License

/**
 * Parse data defined in value node and saves it to buffer
 * @param value Buffer to read value node
 * @param in JsonReader reader//www. j a v  a  2 s  . com
 * @throws IOException
 */
private void readValueNode(@Nonnull final StringBuffer value, @Nonnull final JsonReader in) throws IOException {
    in.beginObject();
    value.append("{");

    value.append("\"" + in.nextName() + "\"" + ":");

    if (in.peek() == JsonToken.BEGIN_ARRAY) {
        in.beginArray();
        value.append("[");

        while (in.hasNext()) {
            readValueObject(value, in);
            if (in.peek() != JsonToken.END_ARRAY) {
                value.append(",");
            }
        }

        in.endArray();
        value.append("]");
    } else {
        readValueObject(value, in);
    }

    in.endObject();
    value.append("}");
}

From source file:org.opendaylight.restconf.jersey.providers.JsonToPATCHBodyReader.java

License:Open Source License

/**
 * Parse one value object of data and saves it to buffer
 * @param value Buffer to read value object
 * @param in JsonReader reader/*www  .  ja v a  2  s  .  com*/
 * @throws IOException
 */
private void readValueObject(@Nonnull final StringBuffer value, @Nonnull final JsonReader in)
        throws IOException {
    in.beginObject();
    value.append("{");

    while (in.hasNext()) {
        value.append("\"" + in.nextName() + "\"");
        value.append(":");

        if (in.peek() == JsonToken.STRING) {
            value.append("\"" + in.nextString() + "\"");
        } else {
            if (in.peek() == JsonToken.BEGIN_ARRAY) {
                in.beginArray();
                value.append("[");

                while (in.hasNext()) {
                    readValueObject(value, in);
                    if (in.peek() != JsonToken.END_ARRAY) {
                        value.append(",");
                    }
                }

                in.endArray();
                value.append("]");
            } else {
                readValueObject(value, in);
            }
        }

        if (in.peek() != JsonToken.END_OBJECT) {
            value.append(",");
        }
    }

    in.endObject();
    value.append("}");
}

From source file:org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.java

License:Open Source License

private void traverseAnyXmlValue(final JsonReader in, final Document doc, final Element parentElement)
        throws IOException {
    switch (in.peek()) {
    case STRING://from w w  w  . j  a  v  a  2 s  .c om
    case NUMBER:
        Text textNode = doc.createTextNode(in.nextString());
        parentElement.appendChild(textNode);
        break;
    case BOOLEAN:
        textNode = doc.createTextNode(Boolean.toString(in.nextBoolean()));
        parentElement.appendChild(textNode);
        break;
    case NULL:
        in.nextNull();
        textNode = doc.createTextNode("null");
        parentElement.appendChild(textNode);
        break;
    case BEGIN_ARRAY:
        in.beginArray();
        while (in.hasNext()) {
            final Element childElement = doc.createElement(ANYXML_ARRAY_ELEMENT_ID);
            parentElement.appendChild(childElement);
            traverseAnyXmlValue(in, doc, childElement);
        }
        in.endArray();
        break;
    case BEGIN_OBJECT:
        in.beginObject();
        while (in.hasNext()) {
            final Element childElement = doc.createElement(in.nextName());
            parentElement.appendChild(childElement);
            traverseAnyXmlValue(in, doc, childElement);
        }
        in.endObject();
    case END_DOCUMENT:
    case NAME:
    case END_OBJECT:
    case END_ARRAY:
        break;
    }
}

From source file:org.opendaylight.yangtools.yang.data.codec.gson.JsonParserStream.java

License:Open Source License

public void read(final JsonReader in, AbstractNodeDataWithSchema parent) throws IOException {
    switch (in.peek()) {
    case STRING:/*from   w  w w .j a v a 2 s. c  o m*/
    case NUMBER:
        setValue(parent, in.nextString());
        break;
    case BOOLEAN:
        setValue(parent, Boolean.toString(in.nextBoolean()));
        break;
    case NULL:
        in.nextNull();
        setValue(parent, null);
        break;
    case BEGIN_ARRAY:
        in.beginArray();
        while (in.hasNext()) {
            if (parent instanceof LeafNodeDataWithSchema) {
                read(in, parent);
            } else {
                final AbstractNodeDataWithSchema newChild = newArrayEntry(parent);
                read(in, newChild);
            }
        }
        in.endArray();
        return;
    case BEGIN_OBJECT:
        final Set<String> namesakes = new HashSet<>();
        in.beginObject();
        /*
         * This allows parsing of incorrectly /as showcased/
         * in testconf nesting of list items - eg.
         * lists with one value are sometimes serialized
         * without wrapping array.
         *
         */
        if (isArray(parent)) {
            parent = newArrayEntry(parent);
        }
        while (in.hasNext()) {
            final String jsonElementName = in.nextName();
            DataSchemaNode parentSchema = parent.getSchema();
            if (parentSchema instanceof YangModeledAnyXmlSchemaNode) {
                parentSchema = ((YangModeledAnyXmlSchemaNode) parentSchema).getSchemaOfAnyXmlData();
            }
            final NamespaceAndName namespaceAndName = resolveNamespace(jsonElementName, parentSchema);
            final String localName = namespaceAndName.getName();
            addNamespace(namespaceAndName.getUri());
            if (namesakes.contains(jsonElementName)) {
                throw new JsonSyntaxException("Duplicate name " + jsonElementName + " in JSON input.");
            }
            namesakes.add(jsonElementName);

            final Deque<DataSchemaNode> childDataSchemaNodes = ParserStreamUtils
                    .findSchemaNodeByNameAndNamespace(parentSchema, localName, getCurrentNamespace());
            if (childDataSchemaNodes.isEmpty()) {
                throw new IllegalStateException("Schema for node with name " + localName + " and namespace "
                        + getCurrentNamespace() + " doesn't exist.");
            }

            final AbstractNodeDataWithSchema newChild = ((CompositeNodeDataWithSchema) parent)
                    .addChild(childDataSchemaNodes);
            if (newChild instanceof AnyXmlNodeDataWithSchema) {
                readAnyXmlValue(in, (AnyXmlNodeDataWithSchema) newChild, jsonElementName);
            } else {
                read(in, newChild);
            }
            removeNamespace();
        }
        in.endObject();
        return;
    case END_DOCUMENT:
    case NAME:
    case END_OBJECT:
    case END_ARRAY:
        break;
    }
}

From source file:org.openstreetmap.josm.plugins.openstreetcam.service.photo.adapter.PhotoTypeAdapter.java

License:LGPL

@Override
public Photo read(final JsonReader reader) throws IOException {
    Double latitude = null;// w  w w  .j  a  va  2 s  .  co m
    Double longitude = null;
    final PhotoBuilder builder = new PhotoBuilder();
    reader.beginObject();
    while (reader.hasNext()) {
        switch (reader.nextName()) {
        case PHOTO_ID:
            builder.id(ReaderUtil.readLong(reader));
            break;
        case PHOTO_SEQUENCE_ID:
            builder.sequenceId(ReaderUtil.readLong(reader));
            break;
        case PHOTO_SEQUENCE_IDX:
            builder.sequenceIndex(ReaderUtil.readInt(reader));
            break;
        case PHOTO_LATITUDE:
            latitude = ReaderUtil.readDouble(reader);
            break;
        case PHOTO_LONGITUDE:
            longitude = ReaderUtil.readDouble(reader);
            break;
        case PHOTO_NAME:
            builder.name(ReaderUtil.readString(reader));
            break;
        case PHOTO_LTH_NAME:
            builder.largeThumbnailName(ReaderUtil.readString(reader));
            break;
        case PHOTO_TH_NAME:
            builder.thumbnailName(ReaderUtil.readString(reader));
            break;
        case PHOTO_ORI_NAME:
            builder.oriName(ReaderUtil.readString(reader));
            break;
        case PHOTO_TIMESTAMP:
            builder.timestamp(ReaderUtil.readLong(reader));
            break;
        case PHOTO_HEADING:
            final String value = ReaderUtil.readString(reader);
            final Double heading = value != null && !value.isEmpty() ? Double.parseDouble(value) : null;
            builder.heading(heading);
            break;
        case PHOTO_USERNAME:
            builder.username(ReaderUtil.readString(reader));
            break;
        case WAY_ID:
            final String wayIdValue = ReaderUtil.readString(reader);
            final Long wayId = wayIdValue != null && !wayIdValue.isEmpty() ? Long.parseLong(wayIdValue) : null;
            builder.wayId(wayId);
            break;
        case PHOTO_SHOT_DATE:
            builder.shotDate(ReaderUtil.readString(reader));
            break;
        default:
            reader.skipValue();
            break;
        }
    }
    if (latitude != null && longitude != null) {
        builder.point(latitude, longitude);
    }
    reader.endObject();
    return builder.build();
}

From source file:org.openstreetmap.josm.plugins.openstreetcam.service.photo.adapter.SegmentTypeAdapter.java

License:LGPL

@Override
public Segment read(final JsonReader reader) throws IOException {
    final SegmentBuilder builder = new SegmentBuilder();
    reader.beginObject();/*from w  w  w .j a v  a2  s.com*/
    while (reader.hasNext()) {
        switch (reader.nextName()) {
        case SEGMENT_ID:
            builder.id(ReaderUtil.readString(reader));
            break;
        case SEGMENT_FROM:
            builder.from(ReaderUtil.readLong(reader));
            break;
        case SEGMENT_TO:
            builder.to(ReaderUtil.readLong(reader));
            break;
        case WAY_ID:
            builder.wayId(ReaderUtil.readLong(reader));
            break;
        case SEGMENT_COVERAGE:
            builder.coverage(ReaderUtil.readInt(reader));
            break;
        case SEGMENT_GEOMETRY:
            builder.geometry(ReaderUtil.readGeometry(reader));
            break;
        default:
            reader.skipValue();
            break;
        }
    }
    reader.endObject();
    return builder.build();
}

From source file:org.openstreetmap.josm.plugins.openstreetcam.service.PhotoTypeAdapter.java

License:Apache License

@Override
public Photo read(final JsonReader reader) throws IOException {
    Long id = null;//from w ww  .  j a v  a  2  s .  c om
    Long sequenceId = null;
    Integer sequenceIdx = null;
    Double latitude = null;
    Double longitude = null;
    String name = null;
    String largeThumbnailName = null;
    String thumbnailName = null;
    Long timestamp = null;
    String headingVal = null;
    String username = null;
    reader.beginObject();

    while (reader.hasNext()) {
        switch (reader.nextName()) {
        case ID:
            id = readLong(reader);
            break;
        case SEQUENCE_ID:
            sequenceId = readLong(reader);
            break;
        case SEQUENCE_IDX:
            sequenceIdx = readInt(reader);
            break;
        case LATITUDE:
            latitude = readDouble(reader);
            break;
        case LONGITUDE:
            longitude = readDouble(reader);
            break;
        case NAME:
            name = readString(reader);
            break;
        case LTH_NAME:
            largeThumbnailName = readString(reader);
            break;
        case TH_NAME:
            thumbnailName = readString(reader);
            break;
        case TIMESTAMP:
            timestamp = readLong(reader);
            break;
        case HEADING:
            headingVal = readString(reader);
            break;
        case USERNAME:
            username = readString(reader);
            break;
        default:
            reader.skipValue();
            break;
        }
    }
    reader.endObject();
    final Double heading = headingVal != null && !headingVal.isEmpty() ? Double.parseDouble(headingVal) : null;
    return new Photo(id, sequenceId, sequenceIdx, latitude, longitude, name, largeThumbnailName, thumbnailName,
            timestamp, heading, username);
}

From source file:org.project.openbaton.nubomedia.paas.model.openshift.EnvironmentVariableSerializer.java

License:Apache License

@Override
public EnvironmentVariable read(JsonReader in) throws IOException {

    EnvironmentVariable env = new EnvironmentVariable();

    in.beginObject();/*from   ww  w .j  ava 2  s .  c om*/
    while (in.hasNext()) {
        if (in.nextName().equals("name")) {
            env.setName(in.nextString());
        }
        if (in.nextName().equals("value")) {
            env.setValue(in.nextString());
        }
    }
    in.endObject();

    return env;
}

From source file:org.project.openbaton.nubomedia.paas.model.openshift.MetadataTypeAdapter.java

License:Apache License

@Override
public Metadata read(JsonReader in) throws IOException {

    String name = "", selfLink = "", resourceVersion = "", namespace = "";
    in.beginObject();/*from ww w .j  a  v  a2 s.co m*/

    while (in.hasNext()) {
        String nameObj = in.nextName();

        switch (nameObj) {
        case "name":
            name = in.nextString();
            break;
        case "selfLink":
            selfLink = in.nextString();
            break;
        case "resourceVersion":
            resourceVersion = in.nextString();
            break;
        case "namespace":
            namespace = in.nextString();
            break;
        default:
            in.skipValue();
            break;
        }
    }

    in.endObject();

    return new Metadata(name, selfLink, resourceVersion, namespace);
}

From source file:org.project.openbaton.nubomedia.paas.model.openshift.OutputTypeAdapter.java

License:Apache License

@Override
public Output read(JsonReader in) throws IOException {

    BuildElements be = null;//from  w  ww  .  j av  a2  s  .  com
    SecretID secId = null;

    in.beginObject();
    while (in.hasNext()) {
        if (in.nextName().equals("to")) {
            be = readBuildElement(in);
        }
        if (in.nextName().equals("pushSecret"))
            secId = this.readSecID(in);
    }
    in.endObject();

    return new Output(be, secId);
}