diff options
14 files changed, 69 insertions, 2 deletions
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 0cbe589003..0beb9a2a1b 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 @@ -361,4 +361,9 @@ public class DataResourceXml implements DataResource { public DataValue update(DataSource source) { return createWithNamespaces(source, xml, namespaces); } + + @Override + public String asConflictString() { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/DataValue.java b/src/tools/android/java/com/google/devtools/build/android/DataValue.java index 22590786a3..b1d24f3bd1 100644 --- a/src/tools/android/java/com/google/devtools/build/android/DataValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/DataValue.java @@ -35,4 +35,7 @@ public interface DataValue { DataKey key, DataSourceTable sourceTable, OutputStream output) throws IOException; DataValue update(DataSource source); + + /** Provides a representation of the value suitable for a conflict message. */ + String asConflictString(); } diff --git a/src/tools/android/java/com/google/devtools/build/android/DataValueFile.java b/src/tools/android/java/com/google/devtools/build/android/DataValueFile.java index 1453bf51bd..41bcf76f8e 100644 --- a/src/tools/android/java/com/google/devtools/build/android/DataValueFile.java +++ b/src/tools/android/java/com/google/devtools/build/android/DataValueFile.java @@ -125,4 +125,9 @@ public class DataValueFile implements DataResource, DataAsset { public DataValue update(DataSource source) { return of(source); } + + @Override + public String asConflictString() { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/MergeConflict.java b/src/tools/android/java/com/google/devtools/build/android/MergeConflict.java index fe85dd4cc9..2e1fcbea22 100644 --- a/src/tools/android/java/com/google/devtools/build/android/MergeConflict.java +++ b/src/tools/android/java/com/google/devtools/build/android/MergeConflict.java @@ -69,8 +69,8 @@ public class MergeConflict { return String.format( CONFLICT_MESSAGE, dataKey.toPrettyString(), - primary.source().getPath(), - overwritten.source().getPath()); + primary.asConflictString(), + overwritten.asConflictString()); } public DataKey dataKey() { diff --git a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValue.java index 35517ca245..bcbf99acca 100644 --- a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValue.java @@ -53,4 +53,7 @@ public interface XmlResourceValue { void writeResourceToClass( FullyQualifiedName key, AndroidResourceClassWriter resourceClassWriter); + + /** Returns a representation of the xml value as a string suitable for conflict messages. */ + String asConflictStringWith(DataSource source); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java index 65e8e03e97..721cd29715 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java @@ -215,4 +215,9 @@ public class ArrayXmlResourceValue implements XmlResourceValue { throw new XMLStreamException(e.getMessage(), start.getLocation()); } } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java index e9578d6fa2..252b4cbac6 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java @@ -756,4 +756,9 @@ public class AttrXmlResourceValue implements XmlResourceValue { public void writeToClass(AndroidResourceClassWriter writer) { } } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/IdXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/IdXmlResourceValue.java index 16bc0a5c07..d0a4114c2f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/IdXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/IdXmlResourceValue.java @@ -146,4 +146,9 @@ public class IdXmlResourceValue implements XmlResourceValue { } throw new IllegalArgumentException(resourceValue + "is not combinable with " + this); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java index c2fc64e24c..faf418a77f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java @@ -156,4 +156,9 @@ public class PluralXmlResourceValue implements XmlResourceValue { public XmlResourceValue combineWith(XmlResourceValue value) { throw new IllegalArgumentException(this + " is not a combinable resource."); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/PublicXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/PublicXmlResourceValue.java index fe1ae7c927..9399c64647 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/PublicXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/PublicXmlResourceValue.java @@ -173,4 +173,9 @@ public class PublicXmlResourceValue implements XmlResourceValue { } return of(combined); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/ResourcesAttribute.java b/src/tools/android/java/com/google/devtools/build/android/xml/ResourcesAttribute.java index b1d97407b8..e92565fb35 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/ResourcesAttribute.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/ResourcesAttribute.java @@ -114,4 +114,12 @@ public class ResourcesAttribute implements XmlResourceValue { FullyQualifiedName key, AndroidResourceClassWriter resourceClassWriter) { // This is an xml attribute and does not have any java representation. } + + @Override + public String asConflictStringWith(DataSource source) { + if (value != null) { + return String.format(" %s (with value %s)", source.asConflictString(), value); + } + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java index d560187fa8..edcfe3fe4f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/SimpleXmlResourceValue.java @@ -266,4 +266,12 @@ public class SimpleXmlResourceValue implements XmlResourceValue { public XmlResourceValue combineWith(XmlResourceValue value) { throw new IllegalArgumentException(this + " is not a combinable resource."); } + + @Override + public String asConflictStringWith(DataSource source) { + if (value != null) { + return String.format(" %s (with value %s)", source.asConflictString(), value); + } + return source.asConflictString(); + } } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java index 07d60ac636..bfc02a4244 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java @@ -153,4 +153,9 @@ public class StyleXmlResourceValue implements XmlResourceValue { public XmlResourceValue combineWith(XmlResourceValue value) { throw new IllegalArgumentException(this + " is not a combinable resource."); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } 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 6d90a0a0ff..93478876a3 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 @@ -216,4 +216,9 @@ public class StyleableXmlResourceValue implements XmlResourceValue { } return of(combined); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } } |