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

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

Introduction

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

Prototype

public boolean nextBoolean() throws IOException 

Source Link

Document

Returns the com.google.gson.stream.JsonToken#BOOLEAN boolean value of the next token, consuming it.

Usage

From source file:org.eclipse.lsp4j.jsonrpc.debug.adapters.DebugMessageTypeAdapter.java

License:Open Source License

@Override
public Message read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();/* w  w  w.  j a v  a  2  s  .  c o m*/
        return null;
    }

    in.beginObject();
    String messageType = null, method = null, message = null;
    int seq = 0, request_seq = 0;
    Boolean rawSuccess = null;
    Object rawParams = null;
    Object rawBody = null;

    try {

        while (in.hasNext()) {
            String name = in.nextName();
            switch (name) {
            case "seq": {
                seq = in.nextInt();
                break;
            }
            case "request_seq": {
                // on responses we treat the request_seq as the id
                request_seq = in.nextInt();
                break;
            }
            case "type": {
                messageType = in.nextString();
                break;
            }
            case "success": {
                rawSuccess = in.nextBoolean();
                break;
            }
            case "command": {
                method = in.nextString();
                break;
            }
            case "event": {
                method = in.nextString();
                break;
            }
            case "message": {
                if (in.peek() == JsonToken.NULL) {
                    in.nextNull();
                } else {
                    message = in.nextString();
                }
                break;
            }
            case "arguments": {
                rawParams = parseParams(in, method);
                break;
            }
            case "body": {
                rawBody = parseBody(in, messageType, request_seq, method, rawSuccess);
                break;
            }
            default:
                in.skipValue();
            }
        }
        boolean success = rawSuccess != null ? rawSuccess : false;
        Object params = parseParams(rawParams, method);
        Object body = parseBody(rawBody, messageType, request_seq, method, success);

        in.endObject();
        return createMessage(messageType, seq, request_seq, method, success, message, params, body);

    } catch (JsonSyntaxException | MalformedJsonException | EOFException exception) {
        if ("request".equals(messageType) || "event".equals(messageType) || "response".equals(messageType)) {
            // Create a message and bundle it to an exception with an issue that wraps the original exception
            boolean success = rawSuccess != null ? rawSuccess : false;
            Message resultMessage = createMessage(messageType, seq, request_seq, method, success, message,
                    rawParams, rawBody);
            MessageIssue issue = new MessageIssue("Message could not be parsed.",
                    ResponseErrorCode.ParseError.getValue(), exception);
            throw new MessageIssueException(resultMessage, issue);
        } else {
            throw exception;
        }
    }
}

From source file:org.eclipse.packagedrone.repo.channel.apm.ChannelReader.java

License:Open Source License

public ModifyContextImpl read() throws IOException {
    this.numberOfBytes = 0;

    final Reader reader = new InputStreamReader(this.stream, StandardCharsets.UTF_8);

    final ChannelState.Builder state = new ChannelState.Builder();

    Boolean locked = null;/* w  ww  .j  a  va2s.  c o  m*/

    Map<MetaKey, CacheEntryInformation> cacheEntries = Collections.emptyMap();
    Map<String, ArtifactInformation> artifacts = Collections.emptyMap();
    Map<MetaKey, String> extractedMetaData = Collections.emptyMap();
    Map<MetaKey, String> providedMetaData = Collections.emptyMap();
    Map<String, String> aspects = new HashMap<>();

    final JsonReader jr = new JsonReader(reader);

    jr.beginObject();
    while (jr.hasNext()) {
        final String name = jr.nextName();
        switch (name) {
        case "locked":
            state.setLocked(locked = jr.nextBoolean());
            break;
        case "creationTimestamp":
            state.setCreationTimestamp(readTime(jr));
            break;
        case "modificationTimestamp":
            state.setModificationTimestamp(readTime(jr));
            break;
        case "cacheEntries":
            cacheEntries = readCacheEntries(jr);
            break;
        case "artifacts":
            artifacts = readArtifacts(jr);
            break;
        case "extractedMetaData":
            extractedMetaData = readMetadata(jr);
            break;
        case "providedMetaData":
            providedMetaData = readMetadata(jr);
            break;
        case "validationMessages":
            state.setValidationMessages(readValidationMessages(jr));
            break;
        case "aspects":
            aspects = readAspects(jr);
            break;
        default:
            jr.skipValue();
            break;
        }
    }
    jr.endObject();

    if (locked == null) {
        throw new IOException("Missing values for channel");
    }

    // transient information

    state.setNumberOfArtifacts(artifacts.size());
    state.setNumberOfBytes(this.numberOfBytes);

    // create result

    return new ModifyContextImpl(this.channelId, this.store, this.cacheStore, state.build(), aspects, artifacts,
            cacheEntries, extractedMetaData, providedMetaData);
}

