| 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."); |
| } |
| |
| } |