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

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

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

private final SystemLog entity;


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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.LogNachrichtArt>
                  logNachrichtArtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.LogNachrichtArt> logNachrichtArtMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogQuelle>
                  quelleProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogQuelle> quelleMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogStatus>
                  statusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogStatus> statusMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
                  zeitpunktProperty;

        
    

public SystemLogProperties(SystemLog entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getLogNachrichtEinzahlMessage(),
        getMetaData().getLogNachrichtDefaultValue(),
        getMetaData().isLogNachrichtRequired(),
                entity::setLogNachricht,
        entity::getLogNachricht

                    ,  1 ,
            de.ivu.elect.business.system.entity.SystemLogConstants.LOG_NACHRICHT_MAX_LENGTH
                );

        }


        return logNachrichtProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.LogNachrichtArt>
                getLogNachrichtArtProperty() {
        if (logNachrichtArtProperty == null) {
        logNachrichtArtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getLogNachrichtArtEinzahlMessage(),
        getMetaData().getLogNachrichtArtDefaultValue(),
        getMetaData().isLogNachrichtArtRequired(),
                entity::setLogNachrichtArt,
        entity::getLogNachrichtArt

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

        }


        return logNachrichtArtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.LogNachrichtArt> getLogNachrichtArtMitLeererAuswahlProperty() {
               if (logNachrichtArtMitLeererAuswahlProperty == null) {
                 logNachrichtArtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getLogNachrichtArtEinzahlMessage(),
        				getMetaData().getLogNachrichtArtDefaultValue(),
                        getMetaData().isLogNachrichtArtRequired(),
                        entity::setLogNachrichtArt,
                        entity::getLogNachrichtArt
                        , de.ivu.elect.business.system.entity.LogNachrichtArt.class,
                        java.util.Arrays.asList(de.ivu.elect.business.system.entity.LogNachrichtArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return logNachrichtArtMitLeererAuswahlProperty;
            }
        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogQuelle>
                getQuelleProperty() {
        if (quelleProperty == null) {
        quelleProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getQuelleEinzahlMessage(),
        getMetaData().getQuelleDefaultValue(),
        getMetaData().isQuelleRequired(),
                entity::setQuelle,
        entity::getQuelle

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

        }


        return quelleProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.system.entity.SystemLogQuelle> getQuelleMitLeererAuswahlProperty() {
               if (quelleMitLeererAuswahlProperty == null) {
                 quelleMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getQuelleEinzahlMessage(),
        				getMetaData().getQuelleDefaultValue(),
                        getMetaData().isQuelleRequired(),
                        entity::setQuelle,
                        entity::getQuelle
                        , de.ivu.elect.business.system.entity.SystemLogQuelle.class,
                        java.util.Arrays.asList(de.ivu.elect.business.system.entity.SystemLogQuelle.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return quelleMitLeererAuswahlProperty;
            }
        
        

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

               return statusMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getZeitpunktEinzahlMessage(),
        getMetaData().getZeitpunktDefaultValue(),
        getMetaData().isZeitpunktRequired(),
                entity::setZeitpunkt,
        entity::getZeitpunkt

                );

        }


        return zeitpunktProperty;
        }





        
        }