Provide a state machine support class to allow for delegation. --------------------------------------------------------------
Key: SCXML-47 URL: https://issues.apache.org/jira/browse/SCXML-47 Project: Commons SCXML Issue Type: Improvement Reporter: Michael Heuer Priority: Minor This is not completely thought out yet, but if folks like the idea I might persue it further. I would like to use AbstractStateMachine but cannot extend from it: class B extends A /*, AbstractStateMachine */ { // copy source from AbstractStateMachine here } I propose here a StateMachineSupport class that provides for use by subclassing and for use by delegation. The constructors are a little messy, but in the end I have public class StateMachineSupport { // use by subclassing protected StateMachineSupport(...) { } // use by delegation public StateMachineSupport(Object delegator, ...) { } // ... methods from AbstractStateMachine } public abstract class AbstractStateMachine extends StateMachineSupport { protected AbstractStateMachine(...) { super(...); } } // use by subclassing class ConcreteStateMachine extends AbstractStateMachine { ConcreteStateMachine() { super(..."stopwatch.xml"); } public void reset() { ... } public void running() { ... } public void paused() { ... } public void stopped() { ... } } // use by delegation class DelegatingStateMachine extends SomethingElse { StateMachineSupport delegate; DelegatingStateMachine() { delegate = new StateMachineSupport(this, ..."stopwatch.xml"); } public void reset() { ... } public void running() { ... } public void paused() { ... } public void stopped() { ... } } StateMachineSupport.java, AbstractStateMachine2.java, StateMachineSupportTest.java, and AbstractStateMachine2Test.java attached. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]