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

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

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

   private final NiederschriftArtProperty niederschriftArtProperty;
          private final NiederschriftArtMitLeererAuswahlProperty niederschriftArtMitLeererAuswahlProperty;
    


  public NiederschriftProperties(Niederschrift entity) {
    
    this.niederschriftArtProperty = new NiederschriftArtProperty(entity);
        this.niederschriftArtMitLeererAuswahlProperty = new NiederschriftArtMitLeererAuswahlProperty(entity);
          }

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



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

    protected final Niederschrift entity;

    public NiederschriftArtProperty(Niederschrift entity) {
      super();
      this.entity = entity;
    }

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

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

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

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

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

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

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

  }

  public NiederschriftArtProperty getNiederschriftArtProperty() {
    return niederschriftArtProperty;
  }


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

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

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

        public NiederschriftArtMitLeererAuswahlProperty getNiederschriftArtMitLeererAuswahlProperty() {
        return niederschriftArtMitLeererAuswahlProperty;
        }
    
  }