Class StateTransition


  • public final class StateTransition
    extends java.lang.Object
    Value object representing a potential transition from one State to another. The originating State name and the next State to execute are linked by a pattern for the exit code of an execution of the originating State.
    Since:
    2.0
    Author:
    Dave Syer, Michael Minella, Mahmoud Ben Hassine
    • Method Detail

      • getPattern

        public java.lang.String getPattern()
        Returns:
        the pattern the ExitStatus.getExitCode() will be compared against.
      • createEndStateTransition

        public static StateTransition createEndStateTransition​(State state)
        Create a new end state StateTransition specification. This transition explicitly goes unconditionally to an end state (i.e. no more executions).
        Parameters:
        state - the State used to generate the outcome for this transition
        Returns:
        StateTransition that was created.
      • createEndStateTransition

        public static StateTransition createEndStateTransition​(State state,
                                                               java.lang.String pattern)
        Create a new end state StateTransition specification. This transition explicitly goes to an end state (i.e. no more processing) if the outcome matches the pattern.
        Parameters:
        state - the State used to generate the outcome for this transition
        pattern - the pattern to match in the exit status of the State
        Returns:
        StateTransition that was created.
      • switchOriginAndDestination

        public static StateTransition switchOriginAndDestination​(StateTransition stateTransition,
                                                                 State state,
                                                                 java.lang.String next)
        Convenience method to switch the origin and destination of a transition, creating a new instance.
        Parameters:
        stateTransition - an existing state transition
        state - the new state for the origin
        next - the new name for the destination
        Returns:
        StateTransition that was created.
      • createStateTransition

        public static StateTransition createStateTransition​(State state,
                                                            java.lang.String next)
        Create a new state StateTransition specification with a wildcard pattern that matches all outcomes.
        Parameters:
        state - the State used to generate the outcome for this transition
        next - the name of the next State to execute
        Returns:
        StateTransition that was created.
      • createStateTransition

        public static StateTransition createStateTransition​(State state,
                                                            @Nullable
                                                            java.lang.String pattern,
                                                            @Nullable
                                                            java.lang.String next)
        Create a new StateTransition specification from one State to another (by name).
        Parameters:
        state - the State used to generate the outcome for this transition
        pattern - the pattern to match in the exit status of the State (can be null)
        next - the name of the next State to execute (can be null)
        Returns:
        StateTransition that was created.
      • getState

        public State getState()
        Public getter for the State.
        Returns:
        the State
      • getNext

        public java.lang.String getNext()
        Public getter for the next State name.
        Returns:
        the next
      • matches

        public boolean matches​(java.lang.String status)
        Check if the provided status matches the pattern, signalling that the next State should be executed.
        Parameters:
        status - the status to compare
        Returns:
        true if the pattern matches this status
      • isEnd

        public boolean isEnd()
        Check for a special next State signalling the end of a job.
        Returns:
        true if this transition goes nowhere (there is no next)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object