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

org.refcodes.checkerboard.StateChangedEvent Maven / Gradle / Ivy

package org.refcodes.checkerboard;

import org.refcodes.mixin.StatusAccessor;

/**
 * The class StateChangedEvent.
 *
 * @param 

the generic type * @param The state if the player (dead, alive, strong, weak, king, queen, * PacMan, ghost, fire, wood, water, strong queen, weak king, etc). */ public class StateChangedEvent

, S> extends AbstractPlayerEvent

implements PlayerEvent

, StatusAccessor { // ///////////////////////////////////////////////////////////////////////// // STATICS: // ///////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////// // CONSTANTS: // ///////////////////////////////////////////////////////////////////////// public static final PlayerAction ACTION = PlayerAction.STATE_CHANGED; // ///////////////////////////////////////////////////////////////////////// // VARIABLES: // ///////////////////////////////////////////////////////////////////////// private S _state; private S _precedingState; // ///////////////////////////////////////////////////////////////////////// // CONSTRUCTORS: // ///////////////////////////////////////////////////////////////////////// /** * Instantiates a new state changed event. * * @param aState the state * @param aPrecedingState the preceding state * @param aSource The according source (origin). */ public StateChangedEvent( S aState, S aPrecedingState, P aSource ) { super( ACTION, aSource ); _state = aState; _precedingState = aPrecedingState; } // ///////////////////////////////////////////////////////////////////////// // INJECTION: // ///////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////// // METHODS: // ///////////////////////////////////////////////////////////////////////// /** * {@inheritDoc} */ @Override public S getStatus() { return _state; } /** * Gets the preceding state. * * @return the preceding state */ public S getPrecedingState() { return _precedingState; } /** * {@inheritDoc} */ @Override public String toString() { return super.toString() + ", state := " + _state + " (state before: " + _precedingState + ")"; } // ///////////////////////////////////////////////////////////////////////// // HOOKS: // ///////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////// // HELPER: // ///////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////// // INNER CLASSES: // ///////////////////////////////////////////////////////////////////////// }