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:net.oneandone.stool.configuration.adapter.ExtensionsAdapter.java

License:Apache License

@Override
public Extensions read(JsonReader in) throws IOException {
    Extensions extensions;//from  w  w w  .ja  va  2  s.  c o m
    String str;
    String name;
    Extension extension;
    Class<? extends Extension> clazz;

    extensions = new Extensions();
    in.beginObject();
    while (in.peek() == JsonToken.NAME) {
        str = in.nextName();
        name = str.substring(1);
        clazz = factory.type(name);
        if (clazz == null) {
            throw new IOException("extension not found: " + name);
        }
        extension = gson.fromJson(in, clazz);
        extensions.add(name, str.startsWith("+"), extension);
    }
    in.endObject();
    return extensions;
}

From source file:net.visualillusionsent.newu.StationTracker.java

License:Open Source License

private void loadStations() {
    try {/*  www.  jav a2s  .  c om*/
        File stationsJSON = new File(NewU.cfgDir, "stations.json");
        if (!stationsJSON.exists()) {
            stationsJSON.createNewFile();
            return;
        }

        JsonReader reader = new JsonReader(new FileReader(stationsJSON));
        reader.beginObject(); // Begin main object
        while (reader.hasNext()) {
            String name = reader.nextName();
            if (name.equals("Station")) {
                NewUStation temp = null;
                reader.beginObject(); // Begin Station
                String foundName = null;
                while (reader.hasNext()) {
                    name = reader.nextName();
                    if (name.equals("Name")) {
                        foundName = reader.nextString();
                        continue;
                    } else if (name.equals("Location")) {
                        reader.beginObject(); // Begin Location
                        temp = new NewUStation(foundName, reader); // Pass reader into NewUStation object for parsing
                        reader.endObject(); // End Location
                    } else if (name.equals("Discoverers")) {
                        reader.beginArray(); // Begin Discoverers
                        while (reader.hasNext()) {
                            if (temp != null) {
                                temp.addDiscoverer(reader.nextString());
                            }
                        }
                        reader.endArray(); // End Discoverers
                    } else {
                        reader.skipValue(); // UNKNOWN THING
                    }
                }
                if (temp != null) {
                    stations.put(temp.getName(), temp);
                }
                reader.endObject(); //End Station
            }
        }

        reader.endObject(); // End main object
        reader.close();
    } catch (IOException e) {
        logger.log(Level.SEVERE, "Failed to load stations...");
    }
}

From source file:ninja.leaping.configurate.gson.GsonConfigurationLoader.java

License:Apache License

