List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:org.jboss.tools.aerogear.hybrid.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void readPluginInfo(JsonReader reader, CordovaRegistryPluginInfo plugin) throws IOException { Assert.isNotNull(plugin);/*from w w w .jav a2 s. c om*/ reader.beginObject(); while (reader.hasNext()) { JsonToken token = reader.peek(); switch (token) { case NAME: { String name = reader.nextName(); if ("name".equals(name)) { plugin.setName(reader.nextString()); break; } if ("description".equals(name)) { plugin.setDescription(reader.nextString()); break; } if ("keywords".equals(name)) { parseKeywords(reader, plugin); break; } if ("maintainers".equals(name)) { parseMaintainers(reader, plugin); break; } if ("dist-tags".equals(name)) { parseLatestVersion(reader, plugin); break; } if ("versions".equals(name) && plugin instanceof CordovaRegistryPlugin) { parseDetailedVersions(reader, (CordovaRegistryPlugin) plugin); break; } if ("dist".equals(name) && plugin instanceof CordovaRegistryPluginVersion) { parseDistDetails(reader, (CordovaRegistryPluginVersion) plugin); break; } if ("license".equals(name) && plugin instanceof CordovaRegistryPluginVersion) { CordovaRegistryPluginVersion v = (CordovaRegistryPluginVersion) plugin; v.setLicense(reader.nextString()); break; } break; } default: reader.skipValue(); break; } } reader.endObject(); }
From source file:org.jboss.tools.aerogear.hybrid.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseDistDetails(JsonReader reader, CordovaRegistryPluginVersion plugin) throws IOException { reader.beginObject();/*from w ww.j a v a 2 s . c om*/ JsonToken token = reader.peek(); while (token != JsonToken.END_OBJECT) { switch (token) { case NAME: String name = reader.nextName(); if ("shasum".equals(name)) { plugin.setDistributionSHASum(reader.nextString()); break; } if ("tarball".equals(name)) { plugin.setDistributionTarball(reader.nextString()); break; } break; default: reader.skipValue(); break; } token = reader.peek(); } reader.endObject(); }
From source file:org.jboss.tools.aerogear.hybrid.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseDetailedVersions(JsonReader reader, CordovaRegistryPlugin plugin) throws IOException { reader.beginObject();//versions JsonToken token = reader.peek(); while (token != JsonToken.END_OBJECT) { switch (token) { case NAME: CordovaRegistryPluginVersion version = new CordovaRegistryPluginVersion(); version.setVersionNumber(reader.nextName()); readPluginInfo(reader, version); plugin.addVersion(version);//from ww w . j av a 2 s.com break; default: reader.skipValue(); break; } token = reader.peek(); } reader.endObject(); }
From source file:org.jboss.tools.aerogear.hybrid.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseLatestVersion(JsonReader reader, CordovaRegistryPluginInfo plugin) throws IOException { reader.beginObject();// w ww.j a v a 2 s . c om JsonToken token = reader.peek(); while (token != JsonToken.END_OBJECT) { switch (token) { case NAME: String tag = reader.nextName(); if ("latest".equals(tag)) { plugin.setLatestVersion(reader.nextString()); } break; default: reader.skipValue(); break; } token = reader.peek(); } reader.endObject(); }
From source file:org.jboss.tools.aerogear.hybrid.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseMaintainers(JsonReader reader, CordovaRegistryPluginInfo plugin) throws IOException { reader.beginArray();// w ww . ja v a 2 s . co m String name = null, email = null; JsonToken token = reader.peek(); while (token != JsonToken.END_ARRAY) { switch (token) { case BEGIN_OBJECT: reader.beginObject(); name = email = null; break; case END_OBJECT: reader.endObject(); plugin.addMaintainer(email, name); break; case NAME: String tagName = reader.nextName(); if ("name".equals(tagName)) { name = reader.nextString(); break; } if ("email".equals(tagName)) { email = reader.nextString(); break; } default: Assert.isTrue(false, "Unexpected token"); break; } token = reader.peek(); } reader.endArray(); }
From source file:org.jclouds.http.functions.ParseFirstJsonValueNamed.java
License:Apache License
@Override public T apply(HttpResponse arg0) { if (arg0.getPayload() == null) return nothing(); JsonReader reader = null; try {/*from w ww.j a v a 2 s .c o m*/ reader = new JsonReader(new InputStreamReader(arg0.getPayload().getInput())); // in case keys are not in quotes reader.setLenient(true); AtomicReference<String> name = Atomics.newReference(); JsonToken token = reader.peek(); for (; token != JsonToken.END_DOCUMENT && nnn(reader, token, name); token = skipAndPeek(token, reader)) { } if (name.get() == null) { logger.trace("did not object named %s in json from response %s", nameChoices, arg0); return nothing(); } else if (nameChoices.contains(name.get())) { return json.delegate().<T>fromJson(reader, type.getType()); } else { return nothing(); } } catch (IOException e) { throw new RuntimeException( String.format("error reading from stream, parsing object named %s from http response %s", nameChoices, arg0), e); } finally { Closeables2.closeQuietly(reader); arg0.getPayload().release(); } }
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();//from ww w. j a v a 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(); }
From source file:org.jclouds.json.internal.OptionalTypeAdapterFactory.java
License:Apache License
protected <E> TypeAdapter<Optional<E>> newOptionalAdapter(final TypeAdapter<E> elementAdapter) { return new TypeAdapter<Optional<E>>() { public void write(JsonWriter out, Optional<E> value) throws IOException { if (!value.isPresent()) { out.nullValue();/*from www . j a v a 2 s . c o m*/ return; } elementAdapter.write(out, value.get()); } public Optional<E> read(JsonReader in) throws IOException { Optional<E> result = Optional.absent(); if (in.peek() == JsonToken.NULL) { in.nextNull(); } else { E element = elementAdapter.read(in); if (element != null) { result = Optional.of(element); } } return result; } }; }
From source file:org.jspare.core.serializer.converter.OptionalTypeAdapter.java
License:Apache License
@Override public Optional<E> read(JsonReader in) throws IOException { final JsonToken peek = in.peek(); if (peek != JsonToken.NULL) { return Optional.ofNullable(adapter.read(in)); }//w ww . j a va2 s . c o m return Optional.empty(); }
From source file:org.kairosdb.core.http.rest.json.DataPointsParser.java
License:Apache License
public ValidationErrors parse() throws IOException, DatastoreException { long start = System.currentTimeMillis(); ValidationErrors validationErrors = new ValidationErrors(); JsonReader reader = new JsonReader(inputStream); try {//from w ww . j a v a 2s . c o m int metricCount = 0; if (reader.peek().equals(JsonToken.BEGIN_ARRAY)) { try { reader.beginArray(); while (reader.hasNext()) { NewMetric metric = parseMetric(reader); validateAndAddDataPoints(metric, validationErrors, metricCount); metricCount++; } } catch (EOFException e) { validationErrors.addErrorMessage("Invalid json. No content due to end of input."); } reader.endArray(); } else if (reader.peek().equals(JsonToken.BEGIN_OBJECT)) { NewMetric metric = parseMetric(reader); validateAndAddDataPoints(metric, validationErrors, 0); } else validationErrors.addErrorMessage("Invalid start of json."); } catch (EOFException e) { validationErrors.addErrorMessage("Invalid json. No content due to end of input."); } finally { reader.close(); } ingestTime = (int) (System.currentTimeMillis() - start); return validationErrors; }