public ProjectModelFetcher(NbGradleProject project, GradleTarget gradleTarget) { this.settingsFile = NbGenericModelInfo.findSettingsGradle(project.getProjectDirectoryAsFile()); List<NbGradleExtensionRef> extensions = project.getExtensionRefs(); this.toolingModelNeeds = CollectionUtils.newHashMap(extensions.size()); Map<Object, List<GradleBuildInfoQuery<?>>> buildInfoRequests = Collections.emptyMap(); Map<Object, List<GradleProjectInfoQuery<?>>> projectInfoRequests = new HashMap<>(); List<Class<?>> models = new LinkedList<>(); for (NbGradleExtensionRef extensionRef : extensions) { String extensionName = extensionRef.getName(); GradleModelDefQuery2 modelQuery = extensionRef.getModelNeeds().getQuery2(); GradleModelDef modelDef = modelQuery.getModelDef(gradleTarget); models.addAll(modelDef.getToolingModels()); addAllToMultiMap(extensionName, modelDef.getProjectInfoQueries(), projectInfoRequests); addAllToMultiMap(extensionName, modelDef.getToolingModels(), toolingModelNeeds); } modelFetcher = new GenericModelFetcher(buildInfoRequests, projectInfoRequests, models); }