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

import de.ivu.elect.jee.faces.FacesContextUtil;

@javax.enterprise.inject.Vetoed
public class PruefkriteriumProperties 
{

   private final FristInTagenBisZurWahlProperty fristInTagenBisZurWahlProperty;
    
   private final HeilungsfaehigProperty heilungsfaehigProperty;
    
   private final KannIrrelevantSeinProperty kannIrrelevantSeinProperty;
    
   private final KategorieProperty kategorieProperty;
    
   private final KriteriumtextProperty kriteriumtextProperty;
    
   private final PositionProperty positionProperty;
    
   private final PruefkriteriumBezugProperty pruefkriteriumBezugProperty;
          private final PruefkriteriumBezugMitLeererAuswahlProperty pruefkriteriumBezugMitLeererAuswahlProperty;
    
   private final TeilDerSofortpruefungProperty teilDerSofortpruefungProperty;
    
   private final TextFuerProtokollErfuelltProperty textFuerProtokollErfuelltProperty;
    
   private final TextFuerProtokollFristProperty textFuerProtokollFristProperty;
    
   private final TextFuerProtokollNichtErfuelltProperty textFuerProtokollNichtErfuelltProperty;
    
   private final UnterkategorieProperty unterkategorieProperty;
    
   private final WahlrechtlichRelevantProperty wahlrechtlichRelevantProperty;
    


  public PruefkriteriumProperties(Pruefkriterium entity) {
        
    this.fristInTagenBisZurWahlProperty = new FristInTagenBisZurWahlProperty(entity);
            this.heilungsfaehigProperty = new HeilungsfaehigProperty(entity);
            this.kannIrrelevantSeinProperty = new KannIrrelevantSeinProperty(entity);
            this.kategorieProperty = new KategorieProperty(entity);
            this.kriteriumtextProperty = new KriteriumtextProperty(entity);
            this.positionProperty = new PositionProperty(entity);
            this.pruefkriteriumBezugProperty = new PruefkriteriumBezugProperty(entity);
        this.pruefkriteriumBezugMitLeererAuswahlProperty = new PruefkriteriumBezugMitLeererAuswahlProperty(entity);
            this.teilDerSofortpruefungProperty = new TeilDerSofortpruefungProperty(entity);
            this.textFuerProtokollErfuelltProperty = new TextFuerProtokollErfuelltProperty(entity);
            this.textFuerProtokollFristProperty = new TextFuerProtokollFristProperty(entity);
            this.textFuerProtokollNichtErfuelltProperty = new TextFuerProtokollNichtErfuelltProperty(entity);
            this.unterkategorieProperty = new UnterkategorieProperty(entity);
            this.wahlrechtlichRelevantProperty = new WahlrechtlichRelevantProperty(entity);
          }

  private static PruefkriteriumMeta getMetaData() {
    return FacesContextUtil.getElValue("#{pruefkriteriumMeta}", PruefkriteriumMeta.class);
  }



    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class FristInTagenBisZurWahlProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty
  {

    protected final Pruefkriterium entity;

    public FristInTagenBisZurWahlProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getFristInTagenBisZurWahlEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isFristInTagenBisZurWahlRequired();
    }

    @Override
    public java.lang.Long getDefaultValue() {
      return getMetaDataIntern().getFristInTagenBisZurWahlDefaultValue();
    }

    @javax.validation.constraints.Min(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.FRIST_IN_TAGEN_BIS_ZUR_WAHL_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.FRIST_IN_TAGEN_BIS_ZUR_WAHL_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getFristInTagenBisZurWahl();
    }

    @Override
    public void setValue(java.lang.Long value) {
      entity.setFristInTagenBisZurWahl(value);
    }
    @Override
    public long getMinValue() {
      return getMetaDataIntern().getFristInTagenBisZurWahlMinValue();
    }

    @Override
    public int getMaxLength() {
      return getMetaDataIntern().getFristInTagenBisZurWahlMaxLength();
    }

