/* * Copyright (c) 2017 the original author or authors. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.buildship.core.configuration; import java.io.File; import java.util.List; import com.gradleware.tooling.toolingclient.GradleDistribution; import org.eclipse.core.resources.IProject; import org.eclipse.debug.core.ILaunchConfiguration; /** * Defines how to access a hierarchy of preferences for the Gradle projects in the workspace. * * @author Donat Csikos */ public interface ConfigurationManager { WorkspaceConfiguration loadWorkspaceConfiguration(); void saveWorkspaceConfiguration(WorkspaceConfiguration configuration); BuildConfiguration createBuildConfiguration(File rootProjectDirectory, GradleDistribution gradleDistribution, boolean overrideWorkspaceSettings, boolean buildScansEnabled, boolean offlineMode); BuildConfiguration loadBuildConfiguration(File rootProject); void saveBuildConfiguration(BuildConfiguration configuration); ProjectConfiguration createProjectConfiguration(BuildConfiguration configuration, File projectDir); ProjectConfiguration loadProjectConfiguration(IProject project); void saveProjectConfiguration(ProjectConfiguration configuration); void deleteProjectConfiguration(IProject project); RunConfiguration loadRunConfiguration(ILaunchConfiguration launchConfiguration); RunConfiguration createDefaultRunConfiguration(BuildConfiguration configuration); RunConfiguration createRunConfiguration(BuildConfiguration configuration, List<String> tasks, File javaHome, GradleDistribution gradleDistribution, List<String> jvmArguments, List<String> arguments, boolean showExecutionsView, boolean showConsoleView, boolean overrideBuildSettings, boolean buildScansEnabled, boolean offlineMode); }