/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.utils.executor.context.impl;
import de.rcenvironment.core.utils.executor.context.ExecutorContextFactory;
import de.rcenvironment.core.utils.executor.context.spi.ExecutorContext;
import de.rcenvironment.core.utils.executor.context.spi.SandboxStrategy;
/**
* Implementation of a {@link ExecutorContextFactory} that creates {@link LocalCommandLineExecutor}
* instances, and can provide either matching {@link ContinuousSandboxStrategy} or
* {@link IndividualSandboxStrategy} instances, depending on a configuration setting.
*
* @author Robert Mischke
*/
public class LocalExecutorContextFactory implements ExecutorContextFactory {
private boolean useContiuousSandbox;
/**
* @param useContiuousSandbox set to true to receive {@link ContinuousSandboxStrategy} instances
* from {@link #createSandboxStrategy(ExecutorContext)}; false to receive
* {@link IndividualSandboxStrategy} instances
*/
public LocalExecutorContextFactory(boolean useContiuousSandbox) {
this.useContiuousSandbox = useContiuousSandbox;
}
@Override
public ExecutorContext createExecutorContext() {
return new LocalExecutorContext();
}
@Override
public SandboxStrategy createSandboxStrategy(ExecutorContext executorContext) {
if (useContiuousSandbox) {
return new ContinuousSandboxStrategy(executorContext);
} else {
return new IndividualSandboxStrategy(executorContext);
}
}
}