blob: 49838b14c6c59da3069b6428274a66b317d57ae3 [file] [log] [blame]
package org.eclipse.epsilon.executors;
import java.io.File;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.eclipse.epsilon.common.parse.problem.ParseProblem;
import org.eclipse.epsilon.eol.IEolModule;
import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
import org.eclipse.epsilon.eol.models.IModel;
import org.eclipse.epsilon.eol.types.IToolNativeTypeDelegate;
import org.eclipse.epsilon.erl.IErlModule;
import org.eclipse.epsilon.erl.execute.RuleProfiler;
public class ExecutorHelper implements EpsilonLanguageExecutor<Object> {
final IEolModule module;
public ExecutorHelper(IEolModule module) {
this.module = module;
}
@Override
public boolean parse(File file) throws Exception {
return module.parse(file);
}
@Override
public boolean parse(String code) throws Exception {
return module.parse(code);
}
@Override
public List<ParseProblem> getParseProblems() {
return module.getParseProblems();
}
@Override
public void addModels(Collection<IModel> models) {
this.module.getContext().getModelRepository().addModels(models.toArray(new IModel[0]));
}
@Override
public void addParamters(Map<String, ?> parameters) {
this.module.getContext().getFrameStack().put(parameters, true);
}
@Override
public void addNativeTypeDelegates(Collection<IToolNativeTypeDelegate> nativeDelegates) {
this.module.getContext().getNativeTypeDelegates().addAll(nativeDelegates);
}
@Override
public Optional<RuleProfiler> getRuleProfiler() {
if (module instanceof IErlModule) {
return Optional.of(((IErlModule)module).getContext().getExecutorFactory().getRuleProfiler());
}
return Optional.empty();
}
@Override
public void disposeModelRepository() {
module.getContext().getModelRepository().dispose();
}
@Override
public void clearModelRepository() {
module.getContext().getModelRepository().getModels().clear();
}
@Override
public void dispose() {
module.getContext().dispose();
}
@Override
public void preProcess() { }
@Override
public void postProcess() { }
@Override
public Object execute() throws EolRuntimeException {
throw new RuntimeException("The ExecutorHelper does not support the execute method.");
}
}