
package de.ivu.elect.business.geodata.entity;

import static java.util.Collections.sort;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import de.ivu.elect.business.geodata.control.GeodataPlzByPlzComparator;

public abstract class AbstractGeodataOrt implements GeodataOrtBase {

  private static final long serialVersionUID = 1L;

  public AbstractGeodataOrt() {
    super();
  }

  public boolean hasOrtsteil() {
    return isNotBlank(getOrtsteilname());
  }

  public List<GeodataPlz> getGeodataPostleitzahlen() {
    List<GeodataPlz> result = new ArrayList<>(getGeodataPlzs());

    sort(result, new GeodataPlzByPlzComparator());

    return result;
  }

  public void removeGeodataPostleitzahlen() {
    removeAllGeodataPlzs();
  }

  public void addGeodataPostleitzahlen(Collection<GeodataPlz> geodataPostleitzahlen) {
    geodataPostleitzahlen.forEach(geodataPlz -> addGeodataPostleitzahl(geodataPlz));
  }

  public void addGeodataPostleitzahl(GeodataPlz geodataPlz) {
    addGeodataPlz(geodataPlz);
  }
}
