
package de.ivu.elect.business.stimmeingabe.control.plausi;

import static java.util.Arrays.asList;
import static java.util.Collections.unmodifiableCollection;

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

import de.ivu.elect.business.stimmeingabe.control.plausi.AbstractStimmeingabeAnzahlComparedToPlausi.StimmeingabeAnzahlComparedToOperator;

public class StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition extends AbstractStimmeingabeAnzahlComparedToPlausiDefinition {

  private final Collection<StimmeingabeAnzahlReference> comparedToStimmeingabeAnzahlenReferences;

  public StimmeingabeAnzahlComparedToStimmeingabeAnzahlenPlausiDefinition(StimmeingabeAnzahlReference stimmeingabeAnzahlReference, StimmeingabeAnzahlComparedToOperator comparedToOperator,
      StimmeingabeAnzahlReference one, StimmeingabeAnzahlReference... more) {
    super(stimmeingabeAnzahlReference, comparedToOperator);

    this.comparedToStimmeingabeAnzahlenReferences = combineToCollection(one, more);
  }

  public Collection<StimmeingabeAnzahlReference> getComparedToStimmeingabeAnzahlenReferences() {
    return comparedToStimmeingabeAnzahlenReferences;
  }

  private static <T> Collection<T> combineToCollection(T one, T... more) {
    Collection<T> result = new ArrayList<>();
    result.add(one);
    result.addAll(asList(more));

    return unmodifiableCollection(result);
  }
}
