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

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

@javax.enterprise.inject.Vetoed
public class FremdkandidaturProperties
extends de.ivu.elect.business.person.entity.PersonendatenProperties
{

private final Fremdkandidatur entity;


    
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaDateProperty
                  datumPruefungProperty;

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus>
                  bescheinigungDokumentStatusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus> bescheinigungDokumentStatusMitLeererAuswahlProperty;
        
    

public FremdkandidaturProperties(Fremdkandidatur entity) {
super(entity);
this.entity = entity;

}

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


    

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractDateProperty
                getDatumPruefungProperty() {
        if (datumPruefungProperty == null) {
        datumPruefungProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaDateProperty
        
        (
        getMetaData().getDatumPruefungEinzahlMessage(),
        getMetaData().getDatumPruefungDefaultValue(),
        getMetaData().isDatumPruefungRequired(),
                entity::setDatumPruefung,
        entity::getDatumPruefung

                );

        }


        return datumPruefungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getBescheinigungDokumentErstelltAmEinzahlMessage(),
        getMetaData().getBescheinigungDokumentErstelltAmDefaultValue(),
        getMetaData().isBescheinigungDokumentErstelltAmRequired(),
                entity::setBescheinigungDokumentErstelltAm,
        entity::getBescheinigungDokumentErstelltAm

                );

        }


        return bescheinigungDokumentErstelltAmProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBescheinigungDokumentErstelltVonEinzahlMessage(),
        getMetaData().getBescheinigungDokumentErstelltVonDefaultValue(),
        getMetaData().isBescheinigungDokumentErstelltVonRequired(),
                entity::setBescheinigungDokumentErstelltVon,
        entity::getBescheinigungDokumentErstelltVon

                    , 0 ,
            de.ivu.elect.business.fremdkandidatur.entity.FremdkandidaturConstants.WAEHLBARKEIT_DOK_ERSTELLT_VON_MAX_LENGTH
                );

        }


        return bescheinigungDokumentErstelltVonProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus>
                getBescheinigungDokumentStatusProperty() {
        if (bescheinigungDokumentStatusProperty == null) {
        bescheinigungDokumentStatusProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getBescheinigungDokumentStatusEinzahlMessage(),
        getMetaData().getBescheinigungDokumentStatusDefaultValue(),
        getMetaData().isBescheinigungDokumentStatusRequired(),
                entity::setBescheinigungDokumentStatus,
        entity::getBescheinigungDokumentStatus

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

        }


        return bescheinigungDokumentStatusProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus> getBescheinigungDokumentStatusMitLeererAuswahlProperty() {
               if (bescheinigungDokumentStatusMitLeererAuswahlProperty == null) {
                 bescheinigungDokumentStatusMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getBescheinigungDokumentStatusEinzahlMessage(),
        				getMetaData().getBescheinigungDokumentStatusDefaultValue(),
                        getMetaData().isBescheinigungDokumentStatusRequired(),
                        entity::setBescheinigungDokumentStatus,
                        entity::getBescheinigungDokumentStatus
                        , de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus.class,
                        java.util.Arrays.asList(de.ivu.elect.business.fremdkandidatur.entity.BescheinigungDokumentStatus.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return bescheinigungDokumentStatusMitLeererAuswahlProperty;
            }
        
        }