/** * Ensures the uniqueness of the identifier <code>uniqueId</code>. Throws various exceptions if * the id is not unique. * * @param uniqueId the id that might be unique * @param adding the station that is about to be added */ private void checkStationIdentifierUniqueness(String uniqueId, CStation<?> adding) { if (uniqueId == null) throw new NullPointerException("uniqueId must not be null"); if (CContentArea.getCenterIdentifier(CControl.CONTENT_AREA_STATIONS_ID).equals(uniqueId)) throw new IllegalArgumentException( "The id " + uniqueId + " is reserved for special purposes"); if (CContentArea.getEastIdentifier(CControl.CONTENT_AREA_STATIONS_ID).equals(uniqueId)) throw new IllegalArgumentException( "The id " + uniqueId + " is reserved for special purposes"); if (CContentArea.getWestIdentifier(CControl.CONTENT_AREA_STATIONS_ID).equals(uniqueId)) throw new IllegalArgumentException( "The id " + uniqueId + " is reserved for special purposes"); if (CContentArea.getSouthIdentifier(CControl.CONTENT_AREA_STATIONS_ID).equals(uniqueId)) throw new IllegalArgumentException( "The id " + uniqueId + " is reserved for special purposes"); if (CContentArea.getNorthIdentifier(CControl.CONTENT_AREA_STATIONS_ID).equals(uniqueId)) throw new IllegalArgumentException( "The id " + uniqueId + " is reserved for special purposes"); for (CStation<?> station : stations) { if (station.getUniqueId().equals(uniqueId)) { if (station == adding) { throw new IllegalArgumentException("The station has already been registered"); } throw new IllegalArgumentException("There exists already a station with id: " + uniqueId); } } }
public void addStation(CStation<?> station) { if (!settingDefaultStations) { checkStationIdentifierUniqueness(station.getUniqueId(), station); } stations.add(station); }