private void parseObject(JsonReader parser, ConfigurationNode node) throws IOException {
    parser.beginObject();//from w  w w. j  ava 2s .  co m
    JsonToken token;
    while ((token = parser.peek()) != null) {
        switch (token) {
        case END_OBJECT:
        case END_DOCUMENT:
            parser.endObject();
            return;
        case NAME:
            parseValue(parser, node.getNode(parser.nextName()));
            break;
        default:
            throw new JsonParseException("Received improper object value " + token);
        }
    }
    throw new JsonParseException("Reached end of stream with unclosed object!");
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private void readWorkflowInfo(JsonReader jsonReader) throws IOException, ParserException {
    jsonReader.beginObject();/*from   w  ww.  java 2 s  .  c o  m*/
    String name;
    while (jsonReader.hasNext()) {
        name = jsonReader.nextName();
        if (name.equals(NAME)) {
            workflowInfo.setName(jsonReader.nextString());
        } else if (name.equals(ID)) {
            workflowInfo.setId(jsonReader.nextString());
        } else if (name.equals(DESCRIPTION)) {
            workflowInfo.setDescription(jsonReader.nextString());
        } else if (name.equals(VERSION)) {
            workflowInfo.setVersion(jsonReader.nextString());
        } else if (name.equals(APPLICATIONS)) {
            readApplications(jsonReader);
        } else if (name.equals(WORKFLOW_INPUTS)) {
            readWorkflowInputs(jsonReader);
        } else if (name.equals(WORKFLOW_OUTPUTS)) {
            readWorkflowOutputs(jsonReader);
        } else if (name.equals(LINKS)) {
            readWorkflowLinks(jsonReader);
        } else {
            jsonReader.skipValue();
        }
    }
    jsonReader.endObject();
    //TODO: set count properties of workflow info object
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private void readWorkflowInputs(JsonReader jsonReader) throws ParserException, IOException {
    JsonToken peek = jsonReader.peek();//  w  w w. j av a 2s.c  o  m
    InputNode inputNode;
    NodeModel nodeModel;
    ComponentStatus status;
    String name;
    if (peek == JsonToken.NULL) {
        throw new ParserException("Error! workflow inputs can't be null");
    } else if (peek == JsonToken.BEGIN_ARRAY) {
        jsonReader.beginArray();
        while (jsonReader.hasNext()) {
            jsonReader.beginObject();
            nodeModel = new NodeModel();
            status = new ComponentStatus();
            status.setState(ComponentState.CREATED);
            status.setReason("Created");
            nodeModel.setStatus(status);
            inputNode = new InputNodeImpl(nodeModel);
            while (jsonReader.hasNext()) {
                name = jsonReader.nextName();
                if (name.equals(NAME)) {
                    nodeModel.setName(jsonReader.nextString());
                } else if (name.equals(ID)) {
                    nodeModel.setNodeId(jsonReader.nextString());
                } else if (name.equals(DATATYPE)) {
                    inputNode.setDataType(DataType.valueOf(jsonReader.nextString()));
                } else if (name.equals(DESCRIPTION)) {
                    nodeModel.setDescription(jsonReader.nextString());
                } else if (name.equals(POSITION)) {
                    readPosition(jsonReader);
                } else if (name.equals(NODE_ID)) {
                    jsonReader.skipValue();
                    //                        nodeModel.setNodeId(jsonReader.nextString());
                } else if (name.equals(DEFAULT_VALUE)) {
                    inputNode.setValue(jsonReader.nextString());
                } else {
                    jsonReader.skipValue();
                }
            }
            jsonReader.endObject();
            inputs.add(inputNode);
        }
        jsonReader.endArray();
    } else {
        throw new ParserException("Error! Unsupported value for Workflow Inputs, exptected "
                + getTokenString(JsonToken.BEGIN_OBJECT) + " but found" + getTokenString(peek));
    }
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private void readWorkflowOutputs(JsonReader jsonReader) throws IOException, ParserException {
    JsonToken peek = jsonReader.peek();/*  w w  w . j  a v a2  s .  c o m*/
    OutputNode outputNode;
    NodeModel nodeModel;
    ComponentStatus status;
    String name;
    if (peek == JsonToken.NULL) {
        throw new ParserException("Error! workflow outputs can't be null");
    } else if (peek == JsonToken.BEGIN_ARRAY) {
        jsonReader.beginArray();
        while (jsonReader.hasNext()) {
            jsonReader.beginObject();
            nodeModel = new NodeModel();
            status = new ComponentStatus();
            status.setState(ComponentState.CREATED);
            status.setReason("Created");
            nodeModel.setStatus(status);
            outputNode = new OutputNodeImpl(nodeModel);
            while (jsonReader.hasNext()) {
                name = jsonReader.nextName();
                if (name.equals(NAME)) {
                    nodeModel.setName(jsonReader.nextString());
                } else if (name.equals(ID)) {
                    nodeModel.setNodeId(jsonReader.nextString());
                } else if (name.equals(DATATYPE)) {
                    jsonReader.skipValue();
                } else if (name.equals(DESCRIPTION)) {
                    nodeModel.setDescription(jsonReader.nextString());
                } else if (name.equals(POSITION)) {
                    readPosition(jsonReader);
                } else if (name.equals(NODE_ID)) {
                    jsonReader.skipValue();
                    //                        nodeModel.setNodeId(jsonReader.nextString());
                } else if (name.equals(DEFAULT_VALUE)) {
                    jsonReader.skipValue();
                } else {
                    jsonReader.skipValue();
                }

            }
            jsonReader.endObject();
            outputs.add(outputNode);
        }
        jsonReader.endArray();
    } else {
        throw new ParserException("Error! Unsupported value for Workflow Outputs, exptected "
                + getTokenString(JsonToken.BEGIN_OBJECT) + " but found" + getTokenString(peek));
    }
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private Link readLink(JsonReader jsonReader) throws IOException {
    jsonReader.beginObject();// w w w .j  a  v  a 2 s  .com
    String name = null;
    Link link = new Link();
    while (jsonReader.hasNext()) {
        name = jsonReader.nextName();
        if (name.equals(DESCRIPTION)) {
            link.setDescription(jsonReader.nextString());
        } else if (name.equals(FROM)) {
            link.setFrom(readLinkHelper(jsonReader));
        } else if (name.equals(TO)) {
            link.setTo(readLinkHelper(jsonReader));
        } else if (name.equals(ID)) {
            link.setId(jsonReader.nextString());
        } else {
            jsonReader.skipValue();
        }
    }
    jsonReader.endObject();
    return link;
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private LinkHelper readLinkHelper(JsonReader jsonReader) throws IOException {
    jsonReader.beginObject();//from   ww  w .  j a  va 2s.  c  o  m
    String name;
    LinkHelper helper = new LinkHelper();
    while (jsonReader.hasNext()) {
        name = jsonReader.nextName();
        if (name.equals(NODE_ID)) {
            helper.setNodeId(jsonReader.nextString());
        } else if (name.equals(OUTPUT_ID) || name.equals(INPUT_ID)) {
            helper.setPortId(jsonReader.nextString());
        } else {
            jsonReader.skipValue();
        }
    }
    jsonReader.endObject();
    return helper;
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private ApplicationNode readApplication(JsonReader jsonReader) throws IOException, ParserException {
    jsonReader.beginObject();/*from   w  w  w.java 2 s .  com*/
    NodeModel nodeModel = new NodeModel();
    ComponentStatus status = new ComponentStatus();
    status.setState(ComponentState.CREATED);
    status.setReason("Created");
    nodeModel.setStatus(status);
    ApplicationNode applicationNode = new ApplicationNodeImpl(nodeModel);
    String name;
    while (jsonReader.hasNext()) {
        name = jsonReader.nextName();
        if (name.equals(APPLICATION_ID)) {
            nodeModel.setApplicationId(jsonReader.nextString());
        } else if (name.equals(NAME)) {
            nodeModel.setName(jsonReader.nextString());
        } else if (name.equals(DESCRIPTION)) {
            nodeModel.setDescription(jsonReader.nextString());
        } else if (name.equals(APPTYPE)) {
            jsonReader.skipValue();
        } else if (name.equals(INPUTS)) {
            applicationNode.addInputPorts(readApplicationInputs(jsonReader));
        } else if (name.equals(OUTPUTS)) {
            applicationNode.addOutPorts(readApplicationOutputs(jsonReader));
        } else if (name.equals(POSITION)) {
            readPosition(jsonReader);
        } else if (name.equals(NODE_ID)) {
            nodeModel.setNodeId(jsonReader.nextString());
        } else if (name.equals(PARALLEL_EXECUTION)) {
            jsonReader.skipValue();
        } else if (name.equals(PROPERTIES)) {
            readProperties(jsonReader);
        }
    }
    jsonReader.endObject();
    return applicationNode;
}

From source file:org.apache.airavata.workflow.core.parser.JsonWorkflowParser.java

License:Apache License

private List<InPort> readApplicationInputs(JsonReader jsonReader) throws IOException, ParserException {
    List<InPort> inPorts = new ArrayList<>();
    JsonToken peek = jsonReader.peek();//from ww w  . j  a  va  2  s  .c  om
    PortModel portModel;
    InPort inPort;
    String name;
    if (peek == JsonToken.NULL) {
        jsonReader.nextNull();
    } else if (peek == JsonToken.BEGIN_ARRAY) {
        jsonReader.beginArray();
        while (jsonReader.hasNext()) {
            portModel = new PortModel();
            inPort = new InputPortIml(portModel);
            jsonReader.beginObject();
            while (jsonReader.hasNext()) {
                name = jsonReader.nextName();
                if (name.equals(NAME)) {
                    portModel.setName(jsonReader.nextString());
                } else if (name.equals(ID)) {
                    portModel.setPortId(jsonReader.nextString());
                } else if (name.equals(DATATYPE)) {
                    jsonReader.skipValue();
                } else if (name.equals(DEFAULT_VALUE)) {
                    inPort.setDefaultValue(jsonReader.nextString());
                } else if (name.equals(DESCRIPTION)) {
                    portModel.setDescription(jsonReader.nextString());
                } else {
                    jsonReader.skipValue();
                }
            }
            jsonReader.endObject();
            inPorts.add(inPort);
        }
        jsonReader.endArray();
    } else {
        throw new ParserException(
                "Error! reading application inputs, expected " + getTokenString(JsonToken.NULL) + " or "
                        + getTokenString(JsonToken.BEGIN_ARRAY) + " but found " + getTokenString(peek));
    }

    return inPorts;
}