diff options
author | 2016-07-11 19:55:04 +0000 | |
---|---|---|
committer | 2016-07-12 11:17:51 +0000 | |
commit | c41b10c728e9752beb65b7db5d997fb9d01b7640 (patch) | |
tree | 42f6d81d7d6991591ebbcd2a65563da6559a6bab /src/tools/android/java/com/google/devtools/build/android/xml | |
parent | 84ecac51d43fe4dba262740f4ddb3826bea4bb17 (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.java | 20 |
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(); } } |