Example usage for org.springframework.statemachine StateMachineSystemConstants STATEMACHINE_IDENTIFIER

List of usage examples for org.springframework.statemachine StateMachineSystemConstants STATEMACHINE_IDENTIFIER

Introduction

In this page you can find the example usage for org.springframework.statemachine StateMachineSystemConstants STATEMACHINE_IDENTIFIER.

Prototype

String STATEMACHINE_IDENTIFIER

To view the source code for org.springframework.statemachine StateMachineSystemConstants STATEMACHINE_IDENTIFIER.

Click Source Link

Document

State machine id key for headers and variables

Usage

From source file:org.springframework.statemachine.ensemble.DistributedStateMachine.java

@Override
public boolean sendEvent(Message<E> event) {
    // adding state machine id to the message so that
    // listeners can know from where a state change originates
    return delegate.sendEvent(MessageBuilder.fromMessage(event)
            .setHeader(StateMachineSystemConstants.STATEMACHINE_IDENTIFIER, delegate.getUuid()).build());
}

From source file:org.springframework.statemachine.support.DefaultStateMachineExecutor.java

private StateContext<S, E> buildStateContext(Message<E> message, Transition<S, E> transition,
        StateMachine<S, E> stateMachine) {
    // TODO: maybe a direct use of MessageHeaders is wring, combine
    //       payload and headers as a message?

    // add sm id to headers so that user of a StateContext can
    // see who initiated this transition
    MessageHeaders messageHeaders = message != null ? message.getHeaders()
            : new MessageHeaders(new HashMap<String, Object>());
    Map<String, Object> map = new HashMap<String, Object>(messageHeaders);
    if (!map.containsKey(StateMachineSystemConstants.STATEMACHINE_IDENTIFIER)) {
        // don't set sm id if it's already present because
        // we want to keep the originating sm id
        map.put(StateMachineSystemConstants.STATEMACHINE_IDENTIFIER, stateMachine.getUuid());
    }/*ww  w .j a  v a 2 s.  c o m*/
    return new DefaultStateContext<S, E>(Stage.TRANSITION, message, new MessageHeaders(map),
            stateMachine.getExtendedState(), transition, stateMachine, null, null, null);
}