Improve the error message for simple values by including the value. RELNOTES: None PiperOrigin-RevId: 151630049
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 0cbe589..0beb9a2 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 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 2259078..b1d24f3 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 @@ 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 1453bf5..41bcf76 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 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 fe85dd4..2e1fcbe 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 @@ 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 35517ca..bcbf99a 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 @@ 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 65e8e03..721cd29 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 @@ 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 e9578d6..252b4cb 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 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 16bc0a5..d0a4114 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 @@ } 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 c2fc64e..faf418a 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 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 fe1ae7c..9399c64 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 @@ } 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 b1d9740..e92565f 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 @@ 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 d560187..edcfe3f 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 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 07d60ac..bfc02a42 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 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 6d90a0a..9347887 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 @@ } return of(combined); } + + @Override + public String asConflictStringWith(DataSource source) { + return source.asConflictString(); + } }