/**
  * @see
  *     de.outstare.fortbattleplayer.model.Area#occupy(de.outstare.fortbattleplayer.model.Combatant,
  *     Area)
  */
 public Combatant occupy(final Combatant newOccupier, final Area oldPosition) {
   Combatant oldOccupier = null;
   // System.out.println(toString() + " will be occupied by " + newOccupier
   // + " from " + oldPosition);
   if (isOccupied() && !occupier.equals(newOccupier)) {
     if (oldPosition == null) {
       // IGNORE, because in the initial setup, multiple combatants may
       // stay in the same area
       // throw new IllegalStateException(
       // "This Area is already occupied and no Area for the current occupier was given!");
     } else if (oldPosition.isOccupied()) {
       // IGNORE, for old battles with wrong start positions
       // throw new IllegalArgumentException(toString() +
       // " cannot be occupied by " + newOccupier.getName()
       // + " because " + oldPosition.toString()
       // +
       // " (the source Area of the occupier) is not free for the current occupier of this Area!");
     } else {
       // swap places
       // (TODO this is like a hack, but it is what The West does :-/)
       oldOccupier = occupier;
       LOG.fine(occupier.getName() + " and " + newOccupier + " swapping positions");
       occupier.move(oldPosition);
     }
   }
   occupier = newOccupier;
   sector.gainControl(occupier.getSide());
   return oldOccupier;
 }