@NotNull @Override public GradleProject resolveProjectInfo( @NotNull final GradleTaskId id, @NotNull final String projectPath, final boolean downloadLibraries) throws RemoteException, GradleApiException, IllegalArgumentException, IllegalStateException { return myHelper.execute( id, GradleTaskType.RESOLVE_PROJECT, projectPath, new Function<ProjectConnection, GradleProject>() { @Nullable @Override public GradleProject fun(ProjectConnection connection) { return doResolveProjectInfo(id, projectPath, connection, downloadLibraries); } }); }
@NotNull private GradleProject doResolveProjectInfo( @NotNull final GradleTaskId id, @NotNull String projectPath, @NotNull ProjectConnection connection, boolean downloadLibraries) throws IllegalArgumentException, IllegalStateException { ModelBuilder<? extends IdeaProject> modelBuilder = myHelper.getModelBuilder(id, connection, downloadLibraries); IdeaProject project = modelBuilder.get(); GradleProject result = populateProject(project, projectPath); // We need two different steps ('create' and 'populate') in order to handle module dependencies, // i.e. when one module is // configured to be dependency for another one, corresponding dependency module object should be // available during // populating dependent module object. Map<String, Pair<GradleModule, IdeaModule>> modules = createModules(project, result); populateModules(modules.values(), result); myLibraryNamesMixer.mixNames(result.getLibraries()); return result; }
@NotNull @Override public Map<GradleTaskType, Set<GradleTaskId>> getTasksInProgress() throws RemoteException { return myHelper.getTasksInProgress(); }
@Override public boolean isTaskInProgress(@NotNull GradleTaskId id) throws RemoteException { return myHelper.isTaskInProgress(id); }
@Override public void setNotificationListener(@NotNull GradleTaskNotificationListener notificationListener) throws RemoteException { myHelper.setNotificationListener(notificationListener); }
@Override public void setSettings(@NotNull RemoteGradleProcessSettings settings) throws RemoteException { myHelper.setSettings(settings); }