private AndroidProject createAndroidProject(@NonNull Project gradleProject) { String modelName = AndroidProject.class.getName(); ToolingModelBuilder modelBuilder = toolingRegistry.getBuilder(modelName); assert modelBuilder != null; return (AndroidProject) modelBuilder.buildAll(modelName, gradleProject); }
public ToolingModelBuilder getBuilder(String modelName) throws UnsupportedOperationException { ToolingModelBuilder match = null; for (ToolingModelBuilder builder : builders) { if (builder.canBuild(modelName)) { if (match != null) { throw new UnsupportedOperationException(String.format("Multiple builders are available to build a model of type '%s'.", modelName)); } match = builder; } } if (match != null) { return match; } if (parent != null) { return parent.getBuilder(modelName); } throw new UnknownModelException(String.format("No builders are available to build a model of type '%s'.", modelName)); }
@Nullable private static AndroidProject createAndroidProject( @NonNull org.gradle.api.Project gradleProject) { PluginContainer pluginContainer = gradleProject.getPlugins(); for (Plugin p : pluginContainer) { if (p instanceof ToolingRegistryProvider) { ToolingModelBuilderRegistry registry; registry = ((ToolingRegistryProvider) p).getModelBuilderRegistry(); String modelName = AndroidProject.class.getName(); ToolingModelBuilder builder = registry.getBuilder(modelName); assert builder.canBuild(modelName) : modelName; return (AndroidProject) builder.buildAll(modelName, gradleProject); } } return null; }