    @Override
    public long getMaxValue() {
      return getMetaDataIntern().getFristInTagenBisZurWahlMaxValue();
    }


  }

  public FristInTagenBisZurWahlProperty getFristInTagenBisZurWahlProperty() {
    return fristInTagenBisZurWahlProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class HeilungsfaehigProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractBooleanProperty
  {

    protected final Pruefkriterium entity;

    public HeilungsfaehigProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getHeilungsfaehigEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isHeilungsfaehigRequired();
    }

    @Override
    public java.lang.Boolean getDefaultValue() {
      return getMetaDataIntern().getHeilungsfaehigDefaultValue();
    }

    
    @Override
    public java.lang.Boolean getValue() {
      return entity.getHeilungsfaehig();
    }

    @Override
    public void setValue(java.lang.Boolean value) {
      entity.setHeilungsfaehig(value);
    }

  }

  public HeilungsfaehigProperty getHeilungsfaehigProperty() {
    return heilungsfaehigProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class KannIrrelevantSeinProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractBooleanProperty
  {

    protected final Pruefkriterium entity;

    public KannIrrelevantSeinProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getKannIrrelevantSeinEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isKannIrrelevantSeinRequired();
    }

    @Override
    public java.lang.Boolean getDefaultValue() {
      return getMetaDataIntern().getKannIrrelevantSeinDefaultValue();
    }

    
    @Override
    public java.lang.Boolean getValue() {
      return entity.getKannIrrelevantSein();
    }

    @Override
    public void setValue(java.lang.Boolean value) {
      entity.setKannIrrelevantSein(value);
    }

  }

  public KannIrrelevantSeinProperty getKannIrrelevantSeinProperty() {
    return kannIrrelevantSeinProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class KategorieProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public KategorieProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getKategorieEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isKategorieRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getKategorieDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.KATEGORIE_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getKategorie();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setKategorie(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getKategorieMaxLength();
    }

  }

  public KategorieProperty getKategorieProperty() {
    return kategorieProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class KriteriumtextProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public KriteriumtextProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getKriteriumtextEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isKriteriumtextRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getKriteriumtextDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.KRITERIUMTEXT_MAX_LENGTH , min=1  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getKriteriumtext();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setKriteriumtext(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getKriteriumtextMaxLength();
    }

  }

  public KriteriumtextProperty getKriteriumtextProperty() {
    return kriteriumtextProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class PositionProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty
  {

    protected final Pruefkriterium entity;

    public PositionProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getPositionEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isPositionRequired();
    }

    @Override
    public java.lang.Long getDefaultValue() {
      return getMetaDataIntern().getPositionDefaultValue();
    }

    @javax.validation.constraints.Min(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.POSITION_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.POSITION_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getPosition();
    }

    @Override
    public void setValue(java.lang.Long value) {
      entity.setPosition(value);
    }
    @Override
    public long getMinValue() {
      return getMetaDataIntern().getPositionMinValue();
    }

    @Override
    public int getMaxLength() {
      return getMetaDataIntern().getPositionMaxLength();
    }

    @Override
    public long getMaxValue() {
      return getMetaDataIntern().getPositionMaxValue();
    }


  }

  public PositionProperty getPositionProperty() {
    return positionProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class PruefkriteriumBezugProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty<de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug>
  {

    protected final Pruefkriterium entity;

    public PruefkriteriumBezugProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getPruefkriteriumBezugEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isPruefkriteriumBezugRequired();
    }

    @Override
    public de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug getDefaultValue() {
      return getMetaDataIntern().getPruefkriteriumBezugDefaultValue();
    }

    
    @Override
    public de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug getValue() {
      return entity.getPruefkriteriumBezug();
    }

    @Override
    public void setValue(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug value) {
      entity.setPruefkriteriumBezug(value);
    }
    @Override
    public java.util.List<de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug> getValues() {
      return java.util.Arrays.stream(de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug.values()).filter(getValueFilter()).sorted().collect(java.util.stream.Collectors.toList());
    }

    @Override
    public Class<de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug> getEnumClass() {
      return de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumBezug.class;
    }

  }

  public PruefkriteriumBezugProperty getPruefkriteriumBezugProperty() {
    return pruefkriteriumBezugProperty;
  }


            @javax.enterprise.inject.Vetoed
        @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
        public static class PruefkriteriumBezugMitLeererAuswahlProperty extends PruefkriteriumBezugProperty {
        public PruefkriteriumBezugMitLeererAuswahlProperty(Pruefkriterium entity) {
        super(entity);
        }

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

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

        public PruefkriteriumBezugMitLeererAuswahlProperty getPruefkriteriumBezugMitLeererAuswahlProperty() {
        return pruefkriteriumBezugMitLeererAuswahlProperty;
        }
    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class TeilDerSofortpruefungProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractBooleanProperty
  {

    protected final Pruefkriterium entity;

    public TeilDerSofortpruefungProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getTeilDerSofortpruefungEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isTeilDerSofortpruefungRequired();
    }

    @Override
    public java.lang.Boolean getDefaultValue() {
      return getMetaDataIntern().getTeilDerSofortpruefungDefaultValue();
    }

    
    @Override
    public java.lang.Boolean getValue() {
      return entity.getTeilDerSofortpruefung();
    }

    @Override
    public void setValue(java.lang.Boolean value) {
      entity.setTeilDerSofortpruefung(value);
    }

  }

  public TeilDerSofortpruefungProperty getTeilDerSofortpruefungProperty() {
    return teilDerSofortpruefungProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class TextFuerProtokollErfuelltProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public TextFuerProtokollErfuelltProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getTextFuerProtokollErfuelltEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isTextFuerProtokollErfuelltRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getTextFuerProtokollErfuelltDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.TEXT_FUER_PROTOKOLL_ERFUELLT_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getTextFuerProtokollErfuellt();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setTextFuerProtokollErfuellt(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getTextFuerProtokollErfuelltMaxLength();
    }

  }

  public TextFuerProtokollErfuelltProperty getTextFuerProtokollErfuelltProperty() {
    return textFuerProtokollErfuelltProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class TextFuerProtokollFristProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public TextFuerProtokollFristProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getTextFuerProtokollFristEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isTextFuerProtokollFristRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getTextFuerProtokollFristDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.TEXT_FUER_PROTOKOLL_FRIST_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getTextFuerProtokollFrist();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setTextFuerProtokollFrist(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getTextFuerProtokollFristMaxLength();
    }

  }

  public TextFuerProtokollFristProperty getTextFuerProtokollFristProperty() {
    return textFuerProtokollFristProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class TextFuerProtokollNichtErfuelltProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public TextFuerProtokollNichtErfuelltProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getTextFuerProtokollNichtErfuelltEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isTextFuerProtokollNichtErfuelltRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getTextFuerProtokollNichtErfuelltDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.TEXT_FUER_PROTOKOLL_NICHT_ERFU_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getTextFuerProtokollNichtErfuellt();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setTextFuerProtokollNichtErfuellt(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getTextFuerProtokollNichtErfuelltMaxLength();
    }

  }

  public TextFuerProtokollNichtErfuelltProperty getTextFuerProtokollNichtErfuelltProperty() {
    return textFuerProtokollNichtErfuelltProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class UnterkategorieProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Pruefkriterium entity;

    public UnterkategorieProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getUnterkategorieEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isUnterkategorieRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getUnterkategorieDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.wahlrechtspruefung.entity.PruefkriteriumConstants.UNTERKATEGORIE_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getUnterkategorie();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setUnterkategorie(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getUnterkategorieMaxLength();
    }

  }

  public UnterkategorieProperty getUnterkategorieProperty() {
    return unterkategorieProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class WahlrechtlichRelevantProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractBooleanProperty
  {

    protected final Pruefkriterium entity;

    public WahlrechtlichRelevantProperty(Pruefkriterium entity) {
      super();
      this.entity = entity;
    }

    public PruefkriteriumMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getWahlrechtlichRelevantEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isWahlrechtlichRelevantRequired();
    }

    @Override
    public java.lang.Boolean getDefaultValue() {
      return getMetaDataIntern().getWahlrechtlichRelevantDefaultValue();
    }

    
    @Override
    public java.lang.Boolean getValue() {
      return entity.getWahlrechtlichRelevant();
    }

    @Override
    public void setValue(java.lang.Boolean value) {
      entity.setWahlrechtlichRelevant(value);
    }

  }

  public WahlrechtlichRelevantProperty getWahlrechtlichRelevantProperty() {
    return wahlrechtlichRelevantProperty;
  }


    
  }