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

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

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

private final Beruf entity;


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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.person.entity.Geschlecht>
                  geschlechtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.person.entity.Geschlecht> geschlechtMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  herkunftProperty;

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

        
    

public BerufProperties(Beruf entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getCodeEinzahlMessage(),
        getMetaData().getCodeDefaultValue(),
        getMetaData().isCodeRequired(),
                entity::setCode,
        entity::getCode

                    , 0 ,
            de.ivu.elect.business.person.entity.BerufConstants.CODE_MAX_LENGTH
                );

        }


        return codeProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.person.entity.Geschlecht>
                getGeschlechtProperty() {
        if (geschlechtProperty == null) {
        geschlechtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getGeschlechtEinzahlMessage(),
        getMetaData().getGeschlechtDefaultValue(),
        getMetaData().isGeschlechtRequired(),
                entity::setGeschlecht,
        entity::getGeschlecht

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

        }


        return geschlechtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.person.entity.Geschlecht> getGeschlechtMitLeererAuswahlProperty() {
               if (geschlechtMitLeererAuswahlProperty == null) {
                 geschlechtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getGeschlechtEinzahlMessage(),
        				getMetaData().getGeschlechtDefaultValue(),
                        getMetaData().isGeschlechtRequired(),
                        entity::setGeschlecht,
                        entity::getGeschlecht
                        , de.ivu.elect.business.person.entity.Geschlecht.class,
                        java.util.Arrays.asList(de.ivu.elect.business.person.entity.Geschlecht.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return geschlechtMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getHerkunftEinzahlMessage(),
        getMetaData().getHerkunftDefaultValue(),
        getMetaData().isHerkunftRequired(),
                entity::setHerkunft,
        entity::getHerkunft

                    , 0 ,
            de.ivu.elect.business.person.entity.BerufConstants.HERKUNFT_MAX_LENGTH
                );

        }


        return herkunftProperty;
        }





        
        

        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.person.entity.BerufConstants.NAME_MAX_LENGTH
                );

        }


        return nameProperty;
        }





        
        }