List of usage examples for com.google.gson.stream JsonReader beginObject
public void beginObject() throws IOException
From source file:org.eclipse.smarthome.storage.json.PropertiesTypeAdapter.java
License:Open Source License
@Override public Map<String, Object> read(JsonReader in) throws IOException { // gson implementation code is modified when deserializing numbers JsonToken peek = in.peek();//from w w w . j av a2 s .c o m if (peek == JsonToken.NULL) { in.nextNull(); return null; } Map<String, Object> map = constructor.get(TOKEN).construct(); if (peek == JsonToken.BEGIN_ARRAY) { in.beginArray(); while (in.hasNext()) { in.beginArray(); // entry array String key = keyAdapter.read(in); // modification Object value = getValue(in); Object replaced = map.put(key, value); if (replaced != null) { throw new JsonSyntaxException("duplicate key: " + key); } in.endArray(); } in.endArray(); } else { in.beginObject(); while (in.hasNext()) { JsonReaderInternalAccess.INSTANCE.promoteNameToValue(in); String key = keyAdapter.read(in); // modification Object value = getValue(in); Object replaced = map.put(key, value); if (replaced != null) { throw new JsonSyntaxException("duplicate key: " + key); } } in.endObject(); } return map; }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
public List<CordovaRegistryPluginInfo> retrievePluginInfos(IProgressMonitor monitor) throws CoreException { if (monitor == null) monitor = new NullProgressMonitor(); monitor.beginTask("Retrieve plug-in registry catalog", 10); DefaultHttpClient theHttpClient = new DefaultHttpClient(); HttpUtil.setupProxy(theHttpClient);/*from ww w .j a v a 2 s .com*/ HttpClient client = new CachingHttpClient(theHttpClient, new HeapResourceFactory(), new BundleHttpCacheStorage(HybridCore.getContext().getBundle()), getCacheConfig()); JsonReader reader = null; try { if (monitor.isCanceled()) { return null; } String url = REGISTRY_URL + "-/_view/byKeyword?startkey=%5B%22ecosystem:cordova%22%5D&endkey=%5B%22ecosystem:cordova1%22%5D&group_level=3"; HttpGet get = new HttpGet(URI.create(url)); HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); InputStream stream = entity.getContent(); monitor.worked(7); reader = new JsonReader(new InputStreamReader(stream)); reader.beginObject();//start the Registry final ArrayList<CordovaRegistryPluginInfo> plugins = new ArrayList<CordovaRegistryPluginInfo>(); while (reader.hasNext()) { JsonToken token = reader.peek(); switch (token) { case BEGIN_ARRAY: reader.beginArray(); break; case BEGIN_OBJECT: plugins.add(parseCordovaRegistryPluginInfo(reader)); break; default: reader.skipValue(); break; } } return plugins; } catch (ClientProtocolException e) { throw new CoreException( new Status(IStatus.ERROR, HybridCore.PLUGIN_ID, "Can not retrieve plugin catalog", e)); } catch (IOException e) { throw new CoreException( new Status(IStatus.ERROR, HybridCore.PLUGIN_ID, "Can not retrieve plugin catalog", e)); } finally { if (reader != null) try { reader.close(); } catch (IOException e) { /*ignored*/ } monitor.done(); } }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private CordovaRegistryPluginInfo parseCordovaRegistryPluginInfo(JsonReader reader) throws IOException { CordovaRegistryPluginInfo info = new CordovaRegistryPluginInfo(); reader.beginObject(); reader.skipValue(); // name reader.beginArray();//from ww w.ja v a 2s . co m reader.nextString(); //ecosystem:cordova info.setName(safeReadStringValue(reader)); info.setDescription(safeReadStringValue(reader)); reader.endArray(); reader.nextName(); reader.nextInt(); reader.endObject(); return info; }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void readVersionInfo(JsonReader reader, RegistryPluginVersion version) throws IOException { Assert.isNotNull(version);/*from w w w . j a va 2 s . co m*/ reader.beginObject(); while (reader.hasNext()) { JsonToken token = reader.peek(); switch (token) { case NAME: String name = reader.nextName(); if ("dist".equals(name)) { parseDistDetails(reader, version); break; } break; default: reader.skipValue(); break; } } reader.endObject(); }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void readPluginInfo(JsonReader reader, CordovaRegistryPlugin plugin) throws IOException { Assert.isNotNull(plugin);/*from w w w .j av a 2 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)) { parseVersions(reader, plugin); break; } if ("license".equals(name)) { plugin.setLicense(reader.nextString()); break; } break; } default: reader.skipValue(); break; } } reader.endObject(); }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseDistDetails(JsonReader reader, RegistryPluginVersion plugin) throws IOException { reader.beginObject(); JsonToken token = reader.peek();//from w ww . ja va2 s .co m while (token != JsonToken.END_OBJECT) { switch (token) { case NAME: String name = reader.nextName(); if ("shasum".equals(name)) { plugin.setShasum(reader.nextString()); break; } if ("tarball".equals(name)) { plugin.setTarball(reader.nextString()); break; } break; default: reader.skipValue(); break; } token = reader.peek(); } reader.endObject(); }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseVersions(JsonReader reader, CordovaRegistryPlugin plugin) throws IOException { reader.beginObject();//versions JsonToken token = reader.peek();/*from w w w .j a v a2s .c o m*/ while (token != JsonToken.END_OBJECT) { switch (token) { case NAME: RegistryPluginVersion version = plugin.new RegistryPluginVersion(); version.setVersionNumber(reader.nextName()); readVersionInfo(reader, version); plugin.addVersion(version); break; default: reader.skipValue(); break; } token = reader.peek(); } reader.endObject(); }
From source file:org.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseLatestVersion(JsonReader reader, CordovaRegistryPlugin plugin) throws IOException { reader.beginObject(); JsonToken token = reader.peek();// w w w . j a v a 2 s . c om 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.eclipse.thym.core.plugin.registry.CordovaPluginRegistryManager.java
License:Open Source License
private void parseMaintainers(JsonReader reader, CordovaRegistryPlugin plugin) throws IOException { reader.beginArray();//from w w w . j a v a2 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.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 av a 2 s. c om*/ 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(); }