aboutsummaryrefslogtreecommitdiff
path: root/gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java')
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java49
1 files changed, 41 insertions, 8 deletions
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java
index dac38e6..92fa794 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ProductFlavorContainerImpl.java
@@ -17,11 +17,16 @@
package com.android.build.gradle.internal.model;
import com.android.annotations.NonNull;
-import com.android.builder.model.ProductFlavorContainer;
+import com.android.build.gradle.internal.ProductFlavorData;
+import com.android.builder.model.AndroidProject;
import com.android.builder.model.ProductFlavor;
+import com.android.builder.model.ProductFlavorContainer;
import com.android.builder.model.SourceProvider;
+import com.android.builder.model.SourceProviderContainer;
import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
/**
*/
@@ -33,15 +38,43 @@ class ProductFlavorContainerImpl implements ProductFlavorContainer, Serializable
@NonNull
private final SourceProvider sourceProvider;
@NonNull
- private final SourceProvider testSourceProvider;
+ private final Collection<SourceProviderContainer> extraSourceProviders;
+
+ /**
+ * Create a ProductFlavorContainer from a ProductFlavorData
+ *
+ * @param productFlavorData the product flavor data
+ * @param sourceProviderContainers collection of extra source providers
+ *
+ * @return a non-null ProductFlavorContainer
+ */
+ @NonNull
+ static ProductFlavorContainer createPFC(
+ @NonNull ProductFlavorData productFlavorData,
+ @NonNull Collection<SourceProviderContainer> sourceProviderContainers) {
+
+ List<SourceProviderContainer> clonedContainer = SourceProviderContainerImpl.cloneCollection(sourceProviderContainers);
+
+ // instrument test Source Provider
+ SourceProviderContainer testASP = SourceProviderContainerImpl.create(
+ AndroidProject.ARTIFACT_INSTRUMENT_TEST, productFlavorData.getTestSourceSet());
+
+ clonedContainer.add(testASP);
+
+ return new ProductFlavorContainerImpl(
+ ProductFlavorImpl.cloneFlavor(productFlavorData.getProductFlavor()),
+ SourceProviderImpl.cloneProvider(productFlavorData.getSourceSet()),
+ clonedContainer);
+ }
- ProductFlavorContainerImpl(@NonNull ProductFlavorImpl productFlavor,
- @NonNull SourceProviderImpl sourceProvider,
- @NonNull SourceProviderImpl testSourceProvider) {
+ private ProductFlavorContainerImpl(
+ @NonNull ProductFlavorImpl productFlavor,
+ @NonNull SourceProviderImpl sourceProvider,
+ @NonNull Collection<SourceProviderContainer> extraSourceProviders) {
this.productFlavor = productFlavor;
this.sourceProvider = sourceProvider;
- this.testSourceProvider = testSourceProvider;
+ this.extraSourceProviders = extraSourceProviders;
}
@NonNull
@@ -58,7 +91,7 @@ class ProductFlavorContainerImpl implements ProductFlavorContainer, Serializable
@NonNull
@Override
- public SourceProvider getTestSourceProvider() {
- return testSourceProvider;
+ public Collection<SourceProviderContainer> getExtraSourceProviders() {
+ return extraSourceProviders;
}
}