diff options
author | 2016-11-30 22:40:59 +0000 | |
---|---|---|
committer | 2016-12-01 10:17:49 +0000 | |
commit | 3e8a15267e9c7fffb6a65ee63e4dd6ec10e522d5 (patch) | |
tree | 309cb0409b90107bb70a3b7f8b0f6c8d08b24a90 /src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java | |
parent | 2a2be3907981d9654575493c7012d95d1241f373 (diff) |
unknown commit of 5: Fixing the merge warning messages in transitive library overwrites.
Record the sources are overwritten during merging.
--
MOS_MIGRATED_REVID=140654137
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/ParsedAndroidData.java | 21 |
1 files changed, 17 insertions, 4 deletions
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 2470a3f87b..e1d29d0515 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 @@ -176,10 +176,15 @@ public class ParsedAndroidData { @Override public void consume(K key, V value) { if (target.containsKey(key)) { - conflicts.add(MergeConflict.between(key, value, target.get(key))); + V other = target.get(key); + conflicts.add(MergeConflict.between(key, value, other)); + if (!other.source().hasOveridden(value.source())) { + // Only replace it if the previous value has explicitly replaced the current. + target.put(key, value); + } + } else { + target.put(key, value); } - // Always record the value, conflict or not, to maintain backwards compatibility. - target.put(key, value); } } @@ -463,13 +468,17 @@ public class ParsedAndroidData { return assets; } - boolean containsOverwritable(DataKey name) { + public boolean containsOverwritable(DataKey name) { return overwritingResources.containsKey(name); } public boolean containsCombineable(DataKey key) { return combiningResources.containsKey(key); } + + public DataResource getOverwritable(DataKey name) { + return overwritingResources.get(name); + } Iterable<Entry<DataKey, DataResource>> iterateOverwritableEntries() { return overwritingResources.entrySet(); @@ -503,4 +512,8 @@ public class ParsedAndroidData { ImmutableSet<MergeConflict> conflicts() { return conflicts; } + + public DataAsset getAsset(DataKey key) { + return assets.get(key); + } } |