aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-04-16 07:43:52 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-16 07:45:08 -0700
commit747f3468d20365a04923d8f7908968974aad17a0 (patch)
treed442021553b9e78be73c2802eb2ef75ca553a832 /src/main/java/com/google/devtools/build/lib
parentd3de5cc7e25e56fba666e1f39a9ebf3c76fdd69c (diff)
Properly expose resource artifacts in MergableAndroidData interface
In hindsight, I should have done this a few changes ago, but the relevant change is already submitted. We need the artifacts for use in some cases where we want to use AndroidResources and ResourceContainer interchangably during migration. RELNOTES: none PiperOrigin-RevId: 193038067
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/MergableAndroidData.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainer.java40
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java4
5 files changed, 44 insertions, 26 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
index 842e20cc7e..3a6c71f1ee 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourceParsingActionBuilder.java
@@ -214,7 +214,11 @@ public class AndroidResourceParsingActionBuilder {
build(ruleContext);
ResourceContainer.Builder builder =
- resourceContainer.toBuilder().setSymbols(output).setAssets(assets).setResources(resources);
+ resourceContainer
+ .toBuilder()
+ .setSymbols(output)
+ .setAndroidAssets(assets)
+ .setAndroidResources(resources);
if (compiledSymbols != null) {
builder.setCompiledSymbols(compiledSymbols);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
index bcac5b4d14..2f3ff356b0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
@@ -310,8 +310,8 @@ public final class ApplicationManifest {
ResourceContainer resourceContainer =
ResourceContainer.builderFromRule(ruleContext)
- .setAssets(AndroidAssets.from(ruleContext))
- .setResources(AndroidResources.from(ruleContext, "local_resource_files"))
+ .setAndroidAssets(AndroidAssets.from(ruleContext))
+ .setAndroidResources(AndroidResources.from(ruleContext, "local_resource_files"))
.setManifest(getManifest())
.setApk(resourceApk)
.setRTxt(rTxt)
@@ -456,8 +456,8 @@ public final class ApplicationManifest {
ResourceContainer.builderFromRule(ruleContext)
.setApk(resourceApk)
.setManifest(getManifest())
- .setAssets(AndroidAssets.from(ruleContext))
- .setResources(resources)
+ .setAndroidAssets(AndroidAssets.from(ruleContext))
+ .setAndroidResources(resources)
.build();
ResourceContainer processed =
@@ -524,8 +524,8 @@ public final class ApplicationManifest {
// container from it.
ResourceContainer resourceContainer =
ResourceContainer.builderFromRule(ruleContext)
- .setAssets(AndroidAssets.from(ruleContext))
- .setResources(resources)
+ .setAndroidAssets(AndroidAssets.from(ruleContext))
+ .setAndroidResources(resources)
.setManifest(getManifest())
.setRTxt(rTxt)
.setApk(resourceApk)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/MergableAndroidData.java b/src/main/java/com/google/devtools/build/lib/rules/android/MergableAndroidData.java
index 47e162067a..f79966d6c4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/MergableAndroidData.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/MergableAndroidData.java
@@ -36,6 +36,14 @@ public interface MergableAndroidData {
return ImmutableList.of();
}
+ default ImmutableList<Artifact> getResources() {
+ return ImmutableList.of();
+ }
+
+ default ImmutableList<Artifact> getAssets() {
+ return ImmutableList.of();
+ }
+
Label getLabel();
Artifact getSymbols();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainer.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainer.java
index e1fdfd430d..47cea1a2c0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainer.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceContainer.java
@@ -82,32 +82,40 @@ public abstract class ResourceContainer implements CompiledMergableAndroidData {
@Nullable
public abstract Artifact getJavaClassJar();
- abstract AndroidAssets getAssets();
+ @Override
+ public ImmutableList<Artifact> getAssets() {
+ return getAndroidAssets().getAssets();
+ }
+
+ abstract AndroidAssets getAndroidAssets();
+
+ @Override
+ public ImmutableList<Artifact> getResources() {
+ return getAndroidResources().getResources();
+ }
@VisibleForTesting
- public abstract AndroidResources getResources();
+ public abstract AndroidResources getAndroidResources();
/** @deprecated We are moving towards decoupling assets and resources */
@Deprecated
public ImmutableList<Artifact> getArtifacts(ResourceType resourceType) {
- return resourceType == ResourceType.ASSETS
- ? getAssets().getAssets()
- : getResources().getResources();
+ return resourceType == ResourceType.ASSETS ? getAssets() : getResources();
}
@Override
public Iterable<Artifact> getArtifacts() {
- return Iterables.concat(getAssets().getAssets(), getResources().getResources());
+ return Iterables.concat(getAssets(), getResources());
}
@Override
public ImmutableList<PathFragment> getResourceRoots() {
- return getResources().getResourceRoots();
+ return getAndroidResources().getResourceRoots();
}
@Override
public ImmutableList<PathFragment> getAssetRoots() {
- return getAssets().getAssetRoots();
+ return getAndroidAssets().getAssetRoots();
}
/**
@@ -122,9 +130,7 @@ public abstract class ResourceContainer implements CompiledMergableAndroidData {
*/
@Deprecated
public ImmutableList<PathFragment> getRoots(ResourceType resourceType) {
- return resourceType == ResourceType.ASSETS
- ? getAssets().getAssetRoots()
- : getResources().getResourceRoots();
+ return resourceType == ResourceType.ASSETS ? getAssetRoots() : getResourceRoots();
}
public abstract boolean isManifestExported();
@@ -201,21 +207,21 @@ public abstract class ResourceContainer implements CompiledMergableAndroidData {
RuleErrorConsumer errorConsumer, ResourceFilter filter, boolean isDependency)
throws RuleErrorException {
Optional<? extends AndroidResources> filteredResources =
- getResources().maybeFilter(errorConsumer, filter, isDependency);
+ getAndroidResources().maybeFilter(errorConsumer, filter, isDependency);
if (!filteredResources.isPresent()) {
// No filtering was done; return this container
return this;
}
- return toBuilder().setResources(filteredResources.get()).build();
+ return toBuilder().setAndroidResources(filteredResources.get()).build();
}
/** Creates a new builder with default values. */
public static Builder builder() {
return new AutoValue_ResourceContainer.Builder()
.setJavaPackageFrom(Builder.JavaPackageSource.MANIFEST)
- .setAssets(AndroidAssets.empty())
- .setResources(AndroidResources.empty());
+ .setAndroidAssets(AndroidAssets.empty())
+ .setAndroidResources(AndroidResources.empty());
}
/**
@@ -304,9 +310,9 @@ public abstract class ResourceContainer implements CompiledMergableAndroidData {
public abstract Builder setJavaClassJar(@Nullable Artifact javaClassJar);
- public abstract Builder setAssets(AndroidAssets assets);
+ public abstract Builder setAndroidAssets(AndroidAssets assets);
- public abstract Builder setResources(AndroidResources resources);
+ public abstract Builder setAndroidResources(AndroidResources resources);
public abstract Builder setManifestExported(boolean manifestExported);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
index 666a7874ae..4740fb1f2b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
@@ -264,11 +264,11 @@ public final class ResourceDependencies {
NestedSetBuilder.<ResourceContainer>naiveLinkOrder().add(newDirectResource).build(),
NestedSetBuilder.<Artifact>naiveLinkOrder()
.addTransitive(transitiveResources)
- .addAll(newDirectResource.getResources().getResources())
+ .addAll(newDirectResource.getResources())
.build(),
NestedSetBuilder.<Artifact>naiveLinkOrder()
.addTransitive(transitiveAssets)
- .addAll(newDirectResource.getAssets().getAssets())
+ .addAll(newDirectResource.getAssets())
.build(),
withDirectAndTransitive(newDirectResource.getManifest(), transitiveManifests),
withDirectAndTransitive(newDirectResource.getAapt2RTxt(), transitiveAapt2RTxt),