[ https://issues.apache.org/jira/browse/SCXML-47?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Heuer updated SCXML-47: ------------------------------- Attachment: state-machine-support-src.tar.gz > 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 > Attachments: state-machine-support-src.tar.gz > > > 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]