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

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

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

   private final BemerkungProperty bemerkungProperty;
    
   private final FristInTagenBisZurWahlProperty fristInTagenBisZurWahlProperty;
    
   private final WahlrechtspruefStatusProperty wahlrechtspruefStatusProperty;
          private final WahlrechtspruefStatusMitLeererAuswahlProperty wahlrechtspruefStatusMitLeererAuswahlProperty;
    


  public WahlrechtspruefungProperties(Wahlrechtspruefung entity) {
    
    this.bemerkungProperty = new BemerkungProperty(entity);
            this.fristInTagenBisZurWahlProperty = new FristInTagenBisZurWahlProperty(entity);
            this.wahlrechtspruefStatusProperty = new WahlrechtspruefStatusProperty(entity);
        this.wahlrechtspruefStatusMitLeererAuswahlProperty = new WahlrechtspruefStatusMitLeererAuswahlProperty(entity);
          }

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



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

    protected final Wahlrechtspruefung entity;

    public BemerkungProperty(Wahlrechtspruefung entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

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

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

  }

  public BemerkungProperty getBemerkungProperty() {
    return bemerkungProperty;
  }


    
  
    @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 Wahlrechtspruefung entity;

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

    public WahlrechtspruefungMeta 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.WahlrechtspruefungConstants.FRIST_IN_TAGEN_BIS_ZUR_WAHL_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.wahlrechtspruefung.entity.WahlrechtspruefungConstants.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 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 WahlrechtspruefStatusProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty<de.ivu.elect.business.wahlrechtspruefung.entity.WahlrechtspruefStatus>
  {

    protected final Wahlrechtspruefung entity;

    public WahlrechtspruefStatusProperty(Wahlrechtspruefung entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

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

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

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

  }

  public WahlrechtspruefStatusProperty getWahlrechtspruefStatusProperty() {
    return wahlrechtspruefStatusProperty;
  }


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

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

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

        public WahlrechtspruefStatusMitLeererAuswahlProperty getWahlrechtspruefStatusMitLeererAuswahlProperty() {
        return wahlrechtspruefStatusMitLeererAuswahlProperty;
        }
    
  }