package com.android.build.gradle;
import com.android.annotations.NonNull;
import com.android.build.gradle.api.ApplicationVariant;
import com.android.build.gradle.api.BaseVariant;
import com.android.build.gradle.internal.ExtraModelInfo;
import com.android.build.gradle.internal.SdkHandler;
import com.android.build.gradle.internal.dsl.BuildType;
import com.android.build.gradle.internal.dsl.ProductFlavor;
import com.android.build.gradle.internal.dsl.SigningConfig;
import com.android.builder.core.AndroidBuilder;
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.internal.DefaultDomainObjectSet;
import org.gradle.api.internal.project.ProjectInternal;
import org.gradle.internal.reflect.Instantiator;
/**
* 'android' extension for 'com.android.application' project.
*/
public class AppExtension extends TestedExtension {
private final DefaultDomainObjectSet<ApplicationVariant> applicationVariantList
= new DefaultDomainObjectSet<ApplicationVariant>(ApplicationVariant.class);
public AppExtension(@NonNull ProjectInternal project, @NonNull Instantiator instantiator,
@NonNull AndroidBuilder androidBuilder, @NonNull SdkHandler sdkHandler,
@NonNull NamedDomainObjectContainer<BuildType> buildTypes,
@NonNull NamedDomainObjectContainer<ProductFlavor> productFlavors,
@NonNull NamedDomainObjectContainer<SigningConfig> signingConfigs,
@NonNull ExtraModelInfo extraModelInfo, boolean isLibrary) {
super(project, instantiator, androidBuilder, sdkHandler, buildTypes, productFlavors,
signingConfigs, extraModelInfo, isLibrary);
}
/**
* Returns the list of Application variants. Since the collections is built after evaluation, it
* should be used with Gradle's <code>all</code> iterator to process future items.
*/
public DefaultDomainObjectSet<ApplicationVariant> getApplicationVariants() {
return applicationVariantList;
}
@Override
public void addVariant(BaseVariant variant) {
applicationVariantList.add((ApplicationVariant) variant);
}
}