From source file:org.eclipse.tm4e.core.internal.parser.json.JSONPListParser.java

License:Open Source License

public T parse(InputStream contents) throws Exception {
    PList<T> pList = new PList<T>(theme);
    JsonReader reader = new JsonReader(new InputStreamReader(contents, StandardCharsets.UTF_8));
    // reader.setLenient(true);
    boolean parsing = true;
    while (parsing) {
        JsonToken nextToken = reader.peek();
        switch (nextToken) {
        case BEGIN_ARRAY:
            pList.startElement(null, "array", null, null);
            reader.beginArray();//from   w  w  w  . j a  v a  2s.co  m
            break;
        case END_ARRAY:
            pList.endElement(null, "array", null);
            reader.endArray();
            break;
        case BEGIN_OBJECT:
            pList.startElement(null, "dict", null, null);
            reader.beginObject();
            break;
        case END_OBJECT:
            pList.endElement(null, "dict", null);
            reader.endObject();
            break;
        case NAME:
            String lastName = reader.nextName();
            pList.startElement(null, "key", null, null);
            pList.characters(lastName.toCharArray(), 0, lastName.length());
            pList.endElement(null, "key", null);
            break;
        case NULL:
            reader.nextNull();
            break;
        case BOOLEAN:
            reader.nextBoolean();
            break;
        case NUMBER:
            reader.nextLong();
            break;
        case STRING:
            String value = reader.nextString();
            pList.startElement(null, "string", null, null);
            pList.characters(value.toCharArray(), 0, value.length());
            pList.endElement(null, "string", null);
            break;
        case END_DOCUMENT:
            parsing = false;
            break;
        default:
            break;
        }
    }
    reader.close();
    return pList.getResult();
}

From source file:org.fao.fenix.wds.core.datasource.DatasourcePool.java

License:Open Source License

/**
 * @param reader    Google's <code>JsonReader</code>
 * @return <code>DatasourceBean</code> populated out of the JSON file
 * @throws IOException// w  w w  .j  a  va  2s.c om
 *
 * This method reads one of the objects of the JSON array through the
 * <code>JsonReader</code> and creates a <code>DatasourceBean</code>
 * out of it.
 */
