diff options
author | 2016-07-22 16:33:17 +0000 | |
---|---|---|
committer | 2016-07-22 20:11:12 +0000 | |
commit | b6a650936b83b12c9efb9014faa403b94a3b5625 (patch) | |
tree | 0ad460ce12ffc2650d436ac9651e8ac26eb43e4c /src/tools/android/java/com/google/devtools/build/android/UnwrittenMergedAndroidData.java | |
parent | 238bf4e778a39df24ebebf8be79e205d7a65e1e4 (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.java | 19 |
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) |