blob: 241347348f265d9363d257fabdaff977f581c947 [file] [log] [blame]
package com.intellij.openapi.externalSystem.service.settings;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* @author Denis Zhdanov
* @since 7/16/13 3:36 PM
*/
public interface ExternalSystemConfigLocator {
ExtensionPointName<ExternalSystemConfigLocator> EP_NAME = ExtensionPointName.create("com.intellij.externalSystemConfigLocator");
@NotNull ProjectSystemId getTargetExternalSystemId();
/**
* Allows to adjust target external system config file.
* <p/>
* Example: 'gradle' external system stores config file parent as config path and we might want to locate exact config file
* given it's directory file.
*
* @param configPath base config file
* @return config file to use (if any)
*/
@Nullable
VirtualFile adjust(@NotNull VirtualFile configPath);
/**
* Returns all configuration files used by external system to build the project.
*
* @param externalProjectSettings external system project settings
* @return external system project config files
*/
@NotNull
List<VirtualFile> findAll(@NotNull ExternalProjectSettings externalProjectSettings);
}