tim@337: package de.intevation.gnv.transition;
tim@337: 
tim@337: import java.io.Serializable;
tim@337: 
tim@337: import org.w3c.dom.Node;
tim@337: 
tim@337: import de.intevation.gnv.state.State;
tim@337: 
tim@337: /**
tim@337:  * 
tim@337:  * @author Tim Englich <tim.englich@intevation.de>
tim@337:  *
tim@337:  */
tim@337: public interface Transition extends Serializable{
tim@337:     
tim@337:     /**
tim@337:      * Returns the ID of the State from which the Transition could be used
tim@337:      * @return the ID of the State from which the Transition could be used
tim@337:      */
tim@337:     public String getFrom();
tim@337:     
tim@337:     /**
tim@337:      * Returns the ID of the State where it is possible to go as next.
tim@337:      * @return the ID of the State where it is possible to go as next.
tim@337:      */
tim@337:     public String getTo();
tim@337:     
tim@337:     /**
tim@337:      * Determines if it is possible to go along this Transition or not.
tim@337:      * @param state the current State
tim@337:      * @return
tim@337:      */
tim@337:     public boolean isValid(State state);
tim@337:     
tim@337:     /**
tim@337:      * Configures the Transition.
tim@337:      * @param configuration
tim@337:      */
tim@337:     public void setup(Node configuration);
tim@337: 
tim@337: }