All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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> 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