use of com.android.tools.idea.gradle.dsl.parser.elements.GradleDslElement in project android by JetBrains.
the class DependenciesModel method all.
/**
* @return all the dependencies (artifact, module, etc.)
* WIP: Do not use.
*/
@NotNull
public List<DependencyModel> all() {
List<DependencyModel> dependencies = Lists.newArrayList();
for (String configurationName : myDslElement.getProperties()) {
GradleDslElementList list = myDslElement.getPropertyElement(configurationName, GradleDslElementList.class);
if (list != null) {
for (GradleDslElement element : list.getElements(GradleDslElement.class)) {
dependencies.addAll(ArtifactDependencyModel.create(element));
if (element instanceof GradleDslMethodCall) {
GradleDslMethodCall methodCall = (GradleDslMethodCall) element;
dependencies.addAll(ModuleDependencyModel.create(configurationName, methodCall));
}
}
}
}
return dependencies;
}
use of com.android.tools.idea.gradle.dsl.parser.elements.GradleDslElement in project android by JetBrains.
the class ProductFlavorDslElement method addParsedElement.
@Override
public void addParsedElement(@NotNull String property, @NotNull GradleDslElement element) {
if (property.equals("resConfigs") || property.equals("resConfig")) {
addToParsedExpressionList("resConfigs", element);
return;
}
if (property.equals("testInstrumentationRunnerArguments")) {
if (!(element instanceof GradleDslExpressionMap)) {
return;
}
GradleDslExpressionMap testInstrumentationRunnerArgumentsElement = getPropertyElement("testInstrumentationRunnerArguments", GradleDslExpressionMap.class);
if (testInstrumentationRunnerArgumentsElement == null) {
setParsedElement("testInstrumentationRunnerArguments", element);
} else {
testInstrumentationRunnerArgumentsElement.setPsiElement(element.getPsiElement());
GradleDslExpressionMap elementsToAdd = (GradleDslExpressionMap) element;
for (Map.Entry<String, GradleDslElement> entry : elementsToAdd.getPropertyElements().entrySet()) {
testInstrumentationRunnerArgumentsElement.setParsedElement(entry.getKey(), entry.getValue());
}
}
return;
}
if (property.equals("testInstrumentationRunnerArgument")) {
if (!(element instanceof GradleDslExpressionList)) {
return;
}
GradleDslExpressionList gradleDslExpressionList = (GradleDslExpressionList) element;
List<GradleDslExpression> elements = gradleDslExpressionList.getExpressions();
if (elements.size() != 2) {
return;
}
String key = elements.get(0).getValue(String.class);
if (key == null) {
return;
}
GradleDslExpression value = elements.get(1);
GradleDslExpressionMap testInstrumentationRunnerArgumentsElement = getPropertyElement("testInstrumentationRunnerArguments", GradleDslExpressionMap.class);
if (testInstrumentationRunnerArgumentsElement == null) {
testInstrumentationRunnerArgumentsElement = new GradleDslExpressionMap(this, "testInstrumentationRunnerArguments");
}
testInstrumentationRunnerArgumentsElement.setParsedElement(key, value);
return;
}
super.addParsedElement(property, element);
}
use of com.android.tools.idea.gradle.dsl.parser.elements.GradleDslElement in project android by JetBrains.
the class GradleBuildModel method populateWithParentModuleSubProjectsProperties.
private static void populateWithParentModuleSubProjectsProperties(@NotNull GradleBuildDslFile buildDslFile) {
GradleSettingsModel gradleSettingsModel = GradleSettingsModel.get(buildDslFile.getProject());
if (gradleSettingsModel == null) {
return;
}
String modulePath = gradleSettingsModel.moduleWithDirectory(buildDslFile.getDirectoryPath());
if (modulePath == null) {
return;
}
GradleBuildModel parentModuleModel = gradleSettingsModel.getParentModuleModel(modulePath);
if (parentModuleModel == null) {
return;
}
GradleDslFile parentModuleDslFile = parentModuleModel.myGradleDslFile;
buildDslFile.setParentModuleDslFile(parentModuleDslFile);
SubProjectsDslElement subProjectsDslElement = parentModuleDslFile.getPropertyElement(SUBPROJECTS_BLOCK_NAME, SubProjectsDslElement.class);
if (subProjectsDslElement == null) {
return;
}
buildDslFile.setParsedElement(SUBPROJECTS_BLOCK_NAME, subProjectsDslElement);
for (Map.Entry<String, GradleDslElement> entry : subProjectsDslElement.getPropertyElements().entrySet()) {
buildDslFile.setParsedElement(entry.getKey(), entry.getValue());
}
}
Aggregations