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

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

Introduction

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

Prototype

public JsonToken peek() throws IOException 

Source Link

Document

Returns the type of the next token without consuming it.

Usage

From source file:se.sics.datamodel.client.gson.CQueryObjAdapter.java

License:Open Source License

@Override
public CQueryObj read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();// w ww. j a v  a 2s  . com

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("dbId")) {
        throw new IOException();
    }
    ByteId dbId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeId")) {
        throw new IOException();
    }
    ByteId typeId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("indexId")) {
        throw new IOException();
    }
    ByteId indexId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("indexVal")) {
        throw new IOException();
    }
    QueryTypeHolder indexVal = gson.fromJson(reader, QueryTypeHolder.class);
    reader.endObject();
    return new CQueryObj(Pair.with(dbId, typeId), indexId, indexVal);
}

From source file:se.sics.datamodel.client.gson.CQueryTypeAdapter.java

License:Open Source License

@Override
public QueryTypeHolder read(JsonReader reader) throws IOException {
    Gson gson = CGsonHelper.getGson();//from ww  w.  j a  va 2s  .co m

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME) {
        throw new IOException();
    }
    String queryType = reader.nextName();
    if (queryType.equals("is")) {
        JsonElement je = gson.fromJson(reader, JsonElement.class);
        return new FieldIsHolder(je);
    } else if (queryType.equals("from")) {
        JsonElement jeFrom = gson.fromJson(reader, JsonElement.class);
        if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("to")) {
            throw new IOException();
        }
        JsonElement jeTo = gson.fromJson(reader, JsonElement.class);
        return new FieldScanHolder(jeFrom, jeTo);
    } else {
        throw new IOException("unknown query type");
    }
}

From source file:se.sics.datamodel.gson.TypeInfoAdapter.java

License:Open Source License

@Override
public TypeInfo read(JsonReader reader) throws IOException {
    String typeName;/*from  ww  w.  j  a v a2s  .co m*/

    Gson gson = GsonHelper.getGson();

    reader.beginObject();
    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("typeName")) {
        throw new IOException();
    }
    typeName = reader.nextString();

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("fieldMap")) {
        throw new IOException();
    }
    if (reader.peek() != JsonToken.BEGIN_ARRAY) {
        throw new IOException();
    }
    reader.beginArray();

    TypeInfo.Builder tiBuilder = new TypeInfo.Builder(typeName);

    while (reader.peek() != JsonToken.END_ARRAY) {
        if (reader.peek() != JsonToken.BEGIN_OBJECT) {
            throw new IOException();
        }
        reader.beginObject();

        if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("id")) {
            throw new IOException();
        }
        ByteId fieldId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

        if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("field")) {
            throw new IOException();
        }
        FieldInfo fieldInfo = gson.fromJson(reader, FieldInfo.class);

        tiBuilder.put(fieldId, fieldInfo);
        reader.endObject();
    }

    reader.endArray();
    reader.endObject();
    return tiBuilder.build();
}

From source file:se.sics.datamodel.gson.TypeInfoAdapter.java

License:Open Source License

private FieldInfo readFieldInfo(JsonReader reader) throws IOException {
    String fieldName;/*from   w ww  .ja v  a 2  s.  c o m*/
    FieldType fieldType;
    Boolean indexed;

    Gson gson = GsonHelper.getGson();

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("name")) {
        throw new IOException();
    }
    fieldName = gson.fromJson(reader, String.class);

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("type")) {
        throw new IOException();
    }
    fieldType = gson.fromJson(reader, FieldType.class);

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("indexed")) {
        throw new IOException();
    }
    indexed = gson.fromJson(reader, Boolean.class);

    return new FieldInfo(fieldName, fieldType, indexed);
}

From source file:se.sics.datamodel.gson.ValueHolderAdapter.java

License:Open Source License

@Override
public ValueHolder read(JsonReader reader) throws IOException {
    Gson gson = GsonHelper.getGson();/*  w  ww  .ja  v a  2  s  .c  o m*/
    ValueHolder.Builder vhBuilder = new ValueHolder.Builder();

    if (reader.peek() != JsonToken.BEGIN_OBJECT) {
        throw new IOException();
    }
    reader.beginObject();

    if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("fieldMap")) {
        throw new IOException();
    }
    if (reader.peek() != JsonToken.BEGIN_ARRAY) {
        throw new IOException();
    }
    reader.beginArray();

    while (reader.peek() != JsonToken.END_ARRAY) {
        if (reader.peek() != JsonToken.BEGIN_OBJECT) {
            throw new IOException();
        }
        reader.beginObject();

        if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("id")) {
            throw new IOException();
        }
        ByteId fieldId = new ByteId((byte[]) gson.fromJson(reader, byte[].class));

        if (reader.peek() != JsonToken.NAME || !reader.nextName().equals("field")) {
            throw new IOException();
        }
        JsonElement je = gson.fromJson(reader, JsonElement.class);

        vhBuilder.put(fieldId, je);

        if (reader.peek() != JsonToken.END_OBJECT) {
            throw new IOException();
        }
        reader.endObject();
    }

    reader.endArray();
    reader.endObject();
    return vhBuilder.build();
}

