aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
diff options
context:
space:
mode:
authorGravatar jingwen <jingwen@google.com>2017-12-18 08:24:12 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-18 08:25:32 -0800
commit094caa508fa74081d861e9e8f8eb50934811bf65 (patch)
treec6911010ba0c7dea50fa13ee718f93719b43eb8a /src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
parent310fe150811c6abe0c52232eb5cb0e4380a6e084 (diff)
Automatic formatting cleanup of Android *.java files.
RELNOTES: None. PiperOrigin-RevId: 179425421
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java168
1 files changed, 88 insertions, 80 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
index 977455f85a..1fe6a2ec4e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdlHelper.java
@@ -43,9 +43,7 @@ import java.util.Map.Entry;
import java.util.Set;
import javax.annotation.Nullable;
-/**
- * Helper class for Android IDL processing.
- */
+/** Helper class for Android IDL processing. */
public class AndroidIdlHelper {
/**
@@ -84,30 +82,33 @@ public class AndroidIdlHelper {
idlSourceJar = null;
}
- androidIdlProvider = createAndroidIdlProvider(
- ruleContext, idlClassJar, idlSourceJar);
+ androidIdlProvider = createAndroidIdlProvider(ruleContext, idlClassJar, idlSourceJar);
}
/**
* Adds the necessary providers to the {@code builder}.
*
- * Adds an {@link AndroidIdlProvider} to the target, and adds the transitive generated IDL jars to
- * the IDL_JARS_OUTPUT_GROUP. This also generates the actions to compile the .aidl files to .java,
- * as well as the .jar and .srcjar files consisting of only the IDL-generated source and class
- * files.
+ * <p>Adds an {@link AndroidIdlProvider} to the target, and adds the transitive generated IDL jars
+ * to the IDL_JARS_OUTPUT_GROUP. This also generates the actions to compile the .aidl files to
+ * .java, as well as the .jar and .srcjar files consisting of only the IDL-generated source and
+ * class files.
*
* @param builder The target builder to add the providers to.
* @param classJar The class jar to be separated into the IDL class jar.
* @param manifestProtoOutput The manifest generated by JavaBuilder, for identifying IDL-generated
* class files in the class jar.
*/
- public void addTransitiveInfoProviders(RuleConfiguredTargetBuilder builder,
- Artifact classJar, Artifact manifestProtoOutput) {
+ public void addTransitiveInfoProviders(
+ RuleConfiguredTargetBuilder builder, Artifact classJar, Artifact manifestProtoOutput) {
if (!translatedIdlSources.isEmpty()) {
- generateAndroidIdlCompilationActions(
- ruleContext, androidIdlProvider, translatedIdlSources);
- createIdlClassJarAction(ruleContext, classJar, translatedIdlSources.values(),
- manifestProtoOutput, idlClassJar, idlSourceJar);
+ generateAndroidIdlCompilationActions(ruleContext, androidIdlProvider, translatedIdlSources);
+ createIdlClassJarAction(
+ ruleContext,
+ classJar,
+ translatedIdlSources.values(),
+ manifestProtoOutput,
+ idlClassJar,
+ idlSourceJar);
}
builder
.addProvider(AndroidIdlProvider.class, androidIdlProvider)
@@ -121,16 +122,12 @@ public class AndroidIdlHelper {
return hasExplicitlySpecifiedIdlImportRoot(ruleContext) ? getIdlImportRoot(ruleContext) : null;
}
- /**
- * Returns the raw (non-processed) idl_srcs, not including parcelable marker files.
- */
+ /** Returns the raw (non-processed) idl_srcs, not including parcelable marker files. */
public Collection<Artifact> getIdlSources() {
return translatedIdlSources.keySet();
}
- /**
- * Returns the idl_parcelables, consisting of parcelable marker files defined on this rule.
- */
+ /** Returns the idl_parcelables, consisting of parcelable marker files defined on this rule. */
public Collection<Artifact> getIdlParcelables() {
return getIdlParcelables(ruleContext);
}
@@ -140,9 +137,7 @@ public class AndroidIdlHelper {
return getIdlPreprocessed(ruleContext);
}
- /**
- * Returns the generated Java sources created from the idl_srcs.
- */
+ /** Returns the generated Java sources created from the idl_srcs. */
public Collection<Artifact> getIdlGeneratedJavaSources() {
return translatedIdlSources.values();
}
@@ -174,8 +169,8 @@ public class AndroidIdlHelper {
/**
* Returns a new list with the idl libs added to the given list if necessary, or the same list.
*/
- public static ImmutableList<TransitiveInfoCollection> maybeAddSupportLibs(RuleContext ruleContext,
- ImmutableList<TransitiveInfoCollection> deps) {
+ public static ImmutableList<TransitiveInfoCollection> maybeAddSupportLibs(
+ RuleContext ruleContext, ImmutableList<TransitiveInfoCollection> deps) {
if (!hasIdlSrcs(ruleContext)) {
return deps;
}
@@ -183,14 +178,11 @@ public class AndroidIdlHelper {
if (aidlLib == null) {
return deps;
}
- return ImmutableList.<TransitiveInfoCollection>builder()
- .addAll(deps)
- .add(aidlLib)
- .build();
+ return ImmutableList.<TransitiveInfoCollection>builder().addAll(deps).add(aidlLib).build();
}
- public static void maybeAddSupportLibProguardConfigs(RuleContext ruleContext,
- NestedSetBuilder<Artifact> proguardConfigsBuilder) {
+ public static void maybeAddSupportLibProguardConfigs(
+ RuleContext ruleContext, NestedSetBuilder<Artifact> proguardConfigsBuilder) {
if (!hasIdlSrcs(ruleContext)) {
return;
}
@@ -205,35 +197,34 @@ public class AndroidIdlHelper {
proguardConfigsBuilder.addTransitive(provider.getTransitiveProguardSpecs());
}
- /**
- * Generates an artifact by replacing the extension of the input with the suffix.
- */
+ /** Generates an artifact by replacing the extension of the input with the suffix. */
private Artifact createIdlJar(Artifact baseArtifact, String suffix) {
return ruleContext.getDerivedArtifact(
FileSystemUtils.replaceExtension(baseArtifact.getRootRelativePath(), suffix),
baseArtifact.getRoot());
}
- /**
- * Returns the idl_parcelables defined on the given rule.
- */
+ /** Returns the idl_parcelables defined on the given rule. */
private static ImmutableList<Artifact> getIdlParcelables(RuleContext ruleContext) {
return ruleContext.getRule().isAttrDefined("idl_parcelables", BuildType.LABEL_LIST)
- ? ImmutableList.copyOf(ruleContext.getPrerequisiteArtifacts(
- "idl_parcelables", Mode.TARGET).filter(AndroidRuleClasses.ANDROID_IDL).list())
+ ? ImmutableList.copyOf(
+ ruleContext
+ .getPrerequisiteArtifacts("idl_parcelables", Mode.TARGET)
+ .filter(AndroidRuleClasses.ANDROID_IDL)
+ .list())
: ImmutableList.<Artifact>of();
}
- /**
- * Returns the idl_srcs defined on the given rule.
- */
+ /** Returns the idl_srcs defined on the given rule. */
private static Collection<Artifact> getIdlSrcs(RuleContext ruleContext) {
if (!ruleContext.getRule().isAttrDefined("idl_srcs", BuildType.LABEL_LIST)) {
return ImmutableList.of();
}
checkIdlSrcsSamePackage(ruleContext);
- return ruleContext.getPrerequisiteArtifacts(
- "idl_srcs", Mode.TARGET).filter(AndroidRuleClasses.ANDROID_IDL).list();
+ return ruleContext
+ .getPrerequisiteArtifacts("idl_srcs", Mode.TARGET)
+ .filter(AndroidRuleClasses.ANDROID_IDL)
+ .list();
}
/**
@@ -241,16 +232,21 @@ public class AndroidIdlHelper {
*/
private static void checkIdlSrcsSamePackage(RuleContext ruleContext) {
PathFragment packageName = ruleContext.getLabel().getPackageFragment();
- Collection<Artifact> idls = ruleContext
- .getPrerequisiteArtifacts("idl_srcs", Mode.TARGET)
- .filter(AndroidRuleClasses.ANDROID_IDL)
- .list();
+ Collection<Artifact> idls =
+ ruleContext
+ .getPrerequisiteArtifacts("idl_srcs", Mode.TARGET)
+ .filter(AndroidRuleClasses.ANDROID_IDL)
+ .list();
for (Artifact idl : idls) {
Label idlLabel = idl.getOwner();
if (!packageName.equals(idlLabel.getPackageFragment())) {
- ruleContext.attributeError("idl_srcs", "do not import '" + idlLabel + "' directly. "
- + "You should either move the file to this package or depend on "
- + "an appropriate rule there");
+ ruleContext.attributeError(
+ "idl_srcs",
+ "do not import '"
+ + idlLabel
+ + "' directly. "
+ + "You should either move the file to this package or depend on "
+ + "an appropriate rule there");
}
}
}
@@ -268,9 +264,10 @@ public class AndroidIdlHelper {
for (Artifact idl : idls) {
// Reconstruct the package tree under <rule>_aidl to avoid a name conflict
// if the same AIDL files are used in multiple targets.
- PathFragment javaOutputPath = FileSystemUtils.replaceExtension(
- PathFragment.create(ruleName + "_aidl").getRelative(idl.getRootRelativePath()),
- ".java");
+ PathFragment javaOutputPath =
+ FileSystemUtils.replaceExtension(
+ PathFragment.create(ruleName + "_aidl").getRelative(idl.getRootRelativePath()),
+ ".java");
Artifact output = ruleContext.getGenfilesArtifact(javaOutputPath.getPathString());
outputJavaSources.put(idl, output);
}
@@ -303,9 +300,12 @@ public class AndroidIdlHelper {
}
for (Entry<Artifact, Artifact> entry : translatedIdlSources.entrySet()) {
- createAndroidIdlAction(ruleContext, entry.getKey(),
+ createAndroidIdlAction(
+ ruleContext,
+ entry.getKey(),
transitiveIdlImportData.getTransitiveIdlImports(),
- entry.getValue(), preprocessedArgs);
+ entry.getValue(),
+ preprocessedArgs);
}
}
@@ -328,11 +328,13 @@ public class AndroidIdlHelper {
Artifact idlClassJar,
Artifact idlSourceJar) {
String basename = FileSystemUtils.removeExtension(classJar.getExecPath().getBaseName());
- PathFragment idlTempDir = ruleContext.getConfiguration()
- .getBinDirectory(ruleContext.getRule().getRepository())
- .getExecPath()
- .getRelative(ruleContext.getUniqueDirectory("_idl"))
- .getRelative(basename + "_temp");
+ PathFragment idlTempDir =
+ ruleContext
+ .getConfiguration()
+ .getBinDirectory(ruleContext.getRule().getRepository())
+ .getExecPath()
+ .getRelative(ruleContext.getUniqueDirectory("_idl"))
+ .getRelative(basename + "_temp");
ruleContext.registerAction(
new SpawnAction.Builder()
.addInput(manifestProtoOutput)
@@ -366,9 +368,12 @@ public class AndroidIdlHelper {
* @param output The .java file where the .aidl file will be converted to.
* @param importArgs The arguments defining the import roots and framework .aidl.
*/
- private static void createAndroidIdlAction(RuleContext ruleContext,
- Artifact idl, NestedSet<Artifact> idlImports,
- Artifact output, List<String> importArgs) {
+ private static void createAndroidIdlAction(
+ RuleContext ruleContext,
+ Artifact idl,
+ NestedSet<Artifact> idlImports,
+ Artifact output,
+ List<String> importArgs) {
AndroidSdkProvider sdk = AndroidSdkProvider.fromRuleContext(ruleContext);
ruleContext.registerAction(
new SpawnAction.Builder()
@@ -391,8 +396,8 @@ public class AndroidIdlHelper {
}
/**
- * Returns the union of "idl_srcs" and "idl_parcelables", i.e. all .aidl files
- * provided by this library that contribute to .aidl --> .java compilation.
+ * Returns the union of "idl_srcs" and "idl_parcelables", i.e. all .aidl files provided by this
+ * library that contribute to .aidl --> .java compilation.
*/
private static Collection<Artifact> getIdlImports(RuleContext ruleContext) {
return ImmutableList.<Artifact>builder()
@@ -413,8 +418,8 @@ public class AndroidIdlHelper {
* one does not exist.
* @return A provider containing the collected data, suitable to be provided by this rule.
*/
- private static AndroidIdlProvider createAndroidIdlProvider(RuleContext ruleContext,
- @Nullable Artifact idlClassJar, @Nullable Artifact idlSourceJar) {
+ private static AndroidIdlProvider createAndroidIdlProvider(
+ RuleContext ruleContext, @Nullable Artifact idlClassJar, @Nullable Artifact idlSourceJar) {
NestedSetBuilder<String> rootsBuilder = NestedSetBuilder.naiveLinkOrder();
NestedSetBuilder<Artifact> importsBuilder = NestedSetBuilder.naiveLinkOrder();
NestedSetBuilder<Artifact> jarsBuilder = NestedSetBuilder.stableOrder();
@@ -426,8 +431,9 @@ public class AndroidIdlHelper {
jarsBuilder.add(idlSourceJar);
}
- for (AndroidIdlProvider dep : AndroidCommon.getTransitivePrerequisites(
- ruleContext, Mode.TARGET, AndroidIdlProvider.class)) {
+ for (AndroidIdlProvider dep :
+ AndroidCommon.getTransitivePrerequisites(
+ ruleContext, Mode.TARGET, AndroidIdlProvider.class)) {
rootsBuilder.addTransitive(dep.getTransitiveIdlImportRoots());
importsBuilder.addTransitive(dep.getTransitiveIdlImports());
preprocessedBuilder.addTransitive(dep.getTransitiveIdlPreprocessed());
@@ -439,8 +445,8 @@ public class AndroidIdlHelper {
for (Artifact idlImport : idlImports) {
PathFragment javaRoot = JavaUtil.getJavaRoot(idlImport.getExecPath());
if (javaRoot == null) {
- ruleContext.ruleError("Cannot determine java/javatests root for import "
- + idlImport.getExecPathString());
+ ruleContext.ruleError(
+ "Cannot determine java/javatests root for import " + idlImport.getExecPathString());
} else {
rootsBuilder.add(javaRoot.toString());
}
@@ -449,9 +455,12 @@ public class AndroidIdlHelper {
PathFragment pkgFragment = ruleContext.getLabel().getPackageFragment();
Set<PathFragment> idlImportRoots = new HashSet<>();
for (Artifact idlImport : idlImports) {
- idlImportRoots.add(idlImport.getRoot().getExecPath()
- .getRelative(pkgFragment)
- .getRelative(getIdlImportRoot(ruleContext)));
+ idlImportRoots.add(
+ idlImport
+ .getRoot()
+ .getExecPath()
+ .getRelative(pkgFragment)
+ .getRelative(getIdlImportRoot(ruleContext)));
}
for (PathFragment idlImportRoot : idlImportRoots) {
rootsBuilder.add(idlImportRoot.toString());
@@ -469,13 +478,12 @@ public class AndroidIdlHelper {
preprocessedBuilder.build());
}
- /**
- * Checks that idl_import_root is only set if idl_srcs or idl_parcelables was.
- */
+ /** Checks that idl_import_root is only set if idl_srcs or idl_parcelables was. */
private static void checkIdlRootImport(RuleContext ruleContext) {
if (hasExplicitlySpecifiedIdlImportRoot(ruleContext)
&& !hasExplicitlySpecifiedIdlSrcsOrParcelables(ruleContext)) {
- ruleContext.attributeError("idl_import_root",
+ ruleContext.attributeError(
+ "idl_import_root",
"Neither idl_srcs nor idl_parcelables were specified, "
+ "but 'idl_import_root' attribute was set");
}