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:com.sap.core.odata.core.ep.consumer.JsonServiceDocumentConsumer.java

License:Apache License

private ServiceDocumentImpl readServiceDocument(final JsonReader reader) throws EntityProviderException {
    try {//from   w w w .  j  a  v a2  s  . co m
        reader.beginObject();
        currentHandledObjectName = reader.nextName();
        if (FormatJson.D.equals(currentHandledObjectName)) {
            reader.beginObject();
            readContent(reader);
            reader.endObject();
        }
        reader.endObject();
        reader.peek();
        reader.close();
    } catch (final IOException e) {
        throw new EntityProviderException(
                EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass().getSimpleName()), e);
    } catch (final IllegalStateException e) {
        throw new EntityProviderException(
                EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass().getSimpleName()), e);
    } catch (final EdmException e) {
        throw new EntityProviderException(
                EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass().getSimpleName()), e);
    }
    return new ServiceDocumentImpl().setEntitySetsInfo(entitySets);
}

From source file:com.sap.core.odata.core.ep.util.JsonUtils.java

License:Apache License

public static int startJson(final JsonReader reader) throws EntityProviderException {
    //The enclosing "d" and "results" are optional - so we cannot check for the presence
    //but we have to read over them in case they are present.
    JsonToken token;/* w  w w.ja  v  a 2s .  co m*/
    try {
        token = reader.peek();
        int openJsonObjects = 0;
        if (JsonToken.BEGIN_OBJECT == token) {
            reader.beginObject();
            openJsonObjects++;
            token = reader.peek();
            if (JsonToken.NAME == token) {
                String name = reader.nextName();
                if (!("d".equals(name) ^ "results".equals(name))) {
                    //TODO I18N
                    throw new EntityProviderException(EntityProviderException.COMMON,
                            name + " not expected, only d or results");
                }
            }

            token = reader.peek();
            if (JsonToken.BEGIN_OBJECT == token) {
                reader.beginObject();
                openJsonObjects++;
            } else if (JsonToken.BEGIN_ARRAY == token) {
                //TODO I18N
                throw new EntityProviderException(EntityProviderException.COMMON, "Array not expected");
            }
        }

        return openJsonObjects;
    } catch (IOException e) {
        //TODO I18N
        throw new EntityProviderException(EntityProviderException.COMMON, e);
    }
}

From source file:com.sap.core.odata.core.ep.util.JsonUtils.java

License:Apache License

public static boolean endJson(final JsonReader reader, final int openJsonObjects)
        throws IOException, EntityProviderException {

    for (int closedJsonObjects = 0; closedJsonObjects < openJsonObjects; closedJsonObjects++) {
        reader.endObject();/* ww w .  j  a  v a 2  s  .  co  m*/
    }
    return reader.peek() == JsonToken.END_DOCUMENT;
}

From source file:com.seleritycorp.common.base.coreservices.RawCoreServiceClient.java

License:Apache License

private void pushToWriter(JsonReader reader, JsonWriter writer) throws IOException {
    int count = 0;
    boolean isObject = reader.peek() == JsonToken.BEGIN_OBJECT;
    do {//from  w  w  w . j av a  2  s .  com
        JsonToken jsToken = reader.peek();
        switch (jsToken) {
        case BEGIN_ARRAY:
            reader.beginArray();
            writer.beginArray();
            if (!isObject) {
                count++;
            }
            break;
        case END_ARRAY:
            reader.endArray();
            writer.endArray();
            if (!isObject) {
                count--;
            }
            break;
        case BEGIN_OBJECT:
            reader.beginObject();
            writer.beginObject();
            if (isObject) {
                count++;
            }
            break;
        case END_OBJECT:
            reader.endObject();
            writer.endObject();
            if (isObject) {
                count--;
            }
            break;
        case NAME:
            String name = reader.nextName();
            writer.name(name);
            break;
        case STRING:
            String stringValue = reader.nextString();
            writer.value(stringValue);
            break;
        case NUMBER:
            String numValue = reader.nextString();
            writer.value(new BigDecimal(numValue));
            break;
        case BOOLEAN:
            boolean boolValue = reader.nextBoolean();
            writer.value(boolValue);
            break;
        case NULL:
            reader.nextNull();
            writer.nullValue();
            break;
        case END_DOCUMENT:
            return;
        default:
            return;
        }
    } while (count != 0);
}

