All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.parallelj.launching.Launch Maven / Gradle / Ivy

Go to download

ParallelJ is a Java framework for parallel computing. It provides flow modeling and execution. This projet covers the launching of a ParallelJ program purpose. It allows to launch easily the programs, and access them remotely.

The newest version!
package org.parallelj.launching;

import java.util.Map;
import java.util.concurrent.ExecutorService;

import org.parallelj.Programs.ProcessHelper;

/**
 * The Launch entry of a Program. A Launch is specific to an execution of a
 * {@link org.parallelj.Program Program}.
 * 
 * @param 
 *            The type of the Program to use with this Launch.
 */
public interface Launch {

	/**
	 * Allow to specify a value for an attribute of the
	 * {@link org.parallelj.Program Program} associated with this Launch. The attribute
	 * must be annotated with {@link In}.
	 * 
	 * @param name
	 *            The Program attribute name.
	 * @param value
	 *            The value for the attribute as a String.
	 * 
	 * @return This Launch instance.
	 */
	public void addParameter(String name, String value);

	/**
	 * Allow to specify values for attributes of the
	 * {@link org.parallelj.Program Program} associated with this Launch. The attributes
	 * must be annotated with {@link In}
	 * 
	 * @param dataMap
	 *            A map with the Program attributes values (key : the attribute
	 *            name; value : the attibute value as a String)
	 * 
	 * @return This Launch instance.
	 */
	public Launch addParameters(Map dataMap);

	/**
	 * Launch a Program and wait until it's terminated. Note that this method
	 * can be called only once for a same {@link org.parallelj.Program Program}. If you
	 * want to launch again the {@link org.parallelj.Program Program} associated with
	 * this Launch, another instance of Launch be created using
	 * {@link Launcher#newLaunch(Class)}
	 * 
	 * @return This Launch instance.
	 * 
	 * @throws LaunchException
	 */
	public Launch synchLaunch() throws LaunchException;

	/**
	 * Launch a Program and continue. Note that this method can be called only
	 * once for a same {@link org.parallelj.Program Program}. If you want to launch
	 * again the {@link org.parallelj.Program Program} associated with this Launch,
	 * another instance of Launch be created using
	 * {@link Launcher#newLaunch(Class)}
	 * 
	 * @return This Launch instance.
	 * 
	 * @throws LaunchException
	 */
	public Launch aSynchLaunch() throws LaunchException;

	/**
	 * Get the {@link LaunchResult} created during the Launch execution.
	 * 
	 * @return This Launch instance.
	 */
	public LaunchResult getLaunchResult();

	/**
	 * Return the {@link org.parallelj.Program Program} attributes annotated with
	 * {@link In} and its values.
	 * 
	 * @return This Launch instance.
	 */
	public Map getParameters();

	/**
	 * Get the {@link org.parallelj.Programs.ProcessHelper ProcessHelper} created internally
	 * by this Launch.
	 * 
	 * @return This Launch instance.
	 */
	public ProcessHelper getProcessHelper();

	/**
	 * Get the {@link org.parallelj.Program Program} instance created by this Launch.
	 * 
	 * @return This Launch instance.
	 */
	public T getJobInstance();

	/**
	 * Get the unique identifier created by this launch execution.
	 * 
	 * @return This Launch instance.
	 */
	public String getLaunchId();

	/***
	 * Get the {@link ExecutorService} passed as an argument to this Launch
	 * creation using {@link Launcher#newLaunch(Class, ExecutorService)}
	 * 
	 * @return This Launch instance.
	 */
	public ExecutorService getExecutorService();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy