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

import de.ivu.elect.jee.presentation.dynamicform.Property;

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

private final Wahlvorschlagsdokument entity;


    
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
                  anzahlProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt>
                  wahlvorschlagsdokumentArtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt> wahlvorschlagsdokumentArtMitLeererAuswahlProperty;
        
    

public WahlvorschlagsdokumentProperties(Wahlvorschlagsdokument entity) {
this.entity = entity;

}

private static WahlvorschlagsdokumentMeta getMetaData() {
return de.ivu.elect.jee.cdi.BeanManagerUtil.getBeanByClass( WahlvorschlagsdokumentMeta.class);
}


    

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty
                getAnzahlProperty() {
        if (anzahlProperty == null) {
        anzahlProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
        
        (
        getMetaData().getAnzahlEinzahlMessage(),
        getMetaData().getAnzahlDefaultValue(),
        getMetaData().isAnzahlRequired(),
                entity::setAnzahl,
        entity::getAnzahl

                    , de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentConstants.ANZAHL_MIN_VALUE,
            de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentConstants.ANZAHL_MAX_VALUE,
            de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentConstants.ANZAHL_MAX_LENGTH
                );

        }


        return anzahlProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt>
                getWahlvorschlagsdokumentArtProperty() {
        if (wahlvorschlagsdokumentArtProperty == null) {
        wahlvorschlagsdokumentArtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getWahlvorschlagsdokumentArtEinzahlMessage(),
        getMetaData().getWahlvorschlagsdokumentArtDefaultValue(),
        getMetaData().isWahlvorschlagsdokumentArtRequired(),
                entity::setWahlvorschlagsdokumentArt,
        entity::getWahlvorschlagsdokumentArt

                    , de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt.class,
            java.util.Arrays.asList(de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                );

        }


        return wahlvorschlagsdokumentArtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt> getWahlvorschlagsdokumentArtMitLeererAuswahlProperty() {
               if (wahlvorschlagsdokumentArtMitLeererAuswahlProperty == null) {
                 wahlvorschlagsdokumentArtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getWahlvorschlagsdokumentArtEinzahlMessage(),
        				getMetaData().getWahlvorschlagsdokumentArtDefaultValue(),
                        getMetaData().isWahlvorschlagsdokumentArtRequired(),
                        entity::setWahlvorschlagsdokumentArt,
                        entity::getWahlvorschlagsdokumentArt
                        , de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt.class,
                        java.util.Arrays.asList(de.ivu.elect.business.wahlvorschlag.entity.WahlvorschlagsdokumentArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return wahlvorschlagsdokumentArtMitLeererAuswahlProperty;
            }
        
        }