
package de.ivu.elect.business.staat.boundary;

import static java.util.Arrays.asList;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;

import javax.inject.Inject;

import de.ivu.elect.business.CurrentCustomer;
import de.ivu.elect.business.staat.entity.StaatenGruppeTyp;

public class StaatenGruppeTypFinder implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private CurrentCustomer currentCustomer;

  public StaatenGruppeTypFinder() {
    super();
  }

  public boolean isStaatenGruppeTypExceptUnbekanntSupported() {
    return !asList(StaatenGruppeTyp.UNBEKANNT).containsAll(getSupportedStaatenGruppeTypen());
  }

  public Collection<StaatenGruppeTyp> getSupportedStaatenGruppeTypen() {
    Collection<StaatenGruppeTyp> result = new ArrayList<>();

    for (StaatenGruppeTyp staatenGruppeTyp : StaatenGruppeTyp.values()) {
      if (staatenGruppeTyp.isSupported(currentCustomer)) {
        result.add(staatenGruppeTyp);
      }
    }

    return result;
  }
}
