@Override public ControllerState indexState(ControllerState state) { return getState(state); }
public boolean isBeforeState(ControllerState state, ControllerState reference) { int stateIndex = getStateIndex(state, true); int referenceIndex = getStateIndex(reference, true); return stateIndex < referenceIndex; }
protected ControllerStateWrapper getState(ControllerState state) { return getState(state, false); }
public boolean isAfterState(ControllerState state, ControllerState reference) { int stateIndex = getStateIndex(state, true); int referenceIndex = getStateIndex(reference, true); return stateIndex > referenceIndex; }
public ControllerState getNextState(ControllerState state) { return getState(state).getAfter(); }
protected int getStateIndex(ControllerState state) { return getStateIndex(state, false); }
protected int getStateIndex(ControllerState state, boolean allowNotFound) { ControllerStateWrapper stateWrapper = getState(state, allowNotFound); return stateWrapper == null ? -1 : stateWrapper.getIndex(); }
public ControllerState getPreviousState(ControllerState state) { return getState(state).getBefore(); }
next = getState(before); previous = next.getBefore(); index = next.getIndex();