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.squareup.wire.ByteStringTypeAdapter.java

License:Apache License

@Override
public ByteString read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();// www  .j  av a2 s .  com
        return null;
    }
    return ByteString.decodeBase64(in.nextString());
}

From source file:com.squareup.wire.MessageTypeAdapter.java

License:Apache License

@SuppressWarnings("unchecked")
@Override/*ww  w  .  ja  va  2  s.c o  m*/
public M read(JsonReader in) throws IOException {
    if (in.peek() == JsonToken.NULL) {
        in.nextNull();
        return null;
    }

    MessageAdapter<M> messageAdapter = wire.messageAdapter(type);
    Message.Builder<M> builder = messageAdapter.newBuilder();
    in.beginObject();

    while (in.peek() == JsonToken.NAME) {
        String name = in.nextName();
        MessageAdapter.FieldInfo fieldInfo = messageAdapter.getField(name);
        if (fieldInfo == null) {
            Extension<?, ?> extension = messageAdapter.getExtension(name);
            if (extension == null) {
                parseUnknownField(in, builder, Integer.parseInt(name));
            } else {
                Type valueType = getType(extension);
                Object value = parseValue(extension.getLabel(), valueType, parse(in));
                ((ExtendableMessage.ExtendableBuilder) builder).setExtension(extension, value);
            }
        } else {
            Type valueType = getType(fieldInfo);
            Object value = parseValue(fieldInfo.label, valueType, parse(in));
            // Use the builder setter method to ensure proper 'oneof' behavior.
            messageAdapter.setBuilderMethod(builder, fieldInfo, value);
        }
    }

    in.endObject();
    return builder.build();
}

From source file:com.squareup.wire.MessageTypeAdapter.java

License:Apache License

private void parseUnknownField(JsonReader in, Message.Builder<M> builder, int tag) throws IOException {
    in.beginArray();/*from   w w  w . java 2 s  . c  o  m*/
    UnknownFieldType type = UnknownFieldType.of(in.nextString());
    while (in.peek() != JsonToken.END_ARRAY) {
        switch (type) {
        case VARINT:
            builder.addVarint(tag, in.nextInt());
            break;
        case FIXED32:
            builder.addFixed32(tag, in.nextInt());
            break;
        case FIXED64:
            builder.addFixed64(tag, in.nextInt());
            break;
        case LENGTH_DELIMITED:
            builder.addLengthDelimited(tag, ByteString.decodeBase64(in.nextString()));
            break;
        default:
            throw new AssertionError("Unknown field type " + type);
        }
    }
    in.endArray();
}

From source file:com.vaushell.treetasker.net.GsonDateAdapter.java

