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

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

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

private final Veranstaltung entity;


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

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

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

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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.SchulungArt>
                  schulungArtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.SchulungArt> schulungArtMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
                  teilnehmerAnzahlMaxProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt>
                  veranstaltungArtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt> veranstaltungArtMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  veranstaltungOrtProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus>
                  veranstaltungStatusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus> veranstaltungStatusMitLeererAuswahlProperty;
        
    

public VeranstaltungProperties(Veranstaltung entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getBeginnEinzahlMessage(),
        getMetaData().getBeginnDefaultValue(),
        getMetaData().isBeginnRequired(),
                entity::setBeginn,
        entity::getBeginn

                );

        }


        return beginnProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBemerkungEinzahlMessage(),
        getMetaData().getBemerkungDefaultValue(),
        getMetaData().isBemerkungRequired(),
                entity::setBemerkung,
        entity::getBemerkung

                    , 0 ,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.BEMERKUNG_MAX_LENGTH
                );

        }


        return bemerkungProperty;
        }





        
        

        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

                    ,  1 ,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.BEZEICHNUNG_MAX_LENGTH
                );

        }


        return bezeichnungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getEndeEinzahlMessage(),
        getMetaData().getEndeDefaultValue(),
        getMetaData().isEndeRequired(),
                entity::setEnde,
        entity::getEnde

                );

        }


        return endeProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getExterneIdEinzahlMessage(),
        getMetaData().getExterneIdDefaultValue(),
        getMetaData().isExterneIdRequired(),
                entity::setExterneId,
        entity::getExterneId

                    , 0 ,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.EXTERNE_ID_MAX_LENGTH
                );

        }


        return externeIdProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getRaumBezeichnungEinzahlMessage(),
        getMetaData().getRaumBezeichnungDefaultValue(),
        getMetaData().isRaumBezeichnungRequired(),
                entity::setRaumBezeichnung,
        entity::getRaumBezeichnung

                    , 0 ,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.RAUM_BEZEICHNUNG_MAX_LENGTH
                );

        }


        return raumBezeichnungProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.SchulungArt>
                getSchulungArtProperty() {
        if (schulungArtProperty == null) {
        schulungArtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getSchulungArtEinzahlMessage(),
        getMetaData().getSchulungArtDefaultValue(),
        getMetaData().isSchulungArtRequired(),
                entity::setSchulungArt,
        entity::getSchulungArt

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

        }


        return schulungArtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.SchulungArt> getSchulungArtMitLeererAuswahlProperty() {
               if (schulungArtMitLeererAuswahlProperty == null) {
                 schulungArtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getSchulungArtEinzahlMessage(),
        				getMetaData().getSchulungArtDefaultValue(),
                        getMetaData().isSchulungArtRequired(),
                        entity::setSchulungArt,
                        entity::getSchulungArt
                        , de.ivu.elect.business.veranstaltung.entity.SchulungArt.class,
                        java.util.Arrays.asList(de.ivu.elect.business.veranstaltung.entity.SchulungArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return schulungArtMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
        
        (
        getMetaData().getTeilnehmerAnzahlMaxEinzahlMessage(),
        getMetaData().getTeilnehmerAnzahlMaxDefaultValue(),
        getMetaData().isTeilnehmerAnzahlMaxRequired(),
                entity::setTeilnehmerAnzahlMax,
        entity::getTeilnehmerAnzahlMax

                    , de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.TEILNEHMER_ANZAHL_MAX_MIN_VALUE,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.TEILNEHMER_ANZAHL_MAX_MAX_VALUE,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.TEILNEHMER_ANZAHL_MAX_MAX_LENGTH
                );

        }


        return teilnehmerAnzahlMaxProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt>
                getVeranstaltungArtProperty() {
        if (veranstaltungArtProperty == null) {
        veranstaltungArtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getVeranstaltungArtEinzahlMessage(),
        getMetaData().getVeranstaltungArtDefaultValue(),
        getMetaData().isVeranstaltungArtRequired(),
                entity::setVeranstaltungArt,
        entity::getVeranstaltungArt

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

        }


        return veranstaltungArtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt> getVeranstaltungArtMitLeererAuswahlProperty() {
               if (veranstaltungArtMitLeererAuswahlProperty == null) {
                 veranstaltungArtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getVeranstaltungArtEinzahlMessage(),
        				getMetaData().getVeranstaltungArtDefaultValue(),
                        getMetaData().isVeranstaltungArtRequired(),
                        entity::setVeranstaltungArt,
                        entity::getVeranstaltungArt
                        , de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt.class,
                        java.util.Arrays.asList(de.ivu.elect.business.veranstaltung.entity.VeranstaltungArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return veranstaltungArtMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getVeranstaltungOrtEinzahlMessage(),
        getMetaData().getVeranstaltungOrtDefaultValue(),
        getMetaData().isVeranstaltungOrtRequired(),
                entity::setVeranstaltungOrt,
        entity::getVeranstaltungOrt

                    , 0 ,
            de.ivu.elect.business.veranstaltung.entity.VeranstaltungConstants.VERANSTALTUNG_ORT_MAX_LENGTH
                );

        }


        return veranstaltungOrtProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus>
                getVeranstaltungStatusProperty() {
        if (veranstaltungStatusProperty == null) {
        veranstaltungStatusProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getVeranstaltungStatusEinzahlMessage(),
        getMetaData().getVeranstaltungStatusDefaultValue(),
        getMetaData().isVeranstaltungStatusRequired(),
                entity::setVeranstaltungStatus,
        entity::getVeranstaltungStatus

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

        }


        return veranstaltungStatusProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus> getVeranstaltungStatusMitLeererAuswahlProperty() {
               if (veranstaltungStatusMitLeererAuswahlProperty == null) {
                 veranstaltungStatusMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getVeranstaltungStatusEinzahlMessage(),
        				getMetaData().getVeranstaltungStatusDefaultValue(),
                        getMetaData().isVeranstaltungStatusRequired(),
                        entity::setVeranstaltungStatus,
                        entity::getVeranstaltungStatus
                        , de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus.class,
                        java.util.Arrays.asList(de.ivu.elect.business.veranstaltung.entity.VeranstaltungStatus.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return veranstaltungStatusMitLeererAuswahlProperty;
            }
        
        }