
org.squirrelframework.foundation.fsm.impl.EntryExitActionBuilderImpl Maven / Gradle / Ivy
package org.squirrelframework.foundation.fsm.impl;
import org.squirrelframework.foundation.component.SquirrelComponent;
import org.squirrelframework.foundation.fsm.Action;
import org.squirrelframework.foundation.fsm.MutableState;
import org.squirrelframework.foundation.fsm.StateMachine;
import org.squirrelframework.foundation.fsm.builder.EntryExitActionBuilder;
import java.util.List;
class EntryExitActionBuilderImpl, S, E, C> implements
EntryExitActionBuilder, SquirrelComponent {
private final boolean isEntryAction;
private final MutableState state;
private final ExecutionContext executionContext;
EntryExitActionBuilderImpl(MutableState state,
boolean isEntryAction, ExecutionContext executionContext) {
this.state = state;
this.isEntryAction = isEntryAction;
this.executionContext = executionContext;
}
@Override
public void perform(Action action) {
if(isEntryAction) {
state.addEntryAction(action);
} else {
state.addExitAction(action);
}
}
@Override
public void perform(List extends Action> actions) {
if(isEntryAction) {
state.addEntryActions(actions);
} else {
state.addExitActions(actions);
}
}
@Override
public void evalMvel(String expression) {
Action action = FSM.newMvelAction(expression, executionContext);
perform(action);
}
@Override
public void callMethod(String methodName) {
Action action = FSM.newMethodCallActionProxy(methodName, executionContext);
perform(action);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy