diff options
author | asteinb <asteinb@google.com> | 2018-04-16 07:43:52 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-16 07:45:08 -0700 |
commit | 747f3468d20365a04923d8f7908968974aad17a0 (patch) | |
tree | d442021553b9e78be73c2802eb2ef75ca553a832 /src/main/java/com/google/devtools/build/lib/rules | |
parent | d3de5cc7e25e56fba666e1f39a9ebf3c76fdd69c (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/rules')
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), |