protected void include( Coords coords, Board board ) {
protected void include( Coords coords, IBoard board ) {
    protected void include( Coords coords, Board board ) {        // If the hex is already in the building, we've covered it before.        if ( this.isIn( coords ) ) {            return;        }        // Get the nextHex hex.        IHex nextHex = board.getHex( coords );        // Error off if the building type or CF is off.        if ( this.type != nextHex.terrainLevel( Terrains.BUILDING ) ) {            throw new IllegalArgumentException                ( "The coordinates, " +                  coords.getBoardNum() +                  ", should contain the same type of building as " +                  ( (Coords) this.coordinates.elementAt(0)).getBoardNum() );        }        boolean hexHasCF = nextHex.containsTerrain( Terrains.BLDG_CF );        if ( (hexHasCF &&               this.currentCF != nextHex.terrainLevel( Terrains.BLDG_CF )) ||             (!hexHasCF &&              this.currentCF != getDefaultCF( this.type )) ) {            throw new IllegalArgumentException                ( "The coordinates, " +                  coords.getBoardNum() +                  ", should contain a building with the same CF as " +                  ( (Coords) this.coordinates.elementAt(0)).getBoardNum() );        }        // We passed our tests, add the next hex to this building.        this.coordinates.addElement( coords );        // Walk through the exit directions and        // identify all hexes in this building.        for ( int dir = 0; dir < 6; dir++ ) {            // Does the building exit in this direction?            if ( nextHex.containsTerrainExit( Terrains.BUILDING, dir ) ) {                this.include( coords.translated(dir), board );            }        }    } // End void protected include( Coords, Board )