org.apache.taglibs.rdc.scxml
Class SCXMLHelper

java.lang.Object
  extended by org.apache.taglibs.rdc.scxml.SCXMLHelper

public class SCXMLHelper
extends java.lang.Object

Helper class, all methods static final.


Constructor Summary
SCXMLHelper()
           
 
Method Summary
static java.util.Set getAncestorClosure(java.util.Set states, java.util.Set upperBounds)
          Creates a set which contains given states and all their ancestors recursively up to the upper bound.
static TransitionTarget getLCA(TransitionTarget tt1, TransitionTarget tt2)
          finds the least common ancestor of transition targets tt1 and tt2 if one exists.
static java.util.Set getStatesExited(Transition t, java.util.Set currentStates)
          Returns the set of all states (and parallels) which are exited if a given transition t is going to be taken.
static boolean inConflict(Transition t1, Transition t2, java.util.Set currentStates)
          According to the UML definition, two transitions are conflicting if the sets of states they exit overlap.
static boolean isDescendant(TransitionTarget tt, TransitionTarget ctx)
          Checks whether a transition target tt (State or Parallel) is a descendant of the transition target ctx.
static boolean isLegalConfig(java.util.Set states, ErrorReporter errRep)
          Checks whether a given set of states is a legal Harel State Table configuration (with the respect to the definition of the OR and AND states).
static boolean isStringEmpty(java.lang.String attr)
          Return true if the string is empty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SCXMLHelper

public SCXMLHelper()
Method Detail

isStringEmpty

public static final boolean isStringEmpty(java.lang.String attr)
Return true if the string is empty

Parameters:
attr - The String to test
Returns:
Is string empty

isDescendant

public static final boolean isDescendant(TransitionTarget tt,
                                         TransitionTarget ctx)
Checks whether a transition target tt (State or Parallel) is a descendant of the transition target ctx.

Parameters:
tt - TransitionTarget to check - a potential descendant
ctx - TransitionTarget context - a potential ancestor
Returns:
true iff tt is a descendant of ctx, false otherwise

getAncestorClosure

public static final java.util.Set getAncestorClosure(java.util.Set states,
                                                     java.util.Set upperBounds)
Creates a set which contains given states and all their ancestors recursively up to the upper bound. Null upperBound means root of the state machine.

Parameters:
upperBounds -
transTargets - [in]
Returns:
transitive closure of a given state set

isLegalConfig

public static final boolean isLegalConfig(java.util.Set states,
                                          ErrorReporter errRep)
Checks whether a given set of states is a legal Harel State Table configuration (with the respect to the definition of the OR and AND states).

Parameters:
states - a set of states
errRep - ErrorReporter to report detailed error info if needed
Returns:
true if a given state configuration is legal, false otherwise

getLCA

public static final TransitionTarget getLCA(TransitionTarget tt1,
                                            TransitionTarget tt2)
finds the least common ancestor of transition targets tt1 and tt2 if one exists.

Parameters:
tt1 -
tt2 -
Returns:
closest common ancestor of tt1 and tt2 or null

getStatesExited

public static final java.util.Set getStatesExited(Transition t,
                                                  java.util.Set currentStates)
Returns the set of all states (and parallels) which are exited if a given transition t is going to be taken. Current states are necessary to be taken into account due to orthogonal states and cross-region transitions - see UML specs. for more details.

Parameters:
t - transition to be taken
currentStates - the set of current states (simple states only)
Returns:
a set of all states (including composite) which are exited if a given transition is taken

inConflict

public static final boolean inConflict(Transition t1,
                                       Transition t2,
                                       java.util.Set currentStates)
According to the UML definition, two transitions are conflicting if the sets of states they exit overlap.

Parameters:
t1 - a transition to check against t2
t2 - a transition to check against t1
currentStates - the set of current states (simple states only)
Returns:
true if the t1 and t2 are conflicting transitions
See Also:
getStatesExited(Transition, Set)


Copyright ? 2000-2004 The Apache Software Foundation. All Rights Reserved.