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

import de.ivu.elect.jee.presentation.charts.AbstractChartModelBuilder;

public enum StimmzettelGueltigkeit {

  UNBEKANNT {
    @Override
    public boolean isStatistikAusgeben() {
      return false;
    }

    @Override
    public String getFarbe() {
      return AbstractChartModelBuilder.BLAU;
    }

    @Override
    public boolean isUngueltig() {
      return false;
    }

    @Override
    public boolean isAutomatischAktualisieren() {
      return true;
    }

    @Override
    public boolean isPerBeschlussFestgelegt() {
      return false;
    }

    @Override
    public boolean isPersistenteGueltigkeit() {
      return false;
    }
  },
  GUELTIG{
    @Override
    public boolean isGueltig() {
      return true;
    }
    @Override
    public String getFarbe() {
      return AbstractChartModelBuilder.GRUEN;
    }

    @Override
    public boolean isUngueltig() {
      return false;
    }

    @Override
    public boolean isAutomatischAktualisieren() {
      return true;
    }

    @Override
    public boolean isPerBeschlussFestgelegt() {
      return false;
    }
  },
  GUELTIG_PER_BESCHLUSS {
    @Override
    public String getFarbe() {
      return AbstractChartModelBuilder.DUNKEL_GRUEN;
    }

    @Override
    public boolean isUngueltig() {
      return false;
    }

    @Override
    public boolean isAutomatischAktualisieren() {
      return false;
    }

    @Override
    public boolean isPerBeschlussFestgelegt() {
      return true;
    }

    @Override
    public boolean isGueltig() {
      return true;
    }
  },
//  ELECTKOM-743 @Deprecated
//  UNGUELTIG {
//    @Override
//    public String getFarbe() {
//      return AbstractChartModelBuilder.GRAU;
//    }
//
//    @Override
//    public boolean isUngueltig() {
//      return false;
//    }
//
//    @Override
//    public boolean isAutomatischAktualisieren() {
//      return false;
//    }
//
//    @Override
//    public boolean isPerBeschlussFestgelegt() {
//      return false;
//    }
//
//    @Override
//    public boolean isStatistikAusgeben() {
//      return false;
//    }
//
//  },
  UNGUELTIG_PER_BESCHLUSS {
    @Override
    public String getFarbe() {
      return AbstractChartModelBuilder.ROT;
    }

    @Override
    public boolean isUngueltigPerBeschluss() {
      return true;
    }

    @Override
    public boolean isUngueltig() {
      return true;
    }

    @Override
    public boolean isAutomatischAktualisieren() {
      return false;
    }

    @Override
    public boolean isPerBeschlussFestgelegt() {
      return true;
    }
  }
  ;

  public boolean isGueltig() {
    return false;
  }

  public boolean isStatistikAusgeben() {
    return true;
  }

  public abstract String getFarbe();

  public boolean isUngueltigPerBeschluss(){
    return false;
  }
  public abstract boolean isUngueltig();

  public abstract boolean isAutomatischAktualisieren();

  public abstract boolean isPerBeschlussFestgelegt();

  public boolean isPersistenteGueltigkeit(){
    return true;
  }

}
