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

com.veraxsystems.vxipmi.sm.states.State Maven / Gradle / Ivy

The newest version!
/*
 * State.java 
 * Created on 2011-08-18
 *
 * Copyright (c) Verax Systems 2011.
 * All rights reserved.
 *
 * This software is furnished under a license. Use, duplication,
 * disclosure and all other uses are restricted to the rights
 * specified in the written license agreement.
 */
package com.veraxsystems.vxipmi.sm.states;

import com.veraxsystems.vxipmi.coding.rmcp.RmcpMessage;
import com.veraxsystems.vxipmi.sm.StateMachine;
import com.veraxsystems.vxipmi.sm.events.StateMachineEvent;

/**
 * The abstract for state of the {@link StateMachine}.
 */
public abstract class State {
    /**
     * Defines the action performed when the state is entered.
     *
     * @param stateMachine
     *            - the context
     */
    public void onEnter(StateMachine stateMachine) {
    }

    /**
     * Performs the state transition
     *
     * @param stateMachine
     *            - the context
     * @param machineEvent
     *            - the {@link StateMachineEvent} that was the cause of the
     *            transition
     */
    public abstract void doTransition(StateMachine stateMachine,
            StateMachineEvent machineEvent);

    /**
     * Defines the action that should be performed when a response form the
     * remote system arrives in the current state.
     *
     * @param stateMachine
     *            - the context
     * @param message
     *            - the message that appeared
     */
    public abstract void doAction(StateMachine stateMachine, RmcpMessage message);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy