// Path: src/name/admitriev/jhelper/components/Configurator.java
// @State(name = "Configurator", storages = @Storage("JHelper.xml"))
// @Service(Service.Level.PROJECT)
// public final class Configurator implements PersistentStateComponent<Configurator.State> {
// 	public Configurator() {
// 		state = new Configurator.State();
// 	}
// 
// 	@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;
// 		}
// 	}
// }


import com.intellij.openapi.project.Project;
import name.admitriev.jhelper.components.Configurator;
import net.egork.chelper.task.StreamConfiguration;
import net.egork.chelper.task.Test;
import net.egork.chelper.task.TestType;
import java.util.Arrays;

	public String getCppPath() {
		return cppPath;
	}

	public StreamConfiguration getInput() {
		return input;
	}

	public StreamConfiguration getOutput() {
		return output;
	}

	public Test[] getTests() {
		return Arrays.copyOf(tests, tests.length);
	}

	public static TaskData emptyTaskData(Project project) {
		return new TaskData(
				"",
				"",
				String.format(defaultCppPathFormat(project), ""),
				StreamConfiguration.STANDARD,
				StreamConfiguration.STANDARD,
				TestType.SINGLE,
				new Test[0]
		);
	}

	public static String defaultCppPathFormat(Project project) {
// Path: src/name/admitriev/jhelper/components/Configurator.java
// @State(name = "Configurator", storages = @Storage("JHelper.xml"))
// @Service(Service.Level.PROJECT)
// public final class Configurator implements PersistentStateComponent<Configurator.State> {
// 	public Configurator() {
// 		state = new Configurator.State();
// 	}
// 
// 	@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;
// 		}
// 	}
// }


// Path: src/name/admitriev/jhelper/task/TaskData.java
import com.intellij.openapi.project.Project;
import name.admitriev.jhelper.components.Configurator;
import net.egork.chelper.task.StreamConfiguration;
import net.egork.chelper.task.Test;
import net.egork.chelper.task.TestType;
import java.util.Arrays;


	public String getCppPath() {
		return cppPath;
	}

	public StreamConfiguration getInput() {
		return input;
	}

	public StreamConfiguration getOutput() {
		return output;
	}

	public Test[] getTests() {
		return Arrays.copyOf(tests, tests.length);
	}

	public static TaskData emptyTaskData(Project project) {
		return new TaskData(
				"",
				"",
				String.format(defaultCppPathFormat(project), ""),
				StreamConfiguration.STANDARD,
				StreamConfiguration.STANDARD,
				TestType.SINGLE,
				new Test[0]
		);
	}

	public static String defaultCppPathFormat(Project project) {
		Configurator configurator = project.getService(Configurator.class);