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

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

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

   private final BesitzerProperty besitzerProperty;
    
   private final RaumProperty raumProperty;
    
   private final StatusProperty statusProperty;
          private final StatusMitLeererAuswahlProperty statusMitLeererAuswahlProperty;
    
   private final ZeitstempelProperty zeitstempelProperty;
    


  public NiederschriftStatusAenderungProperties(NiederschriftStatusAenderung entity) {
        
    this.besitzerProperty = new BesitzerProperty(entity);
            this.raumProperty = new RaumProperty(entity);
            this.statusProperty = new StatusProperty(entity);
        this.statusMitLeererAuswahlProperty = new StatusMitLeererAuswahlProperty(entity);
            this.zeitstempelProperty = new ZeitstempelProperty(entity);
          }

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



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

    protected final NiederschriftStatusAenderung entity;

    public BesitzerProperty(NiederschriftStatusAenderung entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

  @javax.validation.constraints.Size(max=de.ivu.elect.business.niederschrift.entity.NiederschriftStatusAenderungConstants.BESITZER_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getBesitzer();
    }

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

  }

  public BesitzerProperty getBesitzerProperty() {
    return besitzerProperty;
  }


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

    protected final NiederschriftStatusAenderung entity;

    public RaumProperty(NiederschriftStatusAenderung entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

  @javax.validation.constraints.Size(max=de.ivu.elect.business.niederschrift.entity.NiederschriftStatusAenderungConstants.RAUM_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getRaum();
    }

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

  }

  public RaumProperty getRaumProperty() {
    return raumProperty;
  }


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

    protected final NiederschriftStatusAenderung entity;

    public StatusProperty(NiederschriftStatusAenderung entity) {
      super();
      this.entity = entity;
    }

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

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

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

    @Override
    public de.ivu.elect.business.niederschrift.entity.NiederschriftStatus getDefaultValue() {
      return getMetaDataIntern().getStatusDefaultValue();
    }

    
    @Override
    public de.ivu.elect.business.niederschrift.entity.NiederschriftStatus getValue() {
      return entity.getStatus();
    }

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

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

  }

  public StatusProperty getStatusProperty() {
    return statusProperty;
  }


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

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

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

        public StatusMitLeererAuswahlProperty getStatusMitLeererAuswahlProperty() {
        return statusMitLeererAuswahlProperty;
        }
    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class ZeitstempelProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractTimestampProperty
    {

    protected final NiederschriftStatusAenderung entity;

    public ZeitstempelProperty(NiederschriftStatusAenderung entity) {
      super();
      this.entity = entity;
    }

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

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

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

    @Override
    public java.util.Date getDefaultValue() {
      return getMetaDataIntern().getZeitstempelDefaultValue();
    }

    
    @Override
    public java.util.Date getValue() {
      return entity.getZeitstempel();
    }

    @Override
    public void setValue(java.util.Date value) {
      entity.setZeitstempel(value);
    }

  }

  public ZeitstempelProperty getZeitstempelProperty() {
    return zeitstempelProperty;
  }


    
  }