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

org.squirrelframework.foundation.fsm.StateMachineConfiguration Maven / Gradle / Ivy

package org.squirrelframework.foundation.fsm;

import org.squirrelframework.foundation.component.IdProvider;
import org.squirrelframework.foundation.component.SquirrelSingleton;

/**
 * This class is used to configure state machine runtime behavior
 * @author Henry.He
 */
public interface StateMachineConfiguration {
    
    boolean isAutoStartEnabled();
    
    void setAutoStartEnabled(boolean isAutoStartEnabled);
    
    boolean isAutoTerminateEnabled();
    
    void setAutoTerminateEnabled(boolean isAutoTerminateEnabled);
    
    boolean isDataIsolateEnabled();
    
    void setDataIsolateEnabled(boolean isDataIsolateEnabled);
    
    IdProvider getIdProvider();
    
    void setIdProvider(IdProvider idProvider);
    
    public class Default implements StateMachineConfiguration, SquirrelSingleton {
        
        private static StateMachineConfiguration instance = new Default();

        public static StateMachineConfiguration getInstance() {
            return instance;
        }

        public static void setInstance(StateMachineConfiguration instance) {
            Default.instance = instance;
        }
        
        private boolean isAutoStartEnabled = true;
        
        private boolean isAutoTerminateEnabled = true;
        
        private boolean isDataIsolateEnabled = false;
        
        private IdProvider idProvider = IdProvider.Default.getInstance();
        
        @Override
        public boolean isAutoStartEnabled() {
            return isAutoStartEnabled;
        }

        @Override
        public void setAutoStartEnabled(boolean isAutoStartEnabled) {
            this.isAutoStartEnabled = isAutoStartEnabled;
        }

        @Override
        public boolean isAutoTerminateEnabled() {
            return isAutoTerminateEnabled;
        }

        @Override
        public void setAutoTerminateEnabled(boolean isAutoTerminateEnabled) {
            this.isAutoTerminateEnabled = isAutoTerminateEnabled;
        }

        @Override
        public boolean isDataIsolateEnabled() {
            return isDataIsolateEnabled;
        }

        @Override
        public void setDataIsolateEnabled(boolean isDataIsolateEnabled) {
            this.isDataIsolateEnabled = isDataIsolateEnabled;
        }

        @Override
        public IdProvider getIdProvider() {
            return idProvider;
        }

        @Override
        public void setIdProvider(IdProvider idProvider) {
            this.idProvider = idProvider;
        }
        
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy