aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-22 16:33:17 +0000
committerGravatar John Cater <jcater@google.com>2016-07-22 20:11:12 +0000
commitb6a650936b83b12c9efb9014faa403b94a3b5625 (patch)
tree0ad460ce12ffc2650d436ac9651e8ac26eb43e4c /src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java
parent238bf4e778a39df24ebebf8be79e205d7a65e1e4 (diff)
Add a resource merger state -> R class writer.
Collects the R class fields from the new merger's internal state, and then writes out either an R.java or R.class. TBD which to use. One concern is that users may want the javadoc. If so, perhaps this could generate the R.class, and then aapt could generate the srcjar off of the build critical path. Refactor the RClassGenerator to make it easier to use from merger state (vs from R.txt). -- MOS_MIGRATED_REVID=128181306
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java b/src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java
index 2eddb3e1c9..cefd4454cd 100644
--- a/src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java
+++ b/src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java
@@ -85,6 +85,25 @@ public class UnwrittenMergedAndroidData {
}
}
+ public void writeResourceClass(AndroidResourceClassWriter resourceClassWriter)
+ throws IOException {
+ writeResourceClassItems(primary, resourceClassWriter);
+ writeResourceClassItems(transitive, resourceClassWriter);
+ resourceClassWriter.flush();
+ }
+
+ private void writeResourceClassItems(
+ ParsedAndroidData resources, AndroidResourceClassWriter resourceClassWriter)
+ throws IOException {
+ for (Entry<DataKey, DataResource> entry : resources.iterateDataResourceEntries()) {
+ // TODO(corysmith): Resolve the nit of casting to a FullyQualifiedName by sorting
+ // out the type structure and generics of DataKey, ParsedAndroidData, AndroidDataMerger and
+ // MergeConflict.
+ entry.getValue()
+ .writeResourceToClass((FullyQualifiedName) entry.getKey(), resourceClassWriter);
+ }
+ }
+
@Override
public String toString() {
return MoreObjects.toStringHelper(this)