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:
// /////////////////////////////////////////////////////////////////////////
}