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

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

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

private final StatistikLauf entity;


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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
                  endeDesLaufsProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
                  startDesLaufsProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.statistik.entity.StatistikLaufStatus>
                  statusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.statistik.entity.StatistikLaufStatus> statusMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
                  zeitpunktDesLaufsProperty;

        
    

public StatistikLaufProperties(StatistikLauf entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getAusloeserEinzahlMessage(),
        getMetaData().getAusloeserDefaultValue(),
        getMetaData().isAusloeserRequired(),
                entity::setAusloeser,
        entity::getAusloeser

                    ,  1 ,
            de.ivu.elect.business.statistik.entity.StatistikLaufConstants.AUSLOESER_MAX_LENGTH
                );

        }


        return ausloeserProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBeschreibungEinzahlMessage(),
        getMetaData().getBeschreibungDefaultValue(),
        getMetaData().isBeschreibungRequired(),
                entity::setBeschreibung,
        entity::getBeschreibung

                    , 0 ,
            de.ivu.elect.business.statistik.entity.StatistikLaufConstants.BESCHREIBUNG_MAX_LENGTH
                );

        }


        return beschreibungProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractTimestampProperty
                getEndeDesLaufsProperty() {
        if (endeDesLaufsProperty == null) {
        endeDesLaufsProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getEndeDesLaufsEinzahlMessage(),
        getMetaData().getEndeDesLaufsDefaultValue(),
        getMetaData().isEndeDesLaufsRequired(),
                entity::setEndeDesLaufs,
        entity::getEndeDesLaufs

                );

        }


        return endeDesLaufsProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractTimestampProperty
                getStartDesLaufsProperty() {
        if (startDesLaufsProperty == null) {
        startDesLaufsProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getStartDesLaufsEinzahlMessage(),
        getMetaData().getStartDesLaufsDefaultValue(),
        getMetaData().isStartDesLaufsRequired(),
                entity::setStartDesLaufs,
        entity::getStartDesLaufs

                );

        }


        return startDesLaufsProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.statistik.entity.StatistikLaufStatus>
                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.statistik.entity.StatistikLaufStatus.class,
            java.util.Arrays.asList(de.ivu.elect.business.statistik.entity.StatistikLaufStatus.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.statistik.entity.StatistikLaufStatus> 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.statistik.entity.StatistikLaufStatus.class,
                        java.util.Arrays.asList(de.ivu.elect.business.statistik.entity.StatistikLaufStatus.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return statusMitLeererAuswahlProperty;
            }
        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractTimestampProperty
                getZeitpunktDesLaufsProperty() {
        if (zeitpunktDesLaufsProperty == null) {
        zeitpunktDesLaufsProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getZeitpunktDesLaufsEinzahlMessage(),
        getMetaData().getZeitpunktDesLaufsDefaultValue(),
        getMetaData().isZeitpunktDesLaufsRequired(),
                entity::setZeitpunktDesLaufs,
        entity::getZeitpunktDesLaufs

                );

        }


        return zeitpunktDesLaufsProperty;
        }





        
        }