License:Open Source License

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

    return new Date(reader.nextLong());
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static <T> ArrayList<T> parseArray(Gson gson, JsonReader reader, Class<T> clazz) throws IOException {
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_ARRAY) {
        reader.skipValue();//from ww w .java  2s .  c  o m
        return null;
    }
    reader.beginArray();

    ArrayList<T> list = Stag.readListFromAdapter(gson, clazz, reader);

    reader.endArray();
    return list;
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static Channel parseChannel(Gson gson, JsonReader reader) throws IOException {
    if (reader.peek() == com.google.gson.stream.JsonToken.NULL) {
        reader.nextNull();/*  w  w w.  j av  a2  s  .  com*/
        return null;
    }
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) {
        reader.skipValue();
        return null;
    }
    reader.beginObject();

    com.vimeo.networking.model.Channel object = new com.vimeo.networking.model.Channel();
    while (reader.hasNext()) {
        String name = reader.nextName();
        com.google.gson.stream.JsonToken jsonToken = reader.peek();
        if (jsonToken == com.google.gson.stream.JsonToken.NULL) {
            reader.skipValue();
            continue;
        }
        switch (name) {
        case "modified_time":
            try {
                object.modifiedTime = Stag.readFromAdapter(gson, java.util.Date.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.modifiedTime JSON!", exception);
            }
            break;
        case "uri":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.uri = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "metadata":
            try {
                object.metadata = ParseUtils.parseMetadata(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.metadata JSON!", exception);
            }
            break;
        case "created_time":
            try {
                object.createdTime = Stag.readFromAdapter(gson, java.util.Date.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.createdTime JSON!", exception);
            }
            break;
        case "user":
            try {
                object.user = ParseUtils.parseUser(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.user JSON!", exception);
            }
            break;
        case "header":
            try {
                object.header = ParseUtils.parsePictureCollection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.header JSON!", exception);
            }
            break;
        case "link":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.link = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "privacy":
            try {
                object.privacy = ParseUtils.parsePrivacy(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.privacy JSON!", exception);
            }
            break;
        case "name":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.name = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "pictures":
            try {
                object.pictures = ParseUtils.parsePictureCollection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing Channel.pictures JSON!", exception);
            }
            break;
        case "description":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.description = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        default:
            reader.skipValue();
            break;
        }
    }

    reader.endObject();
    return object;
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static StatsCollection parseStatsCollection(Gson gson, JsonReader reader) throws IOException {
    if (reader.peek() == com.google.gson.stream.JsonToken.NULL) {
        reader.nextNull();/*from w  w  w .  j  ava2s .c  o m*/
        return null;
    }
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) {
        reader.skipValue();
        return null;
    }
    reader.beginObject();

    com.vimeo.networking.model.StatsCollection object = new com.vimeo.networking.model.StatsCollection();
    while (reader.hasNext()) {
        String name = reader.nextName();
        com.google.gson.stream.JsonToken jsonToken = reader.peek();
        if (jsonToken == com.google.gson.stream.JsonToken.NULL) {
            reader.skipValue();
            continue;
        }
        switch (name) {
        case "plays":
            try {
                object.plays = Stag.readFromAdapter(gson, java.lang.Integer.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing StatsCollection.plays JSON!", exception);
            }
            break;
        default:
            reader.skipValue();
            break;
        }
    }

    reader.endObject();
    return object;
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static CategoryList parseCategoryList(Gson gson, JsonReader reader) throws IOException {
    if (reader.peek() == com.google.gson.stream.JsonToken.NULL) {
        reader.nextNull();/*from  w ww  .  java  2 s.  c o  m*/
        return null;
    }
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) {
        reader.skipValue();
        return null;
    }
    reader.beginObject();

    com.vimeo.networking.model.CategoryList object = new com.vimeo.networking.model.CategoryList();
    while (reader.hasNext()) {
        String name = reader.nextName();
        com.google.gson.stream.JsonToken jsonToken = reader.peek();
        if (jsonToken == com.google.gson.stream.JsonToken.NULL) {
            reader.skipValue();
            continue;
        }
        switch (name) {
        case "total":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.total = reader.nextInt();
            } else {
                reader.skipValue();
            }
            break;
        case "per_page":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.perPage = reader.nextInt();
            } else {
                reader.skipValue();
            }
            break;
        case "page":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.page = reader.nextInt();
            } else {
                reader.skipValue();
            }
            break;
        case "data":
            if (jsonToken == com.google.gson.stream.JsonToken.BEGIN_ARRAY) {
                object.data = ParseUtils.parseArray(gson, reader, com.vimeo.networking.model.Category.class);
            } else {
                reader.skipValue();
            }
            break;
        case "paging":
            try {
                object.paging = ParseUtils.parsePaging(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing CategoryList.paging JSON!", exception);
            }
            break;
        default:
            reader.skipValue();
            break;
        }
    }

    reader.endObject();
    return object;
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static ConnectionCollection parseConnectionCollection(Gson gson, JsonReader reader) throws IOException {
    if (reader.peek() == com.google.gson.stream.JsonToken.NULL) {
        reader.nextNull();/*from  w w w  .  j  a  va 2s. c  o m*/
        return null;
    }
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) {
        reader.skipValue();
        return null;
    }
    reader.beginObject();

    com.vimeo.networking.model.ConnectionCollection object = new com.vimeo.networking.model.ConnectionCollection();
    while (reader.hasNext()) {
        String name = reader.nextName();
        com.google.gson.stream.JsonToken jsonToken = reader.peek();
        if (jsonToken == com.google.gson.stream.JsonToken.NULL) {
            reader.skipValue();
            continue;
        }
        switch (name) {
        case "appearances":
            try {
                object.appearances = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.appearances JSON!", exception);
            }
            break;
        case "trailer":
            try {
                object.trailer = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.trailer JSON!", exception);
            }
            break;
        case "ondemand":
            try {
                object.ondemand = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.ondemand JSON!", exception);
            }
            break;
        case "videos":
            try {
                object.videos = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.videos JSON!", exception);
            }
            break;
        case "feed":
            try {
                object.feed = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.feed JSON!", exception);
            }
            break;
        case "credits":
            try {
                object.credits = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.credits JSON!", exception);
            }
            break;
        case "shared":
            try {
                object.shared = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.shared JSON!", exception);
            }
            break;
        case "categories":
            try {
                object.categories = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.categories JSON!", exception);
            }
            break;
        case "recommendations":
            try {
                object.recommendations = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.recommendations JSON!", exception);
            }
            break;
        case "recommended_users":
            try {
                object.recommendedUsers = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.recommendedUsers JSON!", exception);
            }
            break;
        case "replies":
            try {
                object.replies = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.replies JSON!", exception);
            }
            break;
        case "comments":
            try {
                object.comments = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.comments JSON!", exception);
            }
            break;
        case "groups":
            try {
                object.groups = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.groups JSON!", exception);
            }
            break;
        case "watchlater":
            try {
                object.watchlater = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.watchlater JSON!", exception);
            }
            break;
        case "texttracks":
            try {
                object.texttracks = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.texttracks JSON!", exception);
            }
            break;
        case "likes":
            try {
                object.likes = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.likes JSON!", exception);
            }
            break;
        case "activities":
            try {
                object.activities = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.activities JSON!", exception);
            }
            break;
        case "moderated_channels":
            try {
                object.moderatedChannels = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.moderatedChannels JSON!", exception);
            }
            break;
        case "related":
            try {
                object.related = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.related JSON!", exception);
            }
            break;
        case "users":
            try {
                object.users = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.users JSON!", exception);
            }
            break;
        case "following":
            try {
                object.following = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.following JSON!", exception);
            }
            break;
        case "pictures":
            try {
                object.pictures = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.pictures JSON!", exception);
            }
            break;
        case "followers":
            try {
                object.followers = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.followers JSON!", exception);
            }
            break;
        case "albums":
            try {
                object.albums = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.albums JSON!", exception);
            }
            break;
        case "channels":
            try {
                object.channels = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.channels JSON!", exception);
            }
            break;
        case "playback":
            try {
                object.playbackFailureReason = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.playbackFailureReason JSON!",
                        exception);
            }
            break;
        case "recommended_channels":
            try {
                object.recommendedChannels = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.recommendedChannels JSON!",
                        exception);
            }
            break;
        case "portfolios":
            try {
                object.portfolios = ParseUtils.parseConnection(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing ConnectionCollection.portfolios JSON!", exception);
            }
            break;
        default:
            reader.skipValue();
            break;
        }
    }

    reader.endObject();
    return object;
}

From source file:com.vimeo.stag.generated.ParseUtils.java

public static VideoFile parseVideoFile(Gson gson, JsonReader reader) throws IOException {
    if (reader.peek() == com.google.gson.stream.JsonToken.NULL) {
        reader.nextNull();/*from   w  w  w. j a  va  2s  . c  om*/
        return null;
    }
    if (reader.peek() != com.google.gson.stream.JsonToken.BEGIN_OBJECT) {
        reader.skipValue();
        return null;
    }
    reader.beginObject();

    com.vimeo.networking.model.VideoFile object = new com.vimeo.networking.model.VideoFile();
    while (reader.hasNext()) {
        String name = reader.nextName();
        com.google.gson.stream.JsonToken jsonToken = reader.peek();
        if (jsonToken == com.google.gson.stream.JsonToken.NULL) {
            reader.skipValue();
            continue;
        }
        switch (name) {
        case "token":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.token = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "size":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.size = reader.nextLong();
            } else {
                reader.skipValue();
            }
            break;
        case "link_expiration_time":
            try {
                object.linkExpirationTime = Stag.readFromAdapter(gson, java.util.Date.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.linkExpirationTime JSON!", exception);
            }
            break;
        case "fps":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.fps = reader.nextDouble();
            } else {
                reader.skipValue();
            }
            break;
        case "height":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.height = reader.nextInt();
            } else {
                reader.skipValue();
            }
            break;
        case "quality":
            try {
                object.quality = Stag.readFromAdapter(gson,
                        com.vimeo.networking.model.VideoFile.VideoQuality.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.quality JSON!", exception);
            }
            break;
        case "link":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.link = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "license_link":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.licenseLink = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "width":
            if (jsonToken == com.google.gson.stream.JsonToken.NUMBER) {
                object.width = reader.nextInt();
            } else {
                reader.skipValue();
            }
            break;
        case "md5":
            if (jsonToken == com.google.gson.stream.JsonToken.STRING) {
                object.md5 = reader.nextString();
            } else {
                reader.skipValue();
            }
            break;
        case "log":
            try {
                object.log = ParseUtils.parseVideoLog(gson, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.log JSON!", exception);
            }
            break;
        case "created_time":
            try {
                object.createdTime = Stag.readFromAdapter(gson, java.util.Date.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.createdTime JSON!", exception);
            }
            break;
        case "type":
            try {
                object.type = Stag.readFromAdapter(gson, com.vimeo.networking.model.VideoFile.MimeType.class,
                        reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.type JSON!", exception);
            }
            break;
        case "expires":
            try {
                object.expires = Stag.readFromAdapter(gson, java.util.Date.class, reader);
            } catch (Exception exception) {
                throw new IOException("Error parsing VideoFile.expires JSON!", exception);
            }
            break;
        default:
            reader.skipValue();
            break;
        }
    }

    reader.endObject();
    return object;
}