
package Counter;

abstract class ACounterState
{
	/**
	 * @param host 
	 */
	abstract Counter decrement(Counter host);

	/**
	 * @param host 
	 */
	abstract Counter increment(Counter host);

	/**
	 * @param host 
	 */
	abstract int getCount(Counter host);

	/**
	 * @param host 
	 * @param count 
	 */
	abstract void setCount(Counter host, int count);

	/**
	 * @param host 
	 * @param algo 
	 * @param param 
	 */
	abstract Object execute(Counter host, ICounterAlgo algo, Object param);
}

