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

import java.util.EnumSet;
import java.util.Set;

import de.ivu.elect.jee.presentation.Icons;

public enum TeilnehmerStatus {

  TEILNAHME_VORGESEHEN {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconUngeprueft();
    }
  },
  EINGELADEN {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconBenachrichtigt();
    }
  },
  ZUGESAGT {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconCheck();
    }
  },
  ENTSCHULDIGT {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconEntschuldigt();
    }

    @Override
    public boolean isVorgesehenOderTeilgenommen() {
      return false;
    }
  },
  UNENTSCHULDIGT {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconUnentschuldigt();
    }

    @Override
    public boolean isVorgesehenOderTeilgenommen() {
      return false;
    }
  },
  TEILGENOMMEN {
    @Override
    public String getIcon(Icons icons) {
      return icons.getIconCircleCheck();
    }
  };

  public static final Set<TeilnehmerStatus> VORGESEHEN_ODER_TEILGENOMMEN = EnumSet
      .complementOf(EnumSet.of(TeilnehmerStatus.ENTSCHULDIGT, TeilnehmerStatus.UNENTSCHULDIGT));

  public abstract String getIcon(Icons icons);

  public boolean isVorgesehenOderTeilgenommen() {
    return true;
  }
}
