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

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

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

private final Entschaedigung entity;


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

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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus>
                  statusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus> statusMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  waehrungAlsIsoCodeProperty;

        
    

public EntschaedigungProperties(Entschaedigung entity) {
this.entity = entity;

}

private static EntschaedigungMeta getMetaData() {
return de.ivu.elect.jee.cdi.BeanManagerUtil.getBeanByClass( EntschaedigungMeta.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.entschaedigung.entity.EntschaedigungConstants.ANZAHL_MIN_VALUE
            ,de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.ANZAHL_MAX_VALUE
                           );

        }


        return anzahlProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBezeichnungEinzahlMessage(),
        getMetaData().getBezeichnungDefaultValue(),
        getMetaData().isBezeichnungRequired(),
                entity::setBezeichnung,
        entity::getBezeichnung

                    , 0 ,
            de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.BESCHREIBUNG_MAX_LENGTH
                );

        }


        return bezeichnungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaBigDecimalProperty
        
        (
        getMetaData().getEinzelbetragEinzahlMessage(),
        getMetaData().getEinzelbetragDefaultValue(),
        getMetaData().isEinzelbetragRequired(),
                    "#######0.00",
                entity::setEinzelbetrag,
        entity::getEinzelbetrag

                    ,de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.EINZELBETRAG_MIN_VALUE
            ,de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.EINZELBETRAG_MAX_VALUE
                           );

        }


        return einzelbetragProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaBigDecimalProperty
        
        (
        getMetaData().getGesamtbetragEinzahlMessage(),
        getMetaData().getGesamtbetragDefaultValue(),
        getMetaData().isGesamtbetragRequired(),
                    "#######0.00",
                entity::setGesamtbetrag,
        entity::getGesamtbetrag

                    ,de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.GESAMTBETRAG_MIN_VALUE
            ,de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.GESAMTBETRAG_MAX_VALUE
                           );

        }


        return gesamtbetragProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus>
                getStatusProperty() {
        if (statusProperty == null) {
        statusProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getStatusEinzahlMessage(),
        getMetaData().getStatusDefaultValue(),
        getMetaData().isStatusRequired(),
                entity::setStatus,
        entity::getStatus

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

        }


        return statusProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus> getStatusMitLeererAuswahlProperty() {
               if (statusMitLeererAuswahlProperty == null) {
                 statusMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getStatusEinzahlMessage(),
        				getMetaData().getStatusDefaultValue(),
                        getMetaData().isStatusRequired(),
                        entity::setStatus,
                        entity::getStatus
                        , de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus.class,
                        java.util.Arrays.asList(de.ivu.elect.business.entschaedigung.entity.EntschaedigungStatus.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return statusMitLeererAuswahlProperty;
            }
        
        

        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

                    , 0 ,
            de.ivu.elect.business.entschaedigung.entity.EntschaedigungConstants.WAEHRUNG_MAX_LENGTH
                );

        }


        return waehrungAlsIsoCodeProperty;
        }





        
        }