package fr.ens.biologie.genomique.eoulsan.galaxytools.executorinterpreters; import static com.google.common.base.Preconditions.checkNotNull; import java.io.IOException; import java.util.List; import com.google.common.base.Objects; import fr.ens.biologie.genomique.eoulsan.util.StringUtils; import fr.ens.biologie.genomique.eoulsan.util.process.DockerManager; import fr.ens.biologie.genomique.eoulsan.util.process.SimpleProcess; /** * This class define a Docker executor interpreter. * @author Laurent Jourdren * @since 2.0 */ public class DockerExecutorInterpreter extends AbstractExecutorInterpreter { public static final String INTERPRETER_NAME = "docker"; private final String dockerImage; @Override public String getName() { return INTERPRETER_NAME; } @Override public List<String> createCommandLine(final String arguments) { checkNotNull(arguments, "arguments argument cannot be null"); return StringUtils.splitShellCommandLine(arguments); } @Override protected SimpleProcess newSimpleProcess() throws IOException { return DockerManager.getInstance().createImageInstance(this.dockerImage); } // // Object methods // @Override public String toString() { return Objects.toStringHelper(this).add("dockerImage", dockerImage) .toString(); } // // Constructor // /** * Constructor. * @param dockerImage Docker image */ public DockerExecutorInterpreter(final String dockerImage) { checkNotNull(dockerImage, "dockerImage argument cannot be null"); this.dockerImage = dockerImage; } }