aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-06-28 22:24:56 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-29 08:56:18 +0000
commitd9bf45b0ed79aa0a02edccaa5f0b2dab33f25ddc (patch)
treecc9472a06317c3abd5c256560968d60ae70fbba6 /src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
parent242ff7fcf34ec05785725e3f441beae320b64688 (diff)
Record whether the attr is defined or referenced in the styleable. Despite the functional equality, the definition type of the attribute has direct impact on the order in which the attribute appears in the styleable array.
-- MOS_MIGRATED_REVID=126126122
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
index f6c3ae978f..09b1780f7f 100644
--- a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
+++ b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java
@@ -131,22 +131,23 @@ public class XmlResourceValues {
XMLEventReader eventReader,
StartElement start)
throws XMLStreamException {
- List<String> members = new ArrayList<>();
+ Map<FullyQualifiedName, Boolean> members = new LinkedHashMap<>();
for (XMLEvent element = nextTag(eventReader);
!isEndTag(element, TAG_DECLARE_STYLEABLE);
element = nextTag(eventReader)) {
if (isStartTag(element, TAG_ATTR)) {
StartElement attr = element.asStartElement();
- String attrName = getElementName(attr);
- members.add(attrName);
+ FullyQualifiedName attrName = fqnFactory.create(ResourceType.ATTR, getElementName(attr));
// If there is format and the next tag is a starting tag, treat it as an attr definition.
// Without those, it will be an attr reference.
if (XmlResourceValues.getElementAttributeByName(attr, ATTR_FORMAT) != null
|| (XmlResourceValues.peekNextTag(eventReader) != null
&& XmlResourceValues.peekNextTag(eventReader).isStartElement())) {
overwritingConsumer.consume(
- fqnFactory.create(ResourceType.ATTR, attrName),
- DataResourceXml.of(path, parseAttr(eventReader, attr)));
+ attrName, DataResourceXml.of(path, parseAttr(eventReader, attr)));
+ members.put(attrName, Boolean.TRUE);
+ } else {
+ members.put(attrName, Boolean.FALSE);
}
}
}