package de.espend.idea.php.quality.phpstan.configuration; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; import com.jetbrains.php.tools.quality.QualityToolConfigurationManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; /** * @author Daniel Espendiller <[email protected]> */ public class PhpStanValidatorConfigurationManager extends QualityToolConfigurationManager<PhpStanValidatorConfiguration> { public PhpStanValidatorConfigurationManager(@Nullable Project project) { super(project); if (project != null) { this.myProjectManager = ServiceManager.getService(project, ProjectPhpStanValidatorConfigurationBaseManager.class); } this.myApplicationManager = ServiceManager.getService(AppPhpStanValidatorConfigurationBaseManager.class); } @NotNull protected List<PhpStanValidatorConfiguration> getDefaultProjectSettings() { ProjectPhpStanValidatorConfigurationBaseManager service = ServiceManager.getService( ProjectManager.getInstance().getDefaultProject(), ProjectPhpStanValidatorConfigurationBaseManager.class ); return service.getSettings(); } public static PhpStanValidatorConfigurationManager getInstance(@NotNull Project project) { return ServiceManager.getService(project, PhpStanValidatorConfigurationManager.class); } @State( name = "PhpStanValidator", storages = {@Storage("php.xml")} ) static class AppPhpStanValidatorConfigurationBaseManager extends PhpStanValidatorConfigurationBaseManager { AppPhpStanValidatorConfigurationBaseManager() {} } @State( name = "PhpStanValidator", storages = {@Storage("php.xml")} ) static class ProjectPhpStanValidatorConfigurationBaseManager extends PhpStanValidatorConfigurationBaseManager { ProjectPhpStanValidatorConfigurationBaseManager() {} } }