Class AbstractCheckerboard<T extends Checkerboard<P,S>,P extends Player<P,S>,S>

java.lang.Object
org.refcodes.observer.AbstractObservable<CheckerboardObserver<P,S>,org.refcodes.observer.Event<?>>
org.refcodes.checkerboard.AbstractCheckerboard<T,P,S>
Type Parameters:
P - the generic type
S - the generic type
All Implemented Interfaces:
Checkerboard<P,S>, Players<P>, org.refcodes.component.Component, org.refcodes.component.Destroyable, org.refcodes.graphical.GridDimension, org.refcodes.graphical.GridDimension.GridDimensionAccessor, org.refcodes.graphical.GridDimension.GridDimensionBuilder<Checkerboard<P,S>>, org.refcodes.graphical.GridDimension.GridDimensionMutator, org.refcodes.graphical.GridDimension.GridDimensionProperty, org.refcodes.graphical.GridHeightAccessor, org.refcodes.graphical.GridHeightAccessor.GridHeightBuilder<Checkerboard<P,S>>, org.refcodes.graphical.GridHeightAccessor.GridHeightMutator, org.refcodes.graphical.GridHeightAccessor.GridHeightProperty, org.refcodes.graphical.GridModeAccessor, org.refcodes.graphical.GridModeAccessor.GridModeBuilder<Checkerboard<P,S>>, org.refcodes.graphical.GridModeAccessor.GridModeMutator, org.refcodes.graphical.GridModeAccessor.GridModeProperty, org.refcodes.graphical.GridWidthAccessor, org.refcodes.graphical.GridWidthAccessor.GridWidthBuilder<Checkerboard<P,S>>, org.refcodes.graphical.GridWidthAccessor.GridWidthMutator, org.refcodes.graphical.GridWidthAccessor.GridWidthProperty, org.refcodes.mixin.Disposable, org.refcodes.observer.Observable<CheckerboardObserver<P,S>>

