package name.admitriev.jhelper.components; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.ProjectComponent; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import org.jetbrains.annotations.NotNull; @State(name = "Configurator", storages = @Storage("/JHelper.xml")) public class Configurator implements ProjectComponent, PersistentStateComponent<Configurator.State> { public Configurator() { state = new Configurator.State(); } @Override public @NotNull String getComponentName() { return "Configurator"; } @Override public @NotNull Configurator.State getState() { return state; } @SuppressWarnings("ParameterHidesMemberVariable") @Override public void loadState(@NotNull Configurator.State state) { this.state = state; } private Configurator.State state; public static class State { private String author; private String tasksDirectory; private String outputFile; private String runFile; private boolean codeEliminationOn; private boolean codeReformattingOn; public State( String author, String tasksDirectory, String outputFile, String runFile, boolean codeEliminationOn, boolean codeReformattingOn ) { this.author = author; this.tasksDirectory = tasksDirectory; this.outputFile = outputFile; this.runFile = runFile; this.codeEliminationOn = codeEliminationOn; this.codeReformattingOn = codeReformattingOn; } public State() { this("", "tasks", "output/main.cpp", "testrunner/main.cpp", false, false); } public String getAuthor() { return author; } public String getTasksDirectory() { return tasksDirectory; } public String getOutputFile() { return outputFile; } public String getRunFile() { return runFile; } public boolean isCodeEliminationOn() { return codeEliminationOn; } public boolean isCodeReformattingOn() { return codeReformattingOn; } @Deprecated public void setAuthor(String author) { this.author = author; } @Deprecated public void setTasksDirectory(String tasksDirectory) { this.tasksDirectory = tasksDirectory; } @Deprecated public void setOutputFile(String outputFile) { this.outputFile = outputFile; } @Deprecated public void setRunFile(String runFile) { this.runFile = runFile; } @Deprecated public void setCodeEliminationOn(boolean codeEliminationOn) { this.codeEliminationOn = codeEliminationOn; } @Deprecated public void setCodeReformattingOn(boolean codeReformattingOn) { this.codeReformattingOn = codeReformattingOn; } } }