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

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

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

private final WahlausschussEntschaedigung entity;


    
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaBigDecimalProperty
                  betragProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  waehrungAlsIsoCodeProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle>
                  wahlausschussrolleProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle> wahlausschussrolleMitLeererAuswahlProperty;
        
    

public WahlausschussEntschaedigungProperties(WahlausschussEntschaedigung entity) {
this.entity = entity;

}

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


    

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractBigDecimalProperty
                getBetragProperty() {
        if (betragProperty == null) {
        betragProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaBigDecimalProperty
        
        (
        getMetaData().getBetragEinzahlMessage(),
        getMetaData().getBetragDefaultValue(),
        getMetaData().isBetragRequired(),
                    "#######0.00",
                entity::setBetrag,
        entity::getBetrag

                    ,de.ivu.elect.business.wahlausschuss.entity.WahlausschussEntschaedigungConstants.BETRAG_MIN_VALUE
            ,de.ivu.elect.business.wahlausschuss.entity.WahlausschussEntschaedigungConstants.BETRAG_MAX_VALUE
                           );

        }


        return betragProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
                getWaehrungAlsIsoCodeProperty() {
        if (waehrungAlsIsoCodeProperty == null) {
        waehrungAlsIsoCodeProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getWaehrungAlsIsoCodeEinzahlMessage(),
        getMetaData().getWaehrungAlsIsoCodeDefaultValue(),
        getMetaData().isWaehrungAlsIsoCodeRequired(),
                entity::setWaehrungAlsIsoCode,
        entity::getWaehrungAlsIsoCode

                    ,  1 ,
            de.ivu.elect.business.wahlausschuss.entity.WahlausschussEntschaedigungConstants.WAEHRUNG_MAX_LENGTH
                );

        }


        return waehrungAlsIsoCodeProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle>
                getWahlausschussrolleProperty() {
        if (wahlausschussrolleProperty == null) {
        wahlausschussrolleProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getWahlausschussrolleEinzahlMessage(),
        getMetaData().getWahlausschussrolleDefaultValue(),
        getMetaData().isWahlausschussrolleRequired(),
                entity::setWahlausschussrolle,
        entity::getWahlausschussrolle

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

        }


        return wahlausschussrolleProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle> getWahlausschussrolleMitLeererAuswahlProperty() {
               if (wahlausschussrolleMitLeererAuswahlProperty == null) {
                 wahlausschussrolleMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getWahlausschussrolleEinzahlMessage(),
        				getMetaData().getWahlausschussrolleDefaultValue(),
                        getMetaData().isWahlausschussrolleRequired(),
                        entity::setWahlausschussrolle,
                        entity::getWahlausschussrolle
                        , de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle.class,
                        java.util.Arrays.asList(de.ivu.elect.business.wahlausschuss.entity.Wahlausschussrolle.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return wahlausschussrolleMitLeererAuswahlProperty;
            }
        
        }