On Fri, May 6, 2016 at 2:56 AM, Mansour Al Akeel <mansour.alak...@gmail.com> wrote: > Thank you Woonsan, > The use case is to report transition failure or invalid path. > Using the listener is good, but it wont be triggered unless the > transition happens. > For example this was written to test commons SCXML 1: > > @Override > public boolean fireEvent(String event) { > List<Transition> lst = > this.getCurrentState().getTransitionsList(event); > if (lst == null) { > System.out.println("unknown event: " + event); > return false; // this should return true if final only > } > State before = this.getCurrentState(); > boolean evnetFired = super.fireEvent(event); > > State after = this.getCurrentState(); > > if (after.equals(before)) { > > Status stauts = this.getEngine().getCurrentStatus(); > > Set<State> valid = stauts.getStates(); > > System.out.println("We are in " + before.getId() + ". > Possible next states: "); > > for (Transition transition : lst) { > System.out.println(transition.getTarget().getId()); > } > > List<Transition> transitionList = > this.getCurrentState().getTransitionsList(); > > for (Transition transition : transitionList) { > System.out.println(transition.getTarget().getId()); > } > // throw new > // IllegalStateException("Can not complete transition while in " + > // before.getId()); > } else { > System.out.println("succefully switched state " + > before.getId() + " -> " + after.getId()); > } > return evnetFired; > } > > > Is there a way to translate it to 2 ?
I guess the main change and challenge in API now is that you cannot use #getCurrentState() any more. Ate refactored a lot with SCXML-196, 197 and 200 in this (SCXML semantics) area. For example, #getCurrentState() seems quite confusing because in SCXML multiple states can be active at the same time. e.g, in parallel states. I guess that's why the old API cannot be supported any more. So, you need to try with SCXMLExecutor#getStatus(), Status#getStates() and Status#getActiveStates() to figure out which state you need to get in your implementation. Please see each javadoc description. Regards, Woonsan > Thank you > > > On Wed, May 4, 2016 at 11:58 AM, Woonsan Ko <woon...@apache.org> wrote: >> Not sure about the use case, but maybe you can add a listener >> (AbstractStateMachine#getEngine()#addListener(stateMachine, new >> MyListener())). >> If you get a TransitionalState in your listener, you may possibly get >> all the available Transitions and TransitionTargets. >> >> Regards, >> >> Woonsan >> >> >> On Sun, May 1, 2016 at 8:19 PM, Mansour Al Akeel >> <mansour.alak...@gmail.com> wrote: >>> Is there a way to get the next valid states or transitions ? >>> I am working with AbstractStateMachine >>> >>> Thank you >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >>> For additional commands, e-mail: user-h...@commons.apache.org >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org >> For additional commands, e-mail: user-h...@commons.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > For additional commands, e-mail: user-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@commons.apache.org For additional commands, e-mail: user-h...@commons.apache.org