public abstract class AbstractCheckerboard<T extends Checkerboard<P,S>,P extends Player<P,S>,S> extends org.refcodes.observer.AbstractObservable<CheckerboardObserver<P,S>,org.refcodes.observer.Event<?>> implements Checkerboard<P,S>
The Class CheckerboardImpl.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable

    org.refcodes.component.Destroyable.DestroyAutomaton

    Nested classes/interfaces inherited from interface org.refcodes.graphical.GridDimension

    org.refcodes.graphical.GridDimension.GridDimensionAccessor, org.refcodes.graphical.GridDimension.GridDimensionBuilder<B extends org.refcodes.graphical.GridDimension.GridDimensionBuilder<B>>, org.refcodes.graphical.GridDimension.GridDimensionMutator, org.refcodes.graphical.GridDimension.GridDimensionProperty

    Nested classes/interfaces inherited from interface org.refcodes.graphical.GridHeightAccessor

    org.refcodes.graphical.GridHeightAccessor.GridHeightBuilder<B extends org.refcodes.graphical.GridHeightAccessor.GridHeightBuilder<B>>, org.refcodes.graphical.GridHeightAccessor.GridHeightMutator, org.refcodes.graphical.GridHeightAccessor.GridHeightProperty

    Nested classes/interfaces inherited from interface org.refcodes.graphical.GridModeAccessor

    org.refcodes.graphical.GridModeAccessor.GridModeBuilder<B extends org.refcodes.graphical.GridModeAccessor.GridModeBuilder<B>>, org.refcodes.graphical.GridModeAccessor.GridModeMutator, org.refcodes.graphical.GridModeAccessor.GridModeProperty

    Nested classes/interfaces inherited from interface org.refcodes.graphical.GridWidthAccessor

    org.refcodes.graphical.GridWidthAccessor.GridWidthBuilder<B extends org.refcodes.graphical.GridWidthAccessor.GridWidthBuilder<B>>, org.refcodes.graphical.GridWidthAccessor.GridWidthMutator, org.refcodes.graphical.GridWidthAccessor.GridWidthProperty
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    atBottomLeftOf(org.refcodes.graphical.Position aPos)
    At bottom left of.
    atBottomOf(org.refcodes.graphical.Position aPos)
    At bottom of.
    atBottomRightOf(org.refcodes.graphical.Position aPos)
    At bottom right of.
    atLeftOf(org.refcodes.graphical.Position aPos)
    At left of.
    atPosition(int aPosX, int aPosY)
    At position.
    atPosition(org.refcodes.graphical.Position aPos)
    At position.
    atRightOf(org.refcodes.graphical.Position aPos)
    At right of.
    atTopLeftOf(org.refcodes.graphical.Position aPos)
    At top left of.
    atTopOf(org.refcodes.graphical.Position aPos)
    At top of.
    atTopRightOf(org.refcodes.graphical.Position aPos)
    At top right of.
    void
    Clear players.
    void
    boolean
    protected boolean
    fireEvent(org.refcodes.observer.Event<?> aEvent, CheckerboardObserver<P,S> aObserver, org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
    Fire event.
    void
    forEach(Consumer<P> aConsumer)
    Performs the given action for each Player on the Checkerboard until all players have been processed or the action throws an exception.
    getColumn(int aColumn)
    Gets the column.
    int
    org.refcodes.graphical.GridMode
    int
    Gets the players.
    getRow(int aRow)
    Gets the row.
    boolean
    hasAtBottomLeftOf(org.refcodes.graphical.Position aPos)
    Checks for at bottom left of.
    boolean
    hasAtBottomOf(org.refcodes.graphical.Position aPos)
    Checks for at bottom of.
    boolean
    hasAtBottomRightOf(org.refcodes.graphical.Position aPos)
    Checks for at bottom right of.
    boolean
    hasAtLeftOf(org.refcodes.graphical.Position aPos)
    Checks for at left of.
    boolean
    hasAtPosition(int aPosX, int aPosY)
    Checks for at position.
    boolean
    hasAtPosition(org.refcodes.graphical.Position aPos)
    Checks for at position.
    boolean
    hasAtRightOf(org.refcodes.graphical.Position aPos)
    Checks for at right of.
    boolean
    hasAtTopLeftOf(org.refcodes.graphical.Position aPos)
    Checks for at top left of.
    boolean
    hasAtTopOf(org.refcodes.graphical.Position aPos)
    Checks for at top of.
    boolean
    hasAtTopRightOf(org.refcodes.graphical.Position aPos)
    Checks for at top right of.
    int
    boolean
    hasPlayer(P aPlayer)
    Checks for player.
    boolean
    Checks for players.
    int
    Player count.
    Players.
    putPlayer(P aPlayer)
    Put player.
    boolean
    removePlayer(P aPlayer)
    Removes the player.
    void
    setGridDimension(int aWidth, int aHeight)
    void
    setGridDimension(org.refcodes.graphical.Dimension aDimension)
    void
    setGridDimension(org.refcodes.graphical.GridDimension aDimension)
    void
    setGridHeight(int aHeight)
    void
    setGridMode(org.refcodes.graphical.GridMode aGridMode)
    void
    setGridWidth(int aWidth)
    boolean
    boolean
    withGridDimension(int aGridWidth, int aGridHeight)
    withGridDimension(org.refcodes.graphical.Dimension aDimension)
    withGridDimension(org.refcodes.graphical.GridDimension aDimension)
    withGridHeight(int aHeight)
    withGridMode(org.refcodes.graphical.GridMode aGridMode)
    withGridWidth(int aWidth)

    Methods inherited from class org.refcodes.observer.AbstractObservable

    clear, dispose, doHandleEventListenerException, fireEvent, getThreadPriority, hasObserver, isEmpty, isObserversActive, observers, setObserversActive, setThreadPriority, size

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.refcodes.graphical.GridDimension

    isInBounds, isInBounds, isInHeight, isInWidth

    Methods inherited from interface org.refcodes.graphical.GridDimension.GridDimensionProperty

    letGridDimension, letGridDimension, letGridDimension

    Methods inherited from interface org.refcodes.graphical.GridHeightAccessor.GridHeightProperty

    letGridHeight

    Methods inherited from interface org.refcodes.graphical.GridModeAccessor.GridModeProperty

    letGridMode

    Methods inherited from interface org.refcodes.graphical.GridWidthAccessor.GridWidthProperty

    letGridWidth

    Methods inherited from interface org.refcodes.observer.Observable

    hasObserver

    Methods inherited from interface org.refcodes.checkerboard.Players

    firstPlayer, players
  • Constructor Details

    • AbstractCheckerboard

      public AbstractCheckerboard()
  • Method Details

    • withGridMode

      public T withGridMode(org.refcodes.graphical.GridMode aGridMode)
      Specified by:
      withGridMode in interface org.refcodes.graphical.GridModeAccessor.GridModeBuilder<T extends Checkerboard<P,S>>
    • withGridDimension

      public T withGridDimension(int aGridWidth, int aGridHeight)
      Specified by:
      withGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionBuilder<T extends Checkerboard<P,S>>
    • withGridDimension

      public T withGridDimension(org.refcodes.graphical.GridDimension aDimension)
      Specified by:
      withGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionBuilder<T extends Checkerboard<P,S>>
    • withGridDimension

      public T withGridDimension(org.refcodes.graphical.Dimension aDimension)
      Specified by:
      withGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionBuilder<T extends Checkerboard<P,S>>
    • withGridWidth

      public T withGridWidth(int aWidth)
      Specified by:
      withGridWidth in interface org.refcodes.graphical.GridWidthAccessor.GridWidthBuilder<T extends Checkerboard<P,S>>
    • withGridHeight

      public T withGridHeight(int aHeight)
      Specified by:
      withGridHeight in interface org.refcodes.graphical.GridHeightAccessor.GridHeightBuilder<T extends Checkerboard<P,S>>
    • forEach

      public void forEach(Consumer<P> aConsumer)
      Performs the given action for each Player on the Checkerboard until all players have been processed or the action throws an exception.
      Specified by:
      forEach in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aConsumer - The action to be performed for each Player.
    • hasAtPosition

      public boolean hasAtPosition(org.refcodes.graphical.Position aPos)
      Checks for at position.
      Specified by:
      hasAtPosition in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • hasAtPosition

      public boolean hasAtPosition(int aPosX, int aPosY)
      Checks for at position.
      Specified by:
      hasAtPosition in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPosX - the pos X
      aPosY - the pos Y
      Returns:
      true, if successful
    • atPosition

      public P atPosition(org.refcodes.graphical.Position aPos)
      At position.
      Specified by:
      atPosition in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • atPosition

      public P atPosition(int aPosX, int aPosY)
      At position.
      Specified by:
      atPosition in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPosX - the pos X
      aPosY - the pos Y
      Returns:
      the p
    • hasAtTopOf

      public boolean hasAtTopOf(org.refcodes.graphical.Position aPos)
      Checks for at top of.
      Specified by:
      hasAtTopOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atTopOf

      public P atTopOf(org.refcodes.graphical.Position aPos)
      At top of.
      Specified by:
      atTopOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtTopRightOf

      public boolean hasAtTopRightOf(org.refcodes.graphical.Position aPos)
      Checks for at top right of.
      Specified by:
      hasAtTopRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atTopRightOf

      public P atTopRightOf(org.refcodes.graphical.Position aPos)
      At top right of.
      Specified by:
      atTopRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtRightOf

      public boolean hasAtRightOf(org.refcodes.graphical.Position aPos)
      Checks for at right of.
      Specified by:
      hasAtRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atRightOf

      public P atRightOf(org.refcodes.graphical.Position aPos)
      At right of.
      Specified by:
      atRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtBottomRightOf

      public boolean hasAtBottomRightOf(org.refcodes.graphical.Position aPos)
      Checks for at bottom right of.
      Specified by:
      hasAtBottomRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atBottomRightOf

      public P atBottomRightOf(org.refcodes.graphical.Position aPos)
      At bottom right of.
      Specified by:
      atBottomRightOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtBottomOf

      public boolean hasAtBottomOf(org.refcodes.graphical.Position aPos)
      Checks for at bottom of.
      Specified by:
      hasAtBottomOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atBottomOf

      public P atBottomOf(org.refcodes.graphical.Position aPos)
      At bottom of.
      Specified by:
      atBottomOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtBottomLeftOf

      public boolean hasAtBottomLeftOf(org.refcodes.graphical.Position aPos)
      Checks for at bottom left of.
      Specified by:
      hasAtBottomLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atBottomLeftOf

      public P atBottomLeftOf(org.refcodes.graphical.Position aPos)
      At bottom left of.
      Specified by:
      atBottomLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtLeftOf

      public boolean hasAtLeftOf(org.refcodes.graphical.Position aPos)
      Checks for at left of.
      Specified by:
      hasAtLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atLeftOf

      public P atLeftOf(org.refcodes.graphical.Position aPos)
      At left of.
      Specified by:
      atLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • hasAtTopLeftOf

      public boolean hasAtTopLeftOf(org.refcodes.graphical.Position aPos)
      Checks for at top left of.
      Specified by:
      hasAtTopLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      true, if successful
    • atTopLeftOf

      public P atTopLeftOf(org.refcodes.graphical.Position aPos)
      At top left of.
      Specified by:
      atTopLeftOf in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aPos - the pos
      Returns:
      the p
    • getRow

      public Map<Integer,P> getRow(int aRow)
      Gets the row.
      Specified by:
      getRow in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aRow - the row
      Returns:
      the row
    • getColumn

      public Map<Integer,P> getColumn(int aColumn)
      Gets the column.
      Specified by:
      getColumn in interface Checkerboard<T extends Checkerboard<P,S>,P extends Player<P,S>>
      Parameters:
      aColumn - the column
      Returns:
      the column
    • getGridMode

      public org.refcodes.graphical.GridMode getGridMode()
      Specified by:
      getGridMode in interface org.refcodes.graphical.GridModeAccessor
    • setGridMode

      public void setGridMode(org.refcodes.graphical.GridMode aGridMode)
      Specified by:
      setGridMode in interface org.refcodes.graphical.GridModeAccessor.GridModeMutator
    • getPlayers

      public List<P> getPlayers()
      Gets the players.
      Specified by:
      getPlayers in interface Players<T extends Checkerboard<P,S>>
      Returns:
      the players
    • putPlayer

      public P putPlayer(P aPlayer)
      Put player.
      Specified by:
      putPlayer in interface Players<T extends Checkerboard<P,S>>
      Parameters:
      aPlayer - the element
      Returns:
      the p
    • removePlayer

      public boolean removePlayer(P aPlayer)
      Removes the player.
      Specified by:
      removePlayer in interface Players<T extends Checkerboard<P,S>>
      Parameters:
      aPlayer - the element
      Returns:
      true, if successful
    • clearPlayers

      public void clearPlayers()
      Clear players.
      Specified by:
      clearPlayers in interface Players<T extends Checkerboard<P,S>>
    • playerCount

      public int playerCount()
      Player count.
      Specified by:
      playerCount in interface Players<T extends Checkerboard<P,S>>
      Returns:
      the int
    • hasPlayers

      public boolean hasPlayers()
      Checks for players.
      Specified by:
      hasPlayers in interface Players<T extends Checkerboard<P,S>>
      Returns:
      true, if successful
    • players

      public Iterator<P> players()
      Players.
      Specified by:
      players in interface Players<T extends Checkerboard<P,S>>
      Returns:
      the iterator
    • hasPlayer

      public boolean hasPlayer(P aPlayer)
      Checks for player.
      Specified by:
      hasPlayer in interface Players<T extends Checkerboard<P,S>>
      Parameters:
      aPlayer - the element
      Returns:
      true, if successful
    • getGridWidth

      public int getGridWidth()
      Specified by:
      getGridWidth in interface org.refcodes.graphical.GridWidthAccessor
    • setGridDimension

      public void setGridDimension(int aWidth, int aHeight)
      Specified by:
      setGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionMutator
    • setGridDimension

      public void setGridDimension(org.refcodes.graphical.GridDimension aDimension)
      Specified by:
      setGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionMutator
    • setGridDimension

      public void setGridDimension(org.refcodes.graphical.Dimension aDimension)
      Specified by:
      setGridDimension in interface org.refcodes.graphical.GridDimension.GridDimensionMutator
    • setGridWidth

      public void setGridWidth(int aWidth)
      Specified by:
      setGridWidth in interface org.refcodes.graphical.GridWidthAccessor.GridWidthMutator
    • setGridHeight

      public void setGridHeight(int aHeight)
      Specified by:
      setGridHeight in interface org.refcodes.graphical.GridHeightAccessor.GridHeightMutator
    • getGridHeight

      public int getGridHeight()
      Specified by:
      getGridHeight in interface org.refcodes.graphical.GridHeightAccessor
    • subscribeObserver

      public boolean subscribeObserver(CheckerboardObserver<P,S> aObserver)
      Specified by:
      subscribeObserver in interface org.refcodes.observer.Observable<T extends Checkerboard<P,S>>
      Overrides:
      subscribeObserver in class org.refcodes.observer.AbstractObservable<CheckerboardObserver<P extends Player<P,S>,S>,org.refcodes.observer.Event<?>>
    • unsubscribeObserver

      public boolean unsubscribeObserver(CheckerboardObserver<P,S> aObserver)
      Specified by:
      unsubscribeObserver in interface org.refcodes.observer.Observable<T extends Checkerboard<P,S>>
      Overrides:
      unsubscribeObserver in class org.refcodes.observer.AbstractObservable<CheckerboardObserver<P extends Player<P,S>,S>,org.refcodes.observer.Event<?>>
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.refcodes.component.Destroyable
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • fireEvent

      protected boolean fireEvent(org.refcodes.observer.Event<?> aEvent, CheckerboardObserver<P,S> aObserver, org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy) throws org.refcodes.exception.VetoException
      Fire event.
      Specified by:
      fireEvent in class org.refcodes.observer.AbstractObservable<CheckerboardObserver<P extends Player<P,S>,S>,org.refcodes.observer.Event<?>>
      Parameters:
      aEvent - the event
      aObserver - the observer
      aExecutionStrategy - the execution strategy
      Returns:
      true, if successful
      Throws:
      org.refcodes.exception.VetoException - the veto exception