Class CheckerboardImpl<P extends Player<P,S>,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.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.mixin.Loggable, org.refcodes.observer.Observable<CheckerboardObserver<P,S>>

    public class CheckerboardImpl<P extends Player<P,S>,S>
    extends org.refcodes.observer.AbstractObservable<CheckerboardObserver<P,S>,org.refcodes.observer.GenericEvent<?>>
    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.mixin.Disposable

        org.refcodes.mixin.Disposable.Disposedable
      • Nested classes/interfaces inherited from interface org.refcodes.graphical.GridDimension

        org.refcodes.graphical.GridDimension.GridDimensionBuilder<B extends org.refcodes.graphical.GridDimension.GridDimensionBuilder<B>>, org.refcodes.graphical.GridDimension.GridDimensionMutator, org.refcodes.graphical.GridDimension.GridDimensionProperty, org.refcodes.graphical.GridDimension.GridDimensionPropertyBuilder
      • 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
    • Field Summary

      • Fields inherited from interface org.refcodes.mixin.Loggable

        RUNTIME_LOGGER_CLASS, RUNTIME_LOGGER_FACTORY_CLASS, RUNTIME_LOGGER_FACTORY_METHOD
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      P atBottomLeftOf​(org.refcodes.graphical.Position aPos)
      At bottom left of.
      P atBottomOf​(org.refcodes.graphical.Position aPos)
      At bottom of.
      P atBottomRightOf​(org.refcodes.graphical.Position aPos)
      At bottom right of.
      P atLeftOf​(org.refcodes.graphical.Position aPos)
      At left of.
      P atPosition​(int aPosX, int aPosY)
      At position.
      P atPosition​(org.refcodes.graphical.Position aPos)
      At position.
      P atRightOf​(org.refcodes.graphical.Position aPos)
      At right of.
      P atTopLeftOf​(org.refcodes.graphical.Position aPos)
      At top left of.
      P atTopOf​(org.refcodes.graphical.Position aPos)
      At top of.
      P atTopRightOf​(org.refcodes.graphical.Position aPos)
      At top right of.
      void clearPlayers()
      Clear players.
      void destroy()
      protected boolean fireEvent​(org.refcodes.observer.GenericEvent<?> aEvent, CheckerboardObserver<P,S> aObserver, org.refcodes.controlflow.ExecutionStrategy aExecutionStrategy)
      Fire event.
      void forEach​(java.util.function.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.
      java.util.Map<java.lang.Integer,P> getColumn​(int aColumn)
      Gets the column.
      int getGridHeight()
      org.refcodes.graphical.GridMode getGridMode()
      int getGridWidth()
      java.util.List<P> getPlayers()
      Gets the players.
      java.util.Map<java.lang.Integer,P> 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.
      boolean hasPlayer​(P aPlayer)
      Checks for player.
      boolean hasPlayers()
      Checks for players.
      int playerCount()
      Player count.
      java.util.Iterator<P> players()
      Players.
      P 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 subscribeObserver​(CheckerboardObserver<P,S> aObserver)
      boolean unsubscribeObserver​(CheckerboardObserver<P,S> aObserver)
      Checkerboard<P,S> withGridDimension​(int aGridWidth, int aGridHeight)
      Checkerboard<P,S> withGridDimension​(org.refcodes.graphical.Dimension aDimension)
      Checkerboard<P,S> withGridDimension​(org.refcodes.graphical.GridDimension aDimension)
      Checkerboard<P,S> withGridHeight​(int aHeight)
      Checkerboard<P,S> withGridMode​(org.refcodes.graphical.GridMode aGridMode)
      Checkerboard<P,S> withGridWidth​(int aWidth)
      • Methods inherited from class org.refcodes.observer.AbstractObservable

        clear, dispose, doHandleEventListenerException, fireEvent, getThreadPriority, hasObserverSubscription, isEmpty, isObserversActive, observers, setObserversActive, setThreadPriority, size
      • Methods inherited from interface org.refcodes.graphical.GridDimension

        isInBounds, isInBounds, isInHeight, isInWidth
      • Methods inherited from interface org.refcodes.mixin.Loggable

        alert, alert, critical, critical, debug, error, info, notice, panic, trace, warn, warn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.refcodes.observer.Observable

        hasObserverSubscription
    • Constructor Detail

      • CheckerboardImpl

        public CheckerboardImpl()
    • Method Detail

      • withGridMode

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

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

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

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

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

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

        public void forEach​(java.util.function.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<P extends Player<P,S>,S>
        Parameters:
        aConsumer - The action to be performed for each Player.
      • hasAtPosition

        public boolean hasAtPosition​(org.refcodes.graphical.Position aPos)
                              throws java.lang.IndexOutOfBoundsException
        Checks for at position.
        Specified by:
        hasAtPosition in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtPosition

        public boolean hasAtPosition​(int aPosX,
                                     int aPosY)
                              throws java.lang.IndexOutOfBoundsException
        Checks for at position.
        Specified by:
        hasAtPosition in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPosX - the pos X
        aPosY - the pos Y
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atPosition

        public P atPosition​(org.refcodes.graphical.Position aPos)
                     throws java.lang.IndexOutOfBoundsException
        At position.
        Specified by:
        atPosition in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atPosition

        public P atPosition​(int aPosX,
                            int aPosY)
                     throws java.lang.IndexOutOfBoundsException
        At position.
        Specified by:
        atPosition in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPosX - the pos X
        aPosY - the pos Y
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtTopOf

        public boolean hasAtTopOf​(org.refcodes.graphical.Position aPos)
                           throws java.lang.IndexOutOfBoundsException
        Checks for at top of.
        Specified by:
        hasAtTopOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atTopOf

        public P atTopOf​(org.refcodes.graphical.Position aPos)
                  throws java.lang.IndexOutOfBoundsException
        At top of.
        Specified by:
        atTopOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtTopRightOf

        public boolean hasAtTopRightOf​(org.refcodes.graphical.Position aPos)
                                throws java.lang.IndexOutOfBoundsException
        Checks for at top right of.
        Specified by:
        hasAtTopRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atTopRightOf

        public P atTopRightOf​(org.refcodes.graphical.Position aPos)
                       throws java.lang.IndexOutOfBoundsException
        At top right of.
        Specified by:
        atTopRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtRightOf

        public boolean hasAtRightOf​(org.refcodes.graphical.Position aPos)
                             throws java.lang.IndexOutOfBoundsException
        Checks for at right of.
        Specified by:
        hasAtRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atRightOf

        public P atRightOf​(org.refcodes.graphical.Position aPos)
                    throws java.lang.IndexOutOfBoundsException
        At right of.
        Specified by:
        atRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtBottomRightOf

        public boolean hasAtBottomRightOf​(org.refcodes.graphical.Position aPos)
                                   throws java.lang.IndexOutOfBoundsException
        Checks for at bottom right of.
        Specified by:
        hasAtBottomRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atBottomRightOf

        public P atBottomRightOf​(org.refcodes.graphical.Position aPos)
                          throws java.lang.IndexOutOfBoundsException
        At bottom right of.
        Specified by:
        atBottomRightOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtBottomOf

        public boolean hasAtBottomOf​(org.refcodes.graphical.Position aPos)
                              throws java.lang.IndexOutOfBoundsException
        Checks for at bottom of.
        Specified by:
        hasAtBottomOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atBottomOf

        public P atBottomOf​(org.refcodes.graphical.Position aPos)
                     throws java.lang.IndexOutOfBoundsException
        At bottom of.
        Specified by:
        atBottomOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtBottomLeftOf

        public boolean hasAtBottomLeftOf​(org.refcodes.graphical.Position aPos)
                                  throws java.lang.IndexOutOfBoundsException
        Checks for at bottom left of.
        Specified by:
        hasAtBottomLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atBottomLeftOf

        public P atBottomLeftOf​(org.refcodes.graphical.Position aPos)
                         throws java.lang.IndexOutOfBoundsException
        At bottom left of.
        Specified by:
        atBottomLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtLeftOf

        public boolean hasAtLeftOf​(org.refcodes.graphical.Position aPos)
                            throws java.lang.IndexOutOfBoundsException
        Checks for at left of.
        Specified by:
        hasAtLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atLeftOf

        public P atLeftOf​(org.refcodes.graphical.Position aPos)
                   throws java.lang.IndexOutOfBoundsException
        At left of.
        Specified by:
        atLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • hasAtTopLeftOf

        public boolean hasAtTopLeftOf​(org.refcodes.graphical.Position aPos)
                               throws java.lang.IndexOutOfBoundsException
        Checks for at top left of.
        Specified by:
        hasAtTopLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        true, if successful
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • atTopLeftOf

        public P atTopLeftOf​(org.refcodes.graphical.Position aPos)
                      throws java.lang.IndexOutOfBoundsException
        At top left of.
        Specified by:
        atTopLeftOf in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aPos - the pos
        Returns:
        the p
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • getRow

        public java.util.Map<java.lang.Integer,P> getRow​(int aRow)
                                                  throws java.lang.IndexOutOfBoundsException
        Gets the row.
        Specified by:
        getRow in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aRow - the row
        Returns:
        the row
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • getColumn

        public java.util.Map<java.lang.Integer,P> getColumn​(int aColumn)
                                                     throws java.lang.IndexOutOfBoundsException
        Gets the column.
        Specified by:
        getColumn in interface Checkerboard<P extends Player<P,S>,S>
        Parameters:
        aColumn - the column
        Returns:
        the column
        Throws:
        java.lang.IndexOutOfBoundsException - the index out of bounds exception
      • 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 java.util.List<P> getPlayers()
        Gets the players.
        Specified by:
        getPlayers in interface Players<P extends Player<P,S>>
        Returns:
        the players
      • putPlayer

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

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

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

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

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

        public boolean hasPlayer​(P aPlayer)
        Checks for player.
        Specified by:
        hasPlayer in interface Players<P extends Player<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<P extends Player<P,S>>
        Overrides:
        subscribeObserver in class org.refcodes.observer.AbstractObservable<CheckerboardObserver<P extends Player<P,S>,S>,org.refcodes.observer.GenericEvent<?>>
      • unsubscribeObserver

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

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

        protected boolean fireEvent​(org.refcodes.observer.GenericEvent<?> 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.GenericEvent<?>>
        Parameters:
        aEvent - the event
        aObserver - the observer
        aExecutionStrategy - the execution strategy
        Returns:
        true, if successful
        Throws:
        org.refcodes.exception.VetoException - the veto exception