public DatasourceBean readMessage(JsonReader reader) throws IOException {
    DatasourceBean b = new DatasourceBean();
    reader.beginObject();
    while (reader.hasNext()) {
        String name = reader.nextName();
        if (name.equalsIgnoreCase("driver")) {
            DRIVER d = DRIVER.valueOf(reader.nextString().toUpperCase());
            b.setDriver(d);
        } else if (name.equalsIgnoreCase("id")) {
            b.setId(reader.nextString());
        } else if (name.equalsIgnoreCase("url")) {
            b.setUrl(reader.nextString());
        } else if (name.equalsIgnoreCase("dbName")) {
            b.setDbName(reader.nextString());
        } else if (name.equalsIgnoreCase("username")) {
            b.setUsername(reader.nextString());
        } else if (name.equalsIgnoreCase("password")) {
            b.setPassword(reader.nextString());
        } else if (name.equalsIgnoreCase("create")) {
            b.setCreate(reader.nextBoolean());
        } else if (name.equalsIgnoreCase("retrieve")) {
            b.setRetrieve(reader.nextBoolean());
        } else if (name.equalsIgnoreCase("update")) {
            b.setUpdate(reader.nextBoolean());
        } else if (name.equalsIgnoreCase("delete")) {
            b.setDelete(reader.nextBoolean());
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    return b;
}

From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java

License:Apache License

private ImmutableAttributes consumeAttributes(JsonReader reader) throws IOException {
    ImmutableAttributes attributes = ImmutableAttributes.EMPTY;
    reader.beginObject();/*from  ww  w .  jav  a 2s  . c  o m*/
    while (reader.peek() != END_OBJECT) {
        String attrName = reader.nextName();
        if (reader.peek() == BOOLEAN) {
            boolean attrValue = reader.nextBoolean();
            attributes = attributesFactory.concat(attributes, Attribute.of(attrName, Boolean.class), attrValue);
        } else {
            String attrValue = reader.nextString();
            attributes = attributesFactory.concat(attributes, Attribute.of(attrName, String.class),
                    new CoercingStringValueSnapshot(attrValue, instantiator));
        }
    }
    reader.endObject();
    return attributes;
}

From source file:org.hibernate.search.backend.elasticsearch.document.model.impl.esnative.ElasticsearchRoutingTypeJsonAdapter.java

License:LGPL

@Override
public RoutingType read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();//from www .j  a v a2  s  .  c o m
        return null;
    }

    RoutingType value = null;
    in.beginObject();
    while (in.hasNext()) {
        String name = in.nextName();
        switch (name) {
        case "required":
            if (in.nextBoolean()) {
                value = RoutingType.REQUIRED;
            } else {
                value = RoutingType.OPTIONAL;
            }
            break;
        default:
            throw new AssertionFailure(
                    "Unexpected property for attribute of type " + RoutingType.class + ": " + name);
        }
    }

    return value;
}

From source file:org.hibernate.search.backend.elasticsearch.gson.impl.ES5FieldDataTypeJsonAdapter.java

License:LGPL

@Override
public FieldDataType read(JsonReader in) throws IOException {
    if (in.nextBoolean()) {
        return FieldDataType.TRUE;
    } else {/*from  w  w w  .jav  a2s .  com*/
        return FieldDataType.FALSE;
    }
}

From source file:org.hibernate.search.backend.elasticsearch.gson.impl.ES5IndexTypeJsonAdapter.java

License:LGPL

@Override
public IndexType read(JsonReader in) throws IOException {
    if (in.nextBoolean()) {
        return IndexType.TRUE;
    } else {//from w w w .j  a  v  a2 s.co m
        return IndexType.FALSE;
    }
}

From source file:org.hibernate.search.backend.elasticsearch.gson.impl.ES5NormsTypeJsonAdapter.java

License:LGPL

@Override
public NormsType read(JsonReader in) throws IOException {
    if (in.nextBoolean()) {
        return NormsType.TRUE;
    } else {/*from ww w . j  a v a2s  . c o  m*/
        return NormsType.FALSE;
    }
}

From source file:org.jclouds.http.functions.ParseFirstJsonValueNamed.java

License:Apache License

private JsonToken skipAndPeek(JsonToken token, JsonReader reader) throws IOException {
    switch (token) {
    case BEGIN_ARRAY:
        reader.beginArray();/*w w w  . ja va 2 s  . c  o  m*/
        break;
    case END_ARRAY:
        reader.endArray();
        break;
    case BEGIN_OBJECT:
        reader.beginObject();
        break;
    case END_OBJECT:
        reader.endObject();
        break;
    case NAME:
        // NOTE that we have already advanced on NAME in the eval block;
        break;
    case STRING:
        reader.nextString();
        break;
    case NUMBER:
        reader.nextString();
        break;
    case BOOLEAN:
        reader.nextBoolean();
        break;
    case NULL:
        reader.nextNull();
        break;
    case END_DOCUMENT:
        break;
    }
    return reader.peek();
}