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

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

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

private final WahlbeteiligungVerlauf entity;


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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufStatus>
                  statusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufStatus> statusMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp>
                  typProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp> typMitLeererAuswahlProperty;
        
    

public WahlbeteiligungVerlaufProperties(WahlbeteiligungVerlauf entity) {
this.entity = entity;

}

private static WahlbeteiligungVerlaufMeta getMetaData() {
return de.ivu.elect.jee.cdi.BeanManagerUtil.getBeanByClass( WahlbeteiligungVerlaufMeta.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.wahlbeteiligung.entity.WahlbeteiligungVerlaufConstants.BEMERKUNG_MAX_LENGTH
                );

        }


        return bemerkungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getDatumEinzahlMessage(),
        getMetaData().getDatumDefaultValue(),
        getMetaData().isDatumRequired(),
                entity::setDatum,
        entity::getDatum

                );

        }


        return datumProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getNameEinzahlMessage(),
        getMetaData().getNameDefaultValue(),
        getMetaData().isNameRequired(),
                entity::setName,
        entity::getName

                    ,  1 ,
            de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufConstants.NAME_MAX_LENGTH
                );

        }


        return nameProperty;
        }





        
        

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

               return statusMitLeererAuswahlProperty;
            }
        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp>
                getTypProperty() {
        if (typProperty == null) {
        typProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getTypEinzahlMessage(),
        getMetaData().getTypDefaultValue(),
        getMetaData().isTypRequired(),
                entity::setTyp,
        entity::getTyp

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

        }


        return typProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp> getTypMitLeererAuswahlProperty() {
               if (typMitLeererAuswahlProperty == null) {
                 typMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getTypEinzahlMessage(),
        				getMetaData().getTypDefaultValue(),
                        getMetaData().isTypRequired(),
                        entity::setTyp,
                        entity::getTyp
                        , de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp.class,
                        java.util.Arrays.asList(de.ivu.elect.business.wahlbeteiligung.entity.WahlbeteiligungVerlaufTyp.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return typMitLeererAuswahlProperty;
            }
        
        }