/*
*
* Copyright (c) 2007
* Adrian Michel
* http://www.tradery.com
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation. Adrian Michel makes no
* representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied warranty.
*/
package com.tradery.contentmodel;
/**
* Abstract base class for all the state machines
* This interface needs not be visible outside the package
*/
interface AbstractStateMachine
{
/**
* Generates a new state object, set to the initial state
*
* @return The state object
*/
abstract AbstractState getInitialState();
public abstract void dump();
/**
* Sets the final states in the state machine
*
* @todo this should be changes so it uses some typed value instead of
* Object - a new interface should be defined and used for final states
* @param o
*/
abstract void setFinalStates( Object o );
}