List of usage examples for com.google.gson.stream JsonReader peek
public JsonToken peek() throws IOException
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
public void parse(final LocallyAvailableExternalResource resource, final MutableModuleComponentResolveMetadata metadata) { resource.withContent(new Transformer<Void, InputStream>() { @Override//from w w w. ja v a2s .c om public Void transform(InputStream inputStream) { try { JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "utf-8")); reader.beginObject(); if (reader.peek() != JsonToken.NAME) { throw new RuntimeException("Module metadata should contain a 'formatVersion' value."); } String name = reader.nextName(); if (!name.equals("formatVersion")) { throw new RuntimeException(String.format( "The 'formatVersion' value should be the first value in a module metadata. Found '%s' instead.", name)); } if (reader.peek() != JsonToken.STRING) { throw new RuntimeException("The 'formatVersion' value should have a string value."); } String version = reader.nextString(); if (!version.equals(FORMAT_VERSION)) { throw new RuntimeException(String.format( "Unsupported format version '%s' specified in module metadata. This version of Gradle supports format version %s only.", version, FORMAT_VERSION)); } consumeTopLevelElements(reader, metadata); return null; } catch (Exception e) { throw new MetaDataParseException("module metadata", resource, e); } } }); }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private void consumeTopLevelElements(JsonReader reader, MutableModuleComponentResolveMetadata metadata) throws IOException { while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if ("variants".equals(name)) { consumeVariants(reader, metadata); } else if ("component".equals(name)) { consumeComponent(reader, metadata); } else {//from w w w .j a v a 2s . c o m consumeAny(reader); } } }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private void consumeComponent(JsonReader reader, MutableModuleComponentResolveMetadata metadata) throws IOException { reader.beginObject();/*from ww w. j av a 2 s . c o m*/ while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if ("attributes".equals(name)) { metadata.setAttributes(consumeAttributes(reader)); } else { consumeAny(reader); } } reader.endObject(); }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private void consumeVariants(JsonReader reader, MutableModuleComponentResolveMetadata metadata) throws IOException { reader.beginArray();//from www . j a va 2 s . c om while (reader.peek() != JsonToken.END_ARRAY) { consumeVariant(reader, metadata); } reader.endArray(); }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private void consumeVariant(JsonReader reader, MutableModuleComponentResolveMetadata metadata) throws IOException { reader.beginObject();//from w w w. ja va 2 s . c o m String variantName = null; ImmutableAttributes attributes = ImmutableAttributes.EMPTY; List<ModuleFile> files = Collections.emptyList(); List<ModuleDependency> dependencies = Collections.emptyList(); List<ModuleDependencyConstraint> dependencyConstraints = Collections.emptyList(); List<VariantCapability> capabilities = Collections.emptyList(); while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if (name.equals("name")) { variantName = reader.nextString(); } else if (name.equals("attributes")) { attributes = consumeAttributes(reader); } else if (name.equals("files")) { files = consumeFiles(reader); } else if (name.equals("dependencies")) { dependencies = consumeDependencies(reader); } else if (name.equals("dependencyConstraints")) { dependencyConstraints = consumeDependencyConstraints(reader); } else if (name.equals("capabilities")) { capabilities = consumeCapabilities(reader); } else if (name.equals("available-at")) { // For now just collect this as another dependency // TODO - collect this information and merge the metadata from the other module dependencies = consumeVariantLocation(reader); } else { consumeAny(reader); } } reader.endObject(); MutableComponentVariant variant = metadata.addVariant(variantName, attributes); for (ModuleFile file : files) { variant.addFile(file.name, file.uri); } for (ModuleDependency dependency : dependencies) { variant.addDependency(dependency.group, dependency.module, dependency.versionConstraint, dependency.excludes, dependency.reason, dependency.attributes); } for (ModuleDependencyConstraint dependencyConstraint : dependencyConstraints) { variant.addDependencyConstraint(dependencyConstraint.group, dependencyConstraint.module, dependencyConstraint.versionConstraint, dependencyConstraint.reason, dependencyConstraint.attributes); } for (VariantCapability capability : capabilities) { variant.addCapability(capability.group, capability.name, capability.version); } }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private List<ModuleDependency> consumeVariantLocation(JsonReader reader) throws IOException { String group = null;//from w ww. j a v a 2 s . co m String module = null; String version = null; reader.beginObject(); while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if (name.equals("group")) { group = reader.nextString(); } else if (name.equals("module")) { module = reader.nextString(); } else if (name.equals("version")) { version = reader.nextString(); } else { consumeAny(reader); } } reader.endObject(); return ImmutableList.of(new ModuleDependency(group, module, new DefaultImmutableVersionConstraint(version), ImmutableList.<ExcludeMetadata>of(), null, ImmutableAttributes.EMPTY)); }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private List<ModuleDependency> consumeDependencies(JsonReader reader) throws IOException { List<ModuleDependency> dependencies = new ArrayList<ModuleDependency>(); reader.beginArray();//from w ww .j av a 2 s.com while (reader.peek() != END_ARRAY) { reader.beginObject(); String group = null; String module = null; String reason = null; ImmutableAttributes attributes = ImmutableAttributes.EMPTY; VersionConstraint version = DefaultImmutableVersionConstraint.of(); ImmutableList<ExcludeMetadata> excludes = ImmutableList.of(); while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if (name.equals("group")) { group = reader.nextString(); } else if (name.equals("module")) { module = reader.nextString(); } else if (name.equals("version")) { version = consumeVersion(reader); } else if (name.equals("excludes")) { excludes = consumeExcludes(reader); } else if (name.equals("reason")) { reason = reader.nextString(); } else if (name.equals("attributes")) { attributes = consumeAttributes(reader); } else { consumeAny(reader); } } dependencies.add(new ModuleDependency(group, module, version, excludes, reason, attributes)); reader.endObject(); } reader.endArray(); return dependencies; }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private List<VariantCapability> consumeCapabilities(JsonReader reader) throws IOException { ImmutableList.Builder<VariantCapability> capabilities = ImmutableList.builder(); reader.beginArray();/*from w ww. j a v a 2s. c om*/ while (reader.peek() != END_ARRAY) { reader.beginObject(); String group = null; String name = null; String version = null; while (reader.peek() != END_OBJECT) { String val = reader.nextName(); if (val.equals("group")) { group = reader.nextString(); } else if (val.equals("name")) { name = reader.nextString(); } else if (val.equals("version")) { version = reader.nextString(); } } capabilities.add(new VariantCapability(group, name, version)); reader.endObject(); } reader.endArray(); return capabilities.build(); }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private List<ModuleDependencyConstraint> consumeDependencyConstraints(JsonReader reader) throws IOException { List<ModuleDependencyConstraint> dependencies = new ArrayList<ModuleDependencyConstraint>(); reader.beginArray();//from w w w . j a v a2 s .c o m while (reader.peek() != END_ARRAY) { reader.beginObject(); String group = null; String module = null; String reason = null; VersionConstraint version = null; ImmutableAttributes attributes = ImmutableAttributes.EMPTY; while (reader.peek() != END_OBJECT) { String name = reader.nextName(); if (name.equals("group")) { group = reader.nextString(); } else if (name.equals("module")) { module = reader.nextString(); } else if (name.equals("version")) { version = consumeVersion(reader); } else if (name.equals("reason")) { reason = reader.nextString(); } else if (name.equals("attributes")) { attributes = consumeAttributes(reader); } else { consumeAny(reader); } } dependencies.add(new ModuleDependencyConstraint(group, module, version, reason, attributes)); reader.endObject(); } reader.endArray(); return dependencies; }
From source file:org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.ModuleMetadataParser.java
License:Apache License
private ImmutableVersionConstraint consumeVersion(JsonReader reader) throws IOException { reader.beginObject();/* w ww . j a va2s . co m*/ String requiredVersion = ""; String preferredVersion = ""; String strictVersion = ""; List<String> rejects = Lists.newArrayList(); while (reader.peek() != END_OBJECT) { // At this stage, 'requires' implies 'prefers', 'strictly' implies 'requires'. String cst = reader.nextName(); if ("prefers".equals(cst)) { preferredVersion = reader.nextString(); } else if ("requires".equals(cst)) { requiredVersion = reader.nextString(); preferredVersion = requiredVersion; } else if ("strictly".equals(cst)) { strictVersion = reader.nextString(); requiredVersion = strictVersion; preferredVersion = strictVersion; } else if ("rejects".equals(cst)) { reader.beginArray(); while (reader.peek() != END_ARRAY) { rejects.add(reader.nextString()); } reader.endArray(); } } reader.endObject(); return DefaultImmutableVersionConstraint.of(preferredVersion, requiredVersion, strictVersion, rejects); }