diff options
author | 2016-05-09 19:22:27 +0000 | |
---|---|---|
committer | 2016-05-10 07:57:21 +0000 | |
commit | 5a2dd7a2099cfa5a50b07d2b407e478043727472 (patch) | |
tree | 3e4cd3341cb359151ed32132c9443a62cd80e49e /src | |
parent | b64150de45415f3871e1de0a2c182636567b9225 (diff) |
Renaming nonOverwriting to combining resources.
--
MOS_MIGRATED_REVID=121863653
Diffstat (limited to 'src')
7 files changed, 50 insertions, 47 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java index 3b39205ad8..c9a11bbe36 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java @@ -340,7 +340,7 @@ public class AndroidDataMerger { ParsedAndroidData.of( ImmutableSet.<MergeConflict>of(), ImmutableMap.copyOf(overwritableDeps), - direct.mergeNonOverwritable(transitive), + direct.mergeCombining(transitive), ImmutableMap.copyOf(assets))); } catch (IOException e) { throw new MergingException(e); diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataSerializer.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataSerializer.java index 056909e295..89120c3f24 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataSerializer.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataSerializer.java @@ -149,7 +149,7 @@ public class AndroidDataSerializer { resourceName, FullyQualifiedName.isOverwritable(resourceName) ? consumers.overwritingConsumer - : consumers.nonOverwritingConsumer); + : consumers.combiningConsumer); } else { keys.put(RelativeAssetPath.fromProto(protoKey, currentFileSystem), consumers.assetConsumer); } diff --git a/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java b/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java index 86223b2519..a29c589743 100644 --- a/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java +++ b/src/tools/android/java/com/google/devtools/build/android/DataResourceXml.java @@ -56,7 +56,7 @@ import javax.xml.stream.events.StartElement; public class DataResourceXml implements DataResource { /** - * Parses xml resources from a Path to the provided overwritable and nonOverwritable collections. + * Parses xml resources from a Path to the provided overwritable and combining collections. * * This method is a bit tricky in the service of performance -- creating several collections and * merging them was more expensive than writing to mutable collections directly. @@ -65,7 +65,7 @@ public class DataResourceXml implements DataResource { * @param path The path to the xml resource to be parsed. * @param fqnFactory Used to create {@link FullyQualifiedName}s from the resource names. * @param overwritingConsumer A consumer for overwritable {@link DataResourceXml}s. - * @param nonOverwritingConsumer A consumer for nonoverwritable {@link DataResourceXml}s. + * @param combiningConsumer A consumer for combining {@link DataResourceXml}s. * @throws XMLStreamException Thrown with the resource format is invalid. * @throws FactoryConfigurationError Thrown with the {@link XMLInputFactory} is misconfigured. * @throws IOException Thrown when there is an error reading a file. @@ -75,7 +75,7 @@ public class DataResourceXml implements DataResource { Path path, Factory fqnFactory, KeyValueConsumer<DataKey, DataResource> overwritingConsumer, - KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer) + KeyValueConsumer<DataKey, DataResource> combiningConsumer) throws XMLStreamException, FactoryConfigurationError, IOException { XMLEventReader eventReader = xmlInputFactory.createXMLEventReader(Files.newBufferedReader(path, StandardCharsets.UTF_8)); @@ -94,14 +94,14 @@ public class DataResourceXml implements DataResource { path + " contains an unrecognized resource type:" + start, start.getLocation()); } if (resourceType == DECLARE_STYLEABLE) { - // Styleables are special, as they produce multiple overwrite and non-overwrite values, + // Styleables are special, as they produce multiple overwrite and combining values, // so we let the value handle the assignments. XmlResourceValues.parseDeclareStyleable( - fqnFactory, path, overwritingConsumer, nonOverwritingConsumer, eventReader, start); + fqnFactory, path, overwritingConsumer, combiningConsumer, eventReader, start); } else { - // Of simple resources, only IDs are nonOverwriting. + // Of simple resources, only IDs are combining. KeyValueConsumer<DataKey, DataResource> consumer = - resourceType == ID ? nonOverwritingConsumer : overwritingConsumer; + resourceType == ID ? combiningConsumer : overwritingConsumer; FullyQualifiedName key = fqnFactory.create(resourceType, XmlResourceValues.getElementName(start)); consumer.consume( diff --git a/src/tools/android/java/com/google/devtools/build/android/KeyValueConsumers.java b/src/tools/android/java/com/google/devtools/build/android/KeyValueConsumers.java index 86789b27b4..63b0a3a036 100644 --- a/src/tools/android/java/com/google/devtools/build/android/KeyValueConsumers.java +++ b/src/tools/android/java/com/google/devtools/build/android/KeyValueConsumers.java @@ -23,21 +23,21 @@ import com.google.devtools.build.android.ParsedAndroidData.KeyValueConsumer; class KeyValueConsumers { static KeyValueConsumers of( KeyValueConsumer<DataKey, DataResource> overwritingConsumer, - KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer, + KeyValueConsumer<DataKey, DataResource> combiningConsumer, KeyValueConsumer<DataKey, DataAsset> assetConsumer) { - return new KeyValueConsumers(overwritingConsumer, nonOverwritingConsumer, assetConsumer); + return new KeyValueConsumers(overwritingConsumer, combiningConsumer, assetConsumer); } final KeyValueConsumer<DataKey, DataResource> overwritingConsumer; - final KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer; + final KeyValueConsumer<DataKey, DataResource> combiningConsumer; final KeyValueConsumer<DataKey, DataAsset> assetConsumer; private KeyValueConsumers( KeyValueConsumer<DataKey, DataResource> overwritingConsumer, - KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer, + KeyValueConsumer<DataKey, DataResource> combiningConsumer, KeyValueConsumer<DataKey, DataAsset> assetConsumer) { this.overwritingConsumer = overwritingConsumer; - this.nonOverwritingConsumer = nonOverwritingConsumer; + this.combiningConsumer = combiningConsumer; this.assetConsumer = assetConsumer; } } diff --git a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java index 06290876af..6730545908 100644 --- a/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java +++ b/src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java @@ -18,6 +18,7 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.google.devtools.build.android.xml.StyleableXmlResourceValue; import com.android.ide.common.res2.MergingException; @@ -54,28 +55,28 @@ public class ParsedAndroidData { static class Builder { private final Map<DataKey, DataResource> overwritingResources; - private final Map<DataKey, DataResource> nonOverwritingResources; + private final Map<DataKey, DataResource> combiningResources; private final Map<DataKey, DataAsset> assets; private final Set<MergeConflict> conflicts; private final List<Exception> errors = new ArrayList<>(); public Builder( Map<DataKey, DataResource> overwritingResources, - Map<DataKey, DataResource> nonOverwritingResources, + Map<DataKey, DataResource> combiningResources, Map<DataKey, DataAsset> assets, Set<MergeConflict> conflicts) { this.overwritingResources = overwritingResources; - this.nonOverwritingResources = nonOverwritingResources; + this.combiningResources = combiningResources; this.assets = assets; this.conflicts = conflicts; } static Builder newBuilder() { final Map<DataKey, DataResource> overwritingResources = new LinkedHashMap<>(); - final Map<DataKey, DataResource> nonOverwritingResources = new LinkedHashMap<>(); + final Map<DataKey, DataResource> combiningResources = new LinkedHashMap<>(); final Map<DataKey, DataAsset> assets = new LinkedHashMap<>(); final Set<MergeConflict> conflicts = new LinkedHashSet<>(); - return new Builder(overwritingResources, nonOverwritingResources, assets, conflicts); + return new Builder(overwritingResources, combiningResources, assets, conflicts); } private void checkForErrors() throws MergingException { @@ -93,14 +94,14 @@ public class ParsedAndroidData { return ParsedAndroidData.of( ImmutableSet.copyOf(conflicts), ImmutableMap.copyOf(overwritingResources), - ImmutableMap.copyOf(nonOverwritingResources), + ImmutableMap.copyOf(combiningResources), ImmutableMap.copyOf(assets)); } ResourceFileVisitor resourceVisitor() { return new ResourceFileVisitor( new OverwritableConsumer<>(overwritingResources, conflicts), - new CombiningConsumer(nonOverwritingResources), + new CombiningConsumer(combiningResources), errors); } @@ -112,7 +113,7 @@ public class ParsedAndroidData { public KeyValueConsumers consumers() { return KeyValueConsumers.of( new OverwritableConsumer<>(overwritingResources, conflicts), - new CombiningConsumer(nonOverwritingResources), + new CombiningConsumer(combiningResources), new OverwritableConsumer<>(assets, conflicts)); } } @@ -223,7 +224,7 @@ public class ParsedAndroidData { */ private static class ResourceFileVisitor extends SimpleFileVisitor<Path> { private final KeyValueConsumer<DataKey, DataResource> overwritingConsumer; - private final KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer; + private final KeyValueConsumer<DataKey, DataResource> combiningResources; private final List<Exception> errors; private boolean inValuesSubtree; private FullyQualifiedName.Factory fqnFactory; @@ -231,10 +232,10 @@ public class ParsedAndroidData { ResourceFileVisitor( KeyValueConsumer<DataKey, DataResource> overwritingConsumer, - KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer, + KeyValueConsumer<DataKey, DataResource> combiningResources, List<Exception> errors) { this.overwritingConsumer = overwritingConsumer; - this.nonOverwritingConsumer = nonOverwritingConsumer; + this.combiningResources = combiningResources; this.errors = errors; } @@ -270,7 +271,7 @@ public class ParsedAndroidData { if (!Files.isDirectory(path) && !path.getFileName().toString().startsWith(".")) { if (inValuesSubtree) { DataResourceXml.parse( - xmlInputFactory, path, fqnFactory, overwritingConsumer, nonOverwritingConsumer); + xmlInputFactory, path, fqnFactory, overwritingConsumer, combiningResources); } else { String rawFqn = deriveRawFullyQualifiedName(path); FullyQualifiedName key = fqnFactory.parse(rawFqn); @@ -284,13 +285,13 @@ public class ParsedAndroidData { } } - /** Creates ParsedAndroidData of conflicts, assets overwriting and nonOverwriting resources. */ + /** Creates ParsedAndroidData of conflicts, assets overwriting and combining resources. */ public static ParsedAndroidData of( ImmutableSet<MergeConflict> conflicts, ImmutableMap<DataKey, DataResource> overwritingResources, - ImmutableMap<DataKey, DataResource> nonOverwritingResources, + ImmutableMap<DataKey, DataResource> combiningResources, ImmutableMap<DataKey, DataAsset> assets) { - return new ParsedAndroidData(conflicts, overwritingResources, nonOverwritingResources, assets); + return new ParsedAndroidData(conflicts, overwritingResources, combiningResources, assets); } /** @@ -334,17 +335,17 @@ public class ParsedAndroidData { private final ImmutableSet<MergeConflict> conflicts; private final ImmutableMap<DataKey, DataResource> overwritingResources; - private final ImmutableMap<DataKey, DataResource> nonOverwritingResources; + private final ImmutableMap<DataKey, DataResource> combiningResources; private final ImmutableMap<DataKey, DataAsset> assets; private ParsedAndroidData( ImmutableSet<MergeConflict> conflicts, ImmutableMap<DataKey, DataResource> overwritingResources, - ImmutableMap<DataKey, DataResource> nonOverwritingResources, + ImmutableMap<DataKey, DataResource> combiningResources, ImmutableMap<DataKey, DataAsset> assets) { this.conflicts = conflicts; this.overwritingResources = overwritingResources; - this.nonOverwritingResources = nonOverwritingResources; + this.combiningResources = combiningResources; this.assets = assets; } @@ -352,7 +353,7 @@ public class ParsedAndroidData { public String toString() { return MoreObjects.toStringHelper(this) .add("overwritingResources", overwritingResources) - .add("nonOverwritingResources", nonOverwritingResources) + .add("combiningResources", combiningResources) .add("assets", assets) .toString(); } @@ -367,14 +368,14 @@ public class ParsedAndroidData { } ParsedAndroidData that = (ParsedAndroidData) other; return Objects.equals(overwritingResources, that.overwritingResources) - && Objects.equals(nonOverwritingResources, that.nonOverwritingResources) + && Objects.equals(combiningResources, that.combiningResources) && Objects.equals(conflicts, that.conflicts) && Objects.equals(assets, that.assets); } @Override public int hashCode() { - return Objects.hash(conflicts, overwritingResources, nonOverwritingResources, assets); + return Objects.hash(conflicts, overwritingResources, combiningResources, assets); } /** @@ -393,18 +394,20 @@ public class ParsedAndroidData { } /** - * Returns a list of resources that would not overwrite other values when defined. + * Returns a list of resources are combined with other values that have the same key. * * <p> * Example: * - * A id resource (id.Foo) could be redefined at id.Foo with no adverse effects. + * A id resource (id.Foo) combined id.Foo with no adverse effects, whereas two stylable.Bar + * resources would be combined, resulting in a Styleable containing a union of the attributes. + * See {@link StyleableXmlResourceValue} for more information. * - * @return A map of key -> non-overwriting resources. + * @return A map of key -> combing resources. */ @VisibleForTesting - Map<DataKey, DataResource> getNonOverwritingResources() { - return nonOverwritingResources; + Map<DataKey, DataResource> getCombiningResources() { + return combiningResources; } /** @@ -432,7 +435,7 @@ public class ParsedAndroidData { } Iterable<Entry<DataKey, DataResource>> iterateDataResourceEntries() { - return Iterables.concat(overwritingResources.entrySet(), nonOverwritingResources.entrySet()); + return Iterables.concat(overwritingResources.entrySet(), combiningResources.entrySet()); } boolean containsAsset(DataKey name) { @@ -451,12 +454,12 @@ public class ParsedAndroidData { return MergeConflict.between(key, assets.get(key), value); } - ImmutableMap<DataKey, DataResource> mergeNonOverwritable(ParsedAndroidData other) { + ImmutableMap<DataKey, DataResource> mergeCombining(ParsedAndroidData other) { Map<DataKey, DataResource> merged = new HashMap<>(); CombiningConsumer consumer = new CombiningConsumer(merged); for (Entry<DataKey, DataResource> entry : Iterables.concat( - nonOverwritingResources.entrySet(), other.nonOverwritingResources.entrySet())) { + combiningResources.entrySet(), other.combiningResources.entrySet())) { consumer.consume(entry.getKey(), entry.getValue()); } return ImmutableMap.copyOf(merged); diff --git a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java index 978a4d0a69..3a0eefc3c9 100644 --- a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java +++ b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java @@ -111,7 +111,7 @@ public class XmlResourceValues { FullyQualifiedName.Factory fqnFactory, Path path, KeyValueConsumer<DataKey, DataResource> overwritingConsumer, - KeyValueConsumer<DataKey, DataResource> nonOverwritingConsumer, + KeyValueConsumer<DataKey, DataResource> combiningConsumer, XMLEventReader eventReader, StartElement start) throws XMLStreamException { @@ -134,7 +134,7 @@ public class XmlResourceValues { } } } - nonOverwritingConsumer.consume( + combiningConsumer.consume( fqnFactory.create(ResourceType.STYLEABLE, getElementName(start)), DataResourceXml.of(path, StyleableXmlResourceValue.of(members))); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java index 47da07fc26..62fcf4b629 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java @@ -140,8 +140,8 @@ public class StyleableXmlResourceValue implements XmlResourceValue { * {@link FullyQualifiedName} results in a single Styleable containing a union of all the * attribute references. * - * @param value Another {@link StyleableXmlResourceValue} with the same {@link FullyQualifiedName} - * . + * @param value Another {@link StyleableXmlResourceValue} with the same + * {@link FullyQualifiedName}. * @return {@link StyleableXmlResourceValue} containing a sorted union of the attribute * references. * @throws IllegalArgumentException if value is not an {@link StyleableXmlResourceValue}. |