From source file:com.sencko.basketball.stats.advanced.adapters.ActionAdapter.java

@Override
public Action read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {/*from   www.  ja  va 2s .com*/
        reader.nextNull();
        return null;
    }
    case STRING: {
        String stringValue = reader.nextString().trim();

        if (stringValue.length() == 0) {
            return null;
        } else {
            Matcher matcher = fullAction.matcher(stringValue);
            if (matcher.matches()) {
                Actor actor = new Actor();
                actor.setName(matcher.group(2));
                actor.setNumber(Integer.parseInt(matcher.group(1)));
                Action action = new Action();
                action.setActor(actor);
                String desc = matcher.group(3);
                action.setDescription(desc);
                return action;
            } else {
                Action action = new Action();
                action.setDescription(stringValue);
                return action;
            }
        }
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.sencko.basketball.stats.advanced.adapters.IntegerAdapter.java

@Override
public Integer read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {/*from   w w w  . ja va2 s.  com*/
        reader.nextNull();
        break;
    }
    case NUMBER: {
        return reader.nextInt();
    }
    case STRING: {
        String stringValue = reader.nextString().trim();
        if (stringValue.length() == 0) {
            return null;
        } else {
            Matcher matcher = pattern.matcher(stringValue);
            if (matcher.matches()) {
                Integer ret = Integer.parseInt(matcher.group(1)) * 60 + Integer.parseInt(matcher.group(2));
                //  System.out.println(stringValue +" \t" + ret);
                return ret;
            }
        }
        return Integer.parseInt(stringValue);
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.sencko.basketball.stats.advanced.adapters.StringAdapter.java

@Override
public String read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {/*from w  w w. j a  va 2 s .co  m*/
        reader.nextNull();
        return null;
    }
    case NUMBER: {
        return String.valueOf(reader.nextInt());
    }
    case STRING: {
        String stringValue = reader.nextString().trim();
        if (stringValue.length() == 0) {
            return null;
        } else {
            //    System.out.println(stringValue);
            return stringValue;
        }
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.singhinderjeet.gracenoteapi.json.UtcDateTypeAdapter.java

License:Apache License

@SuppressWarnings("deprecation")
@Override//from  w w w  .  j  av a2 s . c  o  m
public Date read(JsonReader in) throws IOException {
    switch (in.peek()) {
    case NULL:
        in.nextNull();
        return null;
    default:
        String date = in.nextString();
        // Instead of using iso8601Format.parse(value), we use Jackson's date parsing
        // This is because Android doesn't support XXX because it is JDK 1.6
        try {
            return parse(date, new ParsePosition(0));
        } catch (ParseException e) {
            try {
                return new Date(date);
            } catch (IllegalArgumentException iae) {
                try {
                    return dateFormat.get().parse(date);
                } catch (ParseException pe) {
                    throw new JsonParseException(pe);
                }
            }
        }
    }
}

From source file:com.smartling.api.sdk.util.DateTypeAdapter.java

License:Apache License

public Date read(JsonReader reader) throws IOException {
    if (reader.peek() == JsonToken.NULL) {
        reader.nextNull();//from  w w w.  j  a va  2  s .  com
        return null;
    }

    String value = reader.nextString();
    try {
        return DateFormatter.parse(value);
    } catch (ParseException e) {
        throw new IOException(e);
    }
}

From source file:com.solidfire.jsvcgen.serialization.ApiServerExceptionTypeAdapter.java

License:Open Source License

/**
 * {@inheritDoc}//from  w  w  w  . ja  v a  2  s  . c  om
 */
@Override
public ApiServerException read(JsonReader in) throws IOException {

    String name = null;
    String code = null;
    String message = null;

    in.beginObject();
    while (in.hasNext()) {
        if (in.peek() != JsonToken.NAME) {
            in.skipValue();
            continue;
        }

        switch (in.nextName()) {
        case "name":
            name = in.nextString();
            break;
        case "code":
            code = in.nextString();
            break;
        case "message":
            message = in.nextString();
            break;
        }
    }
    in.endObject();

    return new ApiServerException(name, code, message);
}