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

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

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

private final EmailLayout entity;


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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.email.entity.EmailLayoutVerwendungType>
                  verwendungTypProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.email.entity.EmailLayoutVerwendungType> verwendungTypMitLeererAuswahlProperty;
        
    

public EmailLayoutProperties(EmailLayout entity) {
this.entity = entity;

}

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


    

        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.email.entity.EmailLayoutConstants.BEZEICHNUNG_MAX_LENGTH
                );

        }


        return bezeichnungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getInhaltEinzahlMessage(),
        getMetaData().getInhaltDefaultValue(),
        getMetaData().isInhaltRequired(),
                entity::setInhalt,
        entity::getInhalt

                    ,  1 ,
            de.ivu.elect.business.email.entity.EmailLayoutConstants.INHALT_MAX_LENGTH
                );

        }


        return inhaltProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.email.entity.EmailLayoutVerwendungType>
                getVerwendungTypProperty() {
        if (verwendungTypProperty == null) {
        verwendungTypProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getVerwendungTypEinzahlMessage(),
        getMetaData().getVerwendungTypDefaultValue(),
        getMetaData().isVerwendungTypRequired(),
                entity::setVerwendungTyp,
        entity::getVerwendungTyp

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

        }


        return verwendungTypProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.email.entity.EmailLayoutVerwendungType> getVerwendungTypMitLeererAuswahlProperty() {
               if (verwendungTypMitLeererAuswahlProperty == null) {
                 verwendungTypMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getVerwendungTypEinzahlMessage(),
        				getMetaData().getVerwendungTypDefaultValue(),
                        getMetaData().isVerwendungTypRequired(),
                        entity::setVerwendungTyp,
                        entity::getVerwendungTyp
                        , de.ivu.elect.business.email.entity.EmailLayoutVerwendungType.class,
                        java.util.Arrays.asList(de.ivu.elect.business.email.entity.EmailLayoutVerwendungType.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return verwendungTypMitLeererAuswahlProperty;
            }
        
        }