aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
diff options
context:
space:
mode:
authorGravatar Michael Staib <mstaib@google.com>2017-01-04 19:18:12 +0000
committerGravatar John Cater <jcater@google.com>2017-01-04 20:40:17 +0000
commit0b06ac45882d8c23f4f53817a0b6e7b3dffc8957 (patch)
treedd7e0456fd86ec609bfbb5cd6f962c98671083c1 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
parentf21d18e1b2643c5b9814b3f2803619ed15550beb (diff)
Refactor ResourceContainer: make top level and use AutoValue Builder support.
This merges the AndroidResourceContainerBuilder (which it's not even clear is related to the nested ResourceContainer!) into the newly generated ResourceContainer.Builder. It also seemed ridiculous for ResourceContainer to get so large and still be subordinate to AndroidResourcesProvider, especially when it's getting passed around in a lot of other places (look how many imports needed fixing!). This CL makes it its own top level class. This allows for easy modification of an existing instance: call toBuilder on it, set the properties you want set, and then call build. -- PiperOrigin-RevId: 143574468 MOS_MIGRATED_REVID=143574468
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java117
1 files changed, 0 insertions, 117 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
index dd117d9697..0bc2391640 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
@@ -14,16 +14,10 @@
package com.google.devtools.build.lib.rules.android;
import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.vfs.PathFragment;
-import java.util.Objects;
-import javax.annotation.Nullable;
/** A provider that supplies ResourceContainers from its transitive closure. */
@AutoValue
@@ -49,116 +43,5 @@ public abstract class AndroidResourcesProvider implements TransitiveInfoProvider
/** Returns the immediate ResourceContainers for the label. */
public abstract NestedSet<ResourceContainer> getDirectAndroidResources();
-
- /**
- * The type of resource in question: either asset or a resource.
- */
- public enum ResourceType {
- ASSETS("assets"),
- RESOURCES("resources");
-
- private final String attribute;
-
- private ResourceType(String attribute) {
- this.attribute = attribute;
- }
-
- public String getAttribute() {
- return attribute;
- }
- }
-
- /**
- * The resources contributed by a single target.
- */
- @AutoValue
- @Immutable
- public abstract static class ResourceContainer {
-
- public static ResourceContainer create(
- Label label,
- @Nullable String javaPackage,
- @Nullable String renameManifestPackage,
- boolean constantsInlined,
- @Nullable Artifact apk,
- Artifact manifest,
- @Nullable Artifact javaSourceJar,
- @Nullable Artifact javaClassJar,
- ImmutableList<Artifact> assets,
- ImmutableList<Artifact> resources,
- ImmutableList<PathFragment> assetsRoots,
- ImmutableList<PathFragment> resourcesRoots,
- boolean manifestExported,
- @Nullable Artifact rTxt,
- @Nullable Artifact symbolsTxt) {
- return new AutoValue_AndroidResourcesProvider_ResourceContainer(
- label,
- javaPackage,
- renameManifestPackage,
- constantsInlined,
- apk,
- manifest,
- javaSourceJar,
- javaClassJar,
- assets,
- resources,
- assetsRoots,
- resourcesRoots,
- manifestExported,
- rTxt,
- symbolsTxt);
- }
-
- public abstract Label getLabel();
- @Nullable public abstract String getJavaPackage();
- @Nullable public abstract String getRenameManifestPackage();
- public abstract boolean getConstantsInlined();
- @Nullable public abstract Artifact getApk();
- public abstract Artifact getManifest();
- @Nullable public abstract Artifact getJavaSourceJar();
- @Nullable public abstract Artifact getJavaClassJar();
-
- abstract ImmutableList<Artifact> getAssets();
- abstract ImmutableList<Artifact> getResources();
-
- public ImmutableList<Artifact> getArtifacts(ResourceType resourceType) {
- return resourceType == ResourceType.ASSETS ? getAssets() : getResources();
- }
-
- public Iterable<Artifact> getArtifacts() {
- return Iterables.concat(getAssets(), getResources());
- }
-
- abstract ImmutableList<PathFragment> getAssetsRoots();
- abstract ImmutableList<PathFragment> getResourcesRoots();
- public ImmutableList<PathFragment> getRoots(ResourceType resourceType) {
- return resourceType == ResourceType.ASSETS ? getAssetsRoots() : getResourcesRoots();
- }
-
- public abstract boolean isManifestExported();
- @Nullable public abstract Artifact getRTxt();
- @Nullable public abstract Artifact getSymbolsTxt();
-
- // TODO(somebody) evaluate if we can just use hashCode and equals from AutoValue
- @Override
- public int hashCode() {
- return Objects.hash(getLabel(), getRTxt(), getSymbolsTxt());
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (!(obj instanceof ResourceContainer)) {
- return false;
- }
- ResourceContainer other = (ResourceContainer) obj;
- return Objects.equals(getLabel(), other.getLabel())
- && Objects.equals(getRTxt(), other.getRTxt())
- && Objects.equals(getSymbolsTxt(), other.getSymbolsTxt());
- }
- }
-
AndroidResourcesProvider() {}
}