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

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

@javax.enterprise.inject.Vetoed
public class ListenkandidaturProperties 
extends de.ivu.elect.business.kandidatur.entity.KandidaturProperties
{

   private final AnzahlNennungenProperty anzahlNennungenProperty;
    
   private final EingereichtePositionProperty eingereichtePositionProperty;
    
   private final ListenkandidaturArtProperty listenkandidaturArtProperty;
          private final ListenkandidaturArtMitLeererAuswahlProperty listenkandidaturArtMitLeererAuswahlProperty;
    
   private final RelativePositionProperty relativePositionProperty;
    
   private final VorgegebenePositionProperty vorgegebenePositionProperty;
    


  public ListenkandidaturProperties(Listenkandidatur entity) {
          super(entity);
    
    this.anzahlNennungenProperty = new AnzahlNennungenProperty(entity);
            this.eingereichtePositionProperty = new EingereichtePositionProperty(entity);
            this.listenkandidaturArtProperty = new ListenkandidaturArtProperty(entity);
        this.listenkandidaturArtMitLeererAuswahlProperty = new ListenkandidaturArtMitLeererAuswahlProperty(entity);
            this.relativePositionProperty = new RelativePositionProperty(entity);
            this.vorgegebenePositionProperty = new VorgegebenePositionProperty(entity);
          }

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



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

    protected final Listenkandidatur entity;

    public AnzahlNennungenProperty(Listenkandidatur entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

    @javax.validation.constraints.Min(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.ANZAHL_NENNUNGEN_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.ANZAHL_NENNUNGEN_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getAnzahlNennungen();
    }

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

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


  }

  public AnzahlNennungenProperty getAnzahlNennungenProperty() {
    return anzahlNennungenProperty;
  }


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

    protected final Listenkandidatur entity;

    public EingereichtePositionProperty(Listenkandidatur entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

    @javax.validation.constraints.Min(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.EINGEREICHTE_POSITION_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.EINGEREICHTE_POSITION_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getEingereichtePosition();
    }

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

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


  }

  public EingereichtePositionProperty getEingereichtePositionProperty() {
    return eingereichtePositionProperty;
  }


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

    protected final Listenkandidatur entity;

    public ListenkandidaturArtProperty(Listenkandidatur entity) {
      super();
      this.entity = entity;
    }

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

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

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

    @Override
    public de.ivu.elect.business.kandidatur.entity.ListenkandidaturArt getDefaultValue() {
      return getMetaDataIntern().getListenkandidaturArtDefaultValue();
    }

    
    @Override
    public de.ivu.elect.business.kandidatur.entity.ListenkandidaturArt getValue() {
      return entity.getListenkandidaturArt();
    }

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

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

  }

  public ListenkandidaturArtProperty getListenkandidaturArtProperty() {
    return listenkandidaturArtProperty;
  }


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

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

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

        public ListenkandidaturArtMitLeererAuswahlProperty getListenkandidaturArtMitLeererAuswahlProperty() {
        return listenkandidaturArtMitLeererAuswahlProperty;
        }
    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class RelativePositionProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty
  {

    protected final Listenkandidatur entity;

    public RelativePositionProperty(Listenkandidatur entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

    @javax.validation.constraints.Min(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.RELATIVE_POSITION_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.RELATIVE_POSITION_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getRelativePosition();
    }

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

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


  }

  public RelativePositionProperty getRelativePositionProperty() {
    return relativePositionProperty;
  }


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

    protected final Listenkandidatur entity;

    public VorgegebenePositionProperty(Listenkandidatur entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

    @javax.validation.constraints.Min(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.VORGEGEBENE_POSITION_MIN_VALUE)
    @javax.validation.constraints.Max(de.ivu.elect.business.kandidatur.entity.ListenkandidaturConstants.VORGEGEBENE_POSITION_MAX_VALUE)
    
    @Override
    public java.lang.Long getValue() {
      return entity.getVorgegebenePosition();
    }

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

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


  }

  public VorgegebenePositionProperty getVorgegebenePositionProperty() {
    return vorgegebenePositionProperty;
  }


    
  }