/*
* This file is part of the OSMembrane project.
* More informations under www.osmembrane.de
*
* The project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0.
* for more details about the license see http://www.osmembrane.de/license/
*
* Source: $HeadURL$ ($Revision$)
* Last changed: $Date$
*/
package de.osmembrane.model.pipeline;
import java.io.Serializable;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import de.osmembrane.model.xml.XMLPipe;
import de.osmembrane.model.xml.XMLTask;
/**
* Represents a task inside of a {@link AbstractFunction}.
*
* @author jakob_jarosch
*/
public abstract class AbstractTask extends Observable implements Observer,
Serializable {
private static final long serialVersionUID = 2011011821110001L;
/**
* Returns the parent function to which the task belongs to.
*
* @return the parental function
*/
public abstract AbstractFunction getParent();
/**
* Returns the description of the {@link AbstractTask}.
*
* @return description of the task
*/
public abstract String getDescription();
/**
* Returns the name of the {@link AbstractTask}.
*
* @return name of the task
*/
public abstract String getName();
/**
* Returns the short name of the {@link AbstractTask}.
*
* @return short name of the task
*/
public abstract String getShortName();
/**
* Returns a human readable name for the {@link AbstractTask}.
*
* @return human readable name
*/
public abstract String getFriendlyName();
/**
* Returns the uri to the help website for the {@link AbstractTask}.
*
* @return uri to the help website
*/
public abstract String getHelpURI();
/**
* Returns the parameters for the {@link AbstractTask}.
*
* @return array of parameters
*/
public abstract AbstractParameter[] getParameters();
/**
* Returns the bbox string.
*
* @return the bbox string, and if task has no bbox parameter NULL
*/
public abstract String getBBox();
/**
* Sets the bbox value to the given one.
*
* @param bbox
* given bbox string
*
* @throws ArrayStoreException
* if bbox has not not 4 comma separated parameters
*/
public abstract boolean setBBox(String bbox);
/**
* Returns the input pipes for the {@link XMLTask} (required for
* {@link AbstractFunction}).
*
* @return input pipes of the {@link XMLTask}
*/
protected abstract List<XMLPipe> getInputPipe();
/**
* Returns the output pipes for the {@link XMLTask} (required for
* {@link AbstractFunction}).
*
* @return output pipes of the {@link XMLTask}
*/
protected abstract List<XMLPipe> getOutputPipe();
/**
* Copies the task.
*/
public abstract AbstractTask copy(CopyType type,
AbstractFunction newFunction);
}