aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-05-16 20:18:46 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-05-17 15:20:55 +0200
commite04253eb9e673634751b29029a5aca0f19e2c753 (patch)
tree001922687265215be3c0bd800fe9bc783e477aaf /src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java
parentba0e2b2930bbda02bfb4a81eb579716709a14809 (diff)
Use one writer for generating R.java source files
RELNOTES: None PiperOrigin-RevId: 156205544
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java45
1 files changed, 7 insertions, 38 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java
index 2fcbe8e93c..b64f9774f6 100644
--- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java
+++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceClassWriter.java
@@ -13,21 +13,16 @@
// limitations under the License.
package com.google.devtools.build.android;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-import com.android.SdkConstants;
import com.android.resources.ResourceType;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Optional;
import com.google.devtools.build.android.AndroidFrameworkAttrIdProvider.AttrLookupException;
-import com.google.devtools.build.android.resources.FieldInitializer;
+import com.google.devtools.build.android.resources.FieldInitializers;
import com.google.devtools.build.android.resources.RClassGenerator;
-import java.io.BufferedWriter;
+import com.google.devtools.build.android.resources.RSourceGenerator;
import java.io.Flushable;
import java.io.IOException;
-import java.nio.file.Files;
import java.nio.file.Path;
-import java.util.List;
import java.util.Map;
/**
@@ -93,7 +88,7 @@ public class AndroidResourceClassWriter implements Flushable, AndroidResourceSym
@Override
public void flush() throws IOException {
try {
- Map<ResourceType, List<FieldInitializer>> initializers = generator.build();
+ FieldInitializers initializers = generator.build();
if (includeClassFile) {
writeAsClass(initializers);
}
@@ -103,39 +98,13 @@ public class AndroidResourceClassWriter implements Flushable, AndroidResourceSym
} catch (AttrLookupException e) {
throw new IOException(e);
}
-
}
- private void writeAsJava(Map<ResourceType, List<FieldInitializer>> initializers)
- throws IOException {
- String packageDir = packageName.replace('.', '/');
- Path packagePath = outputBasePath.resolve(packageDir);
- Path rJavaPath = packagePath.resolve(SdkConstants.FN_RESOURCE_CLASS);
- Files.createDirectories(rJavaPath.getParent());
- try (BufferedWriter writer = Files.newBufferedWriter(rJavaPath, UTF_8)) {
- writer.write("/* AUTO-GENERATED FILE. DO NOT MODIFY.\n");
- writer.write(" *\n");
- writer.write(" * This class was automatically generated by the\n");
- writer.write(" * bazel tool from the resource data it found. It\n");
- writer.write(" * should not be modified by hand.\n");
- writer.write(" */\n");
- writer.write(String.format("package %s;\n", packageName));
- writer.write("public final class R {\n");
- for (ResourceType type : initializers.keySet()) {
- writer.write(String.format(" public static final class %s {\n", type.getName()));
- for (FieldInitializer field : initializers.get(type)) {
- field.writeInitSource(writer);
- }
- writer.write(" }\n");
- }
- writer.write("}");
- }
+ private void writeAsJava(FieldInitializers initializers) throws IOException {
+ RSourceGenerator.with(outputBasePath, initializers, false /* finalFields */).write(packageName);
}
- private void writeAsClass(Map<ResourceType, List<FieldInitializer>> initializers)
- throws IOException {
- RClassGenerator rClassGenerator =
- new RClassGenerator(outputBasePath, initializers, false /* finalFields */);
- rClassGenerator.write(packageName);
+ private void writeAsClass(FieldInitializers initializers) throws IOException {
+ RClassGenerator.with(outputBasePath, initializers, false /* finalFields */).write(packageName);
}
}