package jetbrains.mps.baseLanguage.unitTest.execution.client; /*Generated by MPS */ import org.jetbrains.mps.annotations.Immutable; import java.util.List; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.LinkedList; import org.jetbrains.annotations.NotNull; import org.jetbrains.mps.openapi.module.SRepository; import jetbrains.mps.smodel.ModelAccessHelper; import jetbrains.mps.util.Computable; import org.jetbrains.mps.openapi.module.SModule; import org.jetbrains.mps.openapi.persistence.PersistenceFacade; import jetbrains.mps.baseLanguage.execution.api.Java_Command; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.baseLanguage.unitTest.execution.server.DefaultTestExecutor; @Immutable public final class TestParameters { private final Class<?> myExecutorClass; private final List<String> myClassPath; private final List<String> myAdditionalJvmArgs; public TestParameters(Class<?> executorClass, List<String> classPath, List<String> jvmArgs) { myExecutorClass = executorClass; myClassPath = classPath; myAdditionalJvmArgs = jvmArgs; } public TestParameters(Class<?> executorClass, List<String> classPath) { this(executorClass, classPath, ListSequence.fromList(new LinkedList<String>())); } public Class<?> getExecutorClass() { return myExecutorClass; } public List<String> getJvmArgs() { return ListSequence.fromList(myAdditionalJvmArgs).asUnmodifiable(); } public List<String> getClassPath() { return ListSequence.fromList(myClassPath).asUnmodifiable(); } public boolean comprises(@NotNull TestParameters other) { if (this == other) { return true; } if (other.getExecutorClass().isAssignableFrom(getExecutorClass())) { if (ListSequence.fromList(myClassPath).containsSequence(ListSequence.fromList(other.getClassPath()))) { if (ListSequence.fromList(myAdditionalJvmArgs).containsSequence(ListSequence.fromList(other.getJvmArgs()))) { return true; } } } return false; } public static TestParameters calcDefault(final SRepository repo) { List<String> classPath = new ModelAccessHelper(repo).runReadAction(new Computable<List<String>>() { public List<String> compute() { SModule m = PersistenceFacade.getInstance().createModuleReference("8b958198-128f-4136-80e5-ca9777caa869(jetbrains.mps.baseLanguage.unitTest.execution.startup)").resolve(repo); return Java_Command.getClasspath(Sequence.<SModule>singleton(m)); } }); return new TestParameters(DefaultTestExecutor.class, classPath); } }