From source file:sf.net.experimaestro.manager.json.JsonConverter.java

License:Open Source License

@Override
public Json convertToEntityAttribute(String dbData) {
    final JsonReader jsonReader = new JsonReader(new StringReader(dbData));

    try {/*from   ww w.  ja va  2s.c o m*/
        final Json json = readNext(jsonReader);
        if (jsonReader.peek() != JsonToken.END_DOCUMENT) {
            throw new RuntimeException("Expected end of document");
        }
        return json;
    } catch (IOException e) {
        LOGGER.error(e, "Error while reading JSON string [%s]", dbData);
        throw new RuntimeException(e);
    } catch (RuntimeException e) {
        LOGGER.error(e, "Error while reading JSON string [%s]", dbData);
        throw e;
    }
}

From source file:sf.net.experimaestro.manager.json.JsonConverter.java

License:Open Source License

private Json readNext(JsonReader jsonReader) throws IOException {
    final JsonToken token = jsonReader.peek();
    switch (token) {
    case BEGIN_ARRAY: {
        jsonReader.beginArray();//from w w  w .jav a2  s .  c o  m
        JsonArray array = new JsonArray();
        while (jsonReader.peek() != JsonToken.END_ARRAY) {
            array.add(readNext(jsonReader));
        }
        jsonReader.endArray();
        return array;
    }

    case BEGIN_OBJECT: {
        jsonReader.beginObject();
        JsonObject object = new JsonObject();
        while (jsonReader.peek() != JsonToken.END_OBJECT) {
            final String name = jsonReader.nextName();
            final Json value = readNext(jsonReader);
            object.put(name, value);
        }
        jsonReader.endObject();
        return object;
    }

    case BOOLEAN:
        return new JsonBoolean(jsonReader.nextBoolean());

    case STRING:
        return new JsonString(jsonReader.nextString());

    case NULL: {
        jsonReader.nextNull();
        return JsonNull.getSingleton();
    }

    case NUMBER:
        return new JsonReal(jsonReader.nextDouble());

    default:
        throw new RuntimeException("Cannot handle GSON token type: " + token.name());

    }
}

From source file:sf.net.experimaestro.utils.gson.JsonAdapter.java

License:Open Source License

private Json readValue(JsonReader in) throws IOException {
    final JsonToken peek = in.peek();
    switch (peek) {
    case BEGIN_ARRAY:
        in.beginArray();/*from w w w. j  a  v a2 s  .  c om*/
        JsonArray array = new JsonArray();
        while (in.peek() != JsonToken.END_ARRAY) {
            array.add(readValue(in));
        }
        in.endArray();
        return array;

    case BEGIN_OBJECT:
        in.beginObject();
        JsonObject object = new JsonObject();
        while (in.peek() != JsonToken.END_OBJECT) {
            final String name = in.nextName();
            final Json value = readValue(in);
            object.put(name, value);
        }
        in.endObject();
        return object;

    case BOOLEAN:
        return new JsonBoolean(in.nextBoolean());

    case NUMBER:
        final double value = in.nextDouble();
        if (value == Math.round(value))
            return new JsonInteger((long) value);
        return new JsonReal(value);

    case STRING:
        return new JsonString(in.nextString());

    case NULL:
        return JsonNull.getSingleton();

    case NAME:
    case END_OBJECT:
    case END_ARRAY:
    case END_DOCUMENT:
        throw new AssertionError("Not expecting " + peek);
    }
    return null;
}

From source file:teste.adapter.ArrayAdapter.java

public List<T> read(JsonReader reader) throws IOException {

    List<T> list = new ArrayList<T>();

    Gson gson = new GsonBuilder().registerTypeAdapterFactory(new ArrayAdapterFactory()).create();

    if (reader.peek() == JsonToken.BEGIN_OBJECT) {
        T inning = gson.fromJson(reader, adapterclass);
        list.add(inning);//  ww  w  . ja  v a2s  .c o  m

    } else if (reader.peek() == JsonToken.BEGIN_ARRAY) {

        reader.beginArray();
        while (reader.hasNext()) {
            T inning = gson.fromJson(reader, adapterclass);
            list.add(inning);
        }
        reader.endArray();

    }

    return list;
}