aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/xml
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-11 19:55:04 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-07-12 11:17:51 +0000
commitc41b10c728e9752beb65b7db5d997fb9d01b7640 (patch)
tree42f6d81d7d6991591ebbcd2a65563da6559a6bab /src/tools/android/java/com/google/devtools/build/android/xml
parent84ecac51d43fe4dba262740f4ddb3826bea4bb17 (diff)
Centralize the creation of the XmlInputFactory
Properly handle unary tags in AttrXmlResourceValue Handle CData for string content. -- MOS_MIGRATED_REVID=127118005
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/xml')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java20
1 files changed, 13 insertions, 7 deletions
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 7984dc1097..5686b04e72 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
@@ -25,6 +25,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Ordering;
import com.google.devtools.build.android.AndroidDataWritingVisitor;
+import com.google.devtools.build.android.AndroidDataWritingVisitor.StartTag;
import com.google.devtools.build.android.AndroidDataWritingVisitor.ValuesResourceDefinition;
import com.google.devtools.build.android.FullyQualifiedName;
import com.google.devtools.build.android.XmlResourceValue;
@@ -304,7 +305,7 @@ public class AttrXmlResourceValue implements XmlResourceValue {
.filter(not(equalTo(FLAGS)))
.filter(not(equalTo(ENUM)))
.toSortedList(Ordering.natural());
- ValuesResourceDefinition definition =
+ StartTag startTag =
mergedDataWriter
.define(key)
.derivedFrom(source)
@@ -313,13 +314,18 @@ public class AttrXmlResourceValue implements XmlResourceValue {
.optional()
.attribute("format")
.setFrom(formatKeys)
- .joinedBy("|")
- .closeTag()
- .addCharactersOf("\n");
- for (ResourceXmlAttrValue value : formats.values()) {
- definition = value.writeTo(definition);
+ .joinedBy("|");
+ ValuesResourceDefinition definition;
+ if (formats.keySet().contains(FLAGS) || formats.keySet().contains(ENUM)) {
+ definition = startTag.closeTag();
+ for (ResourceXmlAttrValue value : formats.values()) {
+ definition = value.writeTo(definition);
+ }
+ definition = definition.addCharactersOf("\n").endTag();
+ } else {
+ definition = startTag.closeUnaryTag();
}
- definition.endTag().save();
+ definition.save();
}
}