question: protected String isValidPlacement ( final Collection < Unit > units , final Territory at , final PlayerID player ) { String error = playerHasEnoughUnits ( units , at , player ) ; if ( error != null ) { return error ; } error = canProduce ( at , units , player ) ; if ( error != null ) { return error ; } error = checkProduction ( at , units , player ) ; if ( error != null ) { return error ; } error = canUnitsBePlaced ( at , units , player ) ; if ( error != null ) { return error ; } return null ; }
target:  Subclasses can over ride this to change the way placements are made.