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

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

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

private final Teilnahme entity;


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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle>
                  teilnehmerRolleProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle> teilnehmerRolleMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus>
                  teilnehmerStatusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus> teilnehmerStatusMitLeererAuswahlProperty;
        
    

public TeilnahmeProperties(Teilnahme entity) {
this.entity = entity;

}

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


    

        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.TeilnahmeConstants.BEMERKUNG_MAX_LENGTH
                );

        }


        return bemerkungProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle>
                getTeilnehmerRolleProperty() {
        if (teilnehmerRolleProperty == null) {
        teilnehmerRolleProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getTeilnehmerRolleEinzahlMessage(),
        getMetaData().getTeilnehmerRolleDefaultValue(),
        getMetaData().isTeilnehmerRolleRequired(),
                entity::setTeilnehmerRolle,
        entity::getTeilnehmerRolle

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

        }


        return teilnehmerRolleProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle> getTeilnehmerRolleMitLeererAuswahlProperty() {
               if (teilnehmerRolleMitLeererAuswahlProperty == null) {
                 teilnehmerRolleMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getTeilnehmerRolleEinzahlMessage(),
        				getMetaData().getTeilnehmerRolleDefaultValue(),
                        getMetaData().isTeilnehmerRolleRequired(),
                        entity::setTeilnehmerRolle,
                        entity::getTeilnehmerRolle
                        , de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle.class,
                        java.util.Arrays.asList(de.ivu.elect.business.veranstaltung.entity.TeilnehmerRolle.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return teilnehmerRolleMitLeererAuswahlProperty;
            }
        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus>
                getTeilnehmerStatusProperty() {
        if (teilnehmerStatusProperty == null) {
        teilnehmerStatusProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getTeilnehmerStatusEinzahlMessage(),
        getMetaData().getTeilnehmerStatusDefaultValue(),
        getMetaData().isTeilnehmerStatusRequired(),
                entity::setTeilnehmerStatus,
        entity::getTeilnehmerStatus

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

        }


        return teilnehmerStatusProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus> getTeilnehmerStatusMitLeererAuswahlProperty() {
               if (teilnehmerStatusMitLeererAuswahlProperty == null) {
                 teilnehmerStatusMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getTeilnehmerStatusEinzahlMessage(),
        				getMetaData().getTeilnehmerStatusDefaultValue(),
                        getMetaData().isTeilnehmerStatusRequired(),
                        entity::setTeilnehmerStatus,
                        entity::getTeilnehmerStatus
                        , de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus.class,
                        java.util.Arrays.asList(de.ivu.elect.business.veranstaltung.entity.TeilnehmerStatus.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return teilnehmerStatusMitLeererAuswahlProperty;
            }
        
        }