tim@335: /**
tim@335:  *
tim@335:  */
tim@335: package de.intevation.gnv.state;
tim@335: 
tim@335: import java.io.Serializable;
tim@335: import java.util.Collection;
tim@335: 
tim@335: import org.w3c.dom.Document;
tim@335: import org.w3c.dom.Node;
tim@335: 
tim@335: import de.intevation.artifacts.CallMeta;
tim@335: import de.intevation.gnv.state.exception.StateException;
tim@335: 
tim@335: /**
tim@335:  * @author Tim Englich <tim.englich@intevation.de>
tim@335:  * 
tim@335:  */
tim@335: public interface State extends Serializable {
tim@335: 
tim@335:     public void setup(Node configuration);
tim@335: 
tim@335:     public String getID();
tim@335: 
tim@335:     public String getDescription();
tim@335: 
tim@335:     public void describe(Document document, Node rootNode, 
tim@335:                          CallMeta callMeta, String uuid);
tim@335: 
tim@335:     public void setParent(State state);
tim@335: 
tim@335:     public State getParent();
tim@335: 
tim@335:     public Collection<InputValue> getRequiredInputValues();
tim@335: 
tim@335:     public void putInputData(Collection<InputData> inputData, 
tim@335:                              String uuid)throws StateException;
tim@335: 
tim@335:     public Collection<InputData> getInputData() throws StateException;
tim@335: 
tim@335:     public void advance(String uuid, CallMeta callMeta)
tim@335:                                                     throws StateException;
tim@335:     public void initialize(String uuid, CallMeta callMeta)
tim@335:                                                     throws StateException;
tim@335:     
tim@335: 
tim@335: }