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

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

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

private final InternetSeite entity;


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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
                  positionProperty;

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteTyp>
                  seitenTypProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteTyp> seitenTypMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteStatus>
                  statusProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteStatus> statusMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  titelProperty;

        
    

public InternetSeiteProperties(InternetSeite entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBeschreibungEinzahlMessage(),
        getMetaData().getBeschreibungDefaultValue(),
        getMetaData().isBeschreibungRequired(),
                entity::setBeschreibung,
        entity::getBeschreibung

                    , 0 ,
            de.ivu.elect.business.internet.entity.InternetSeiteConstants.BESCHREIBUNG_MAX_LENGTH
                );

        }


        return beschreibungProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty
                getPositionProperty() {
        if (positionProperty == null) {
        positionProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
        
        (
        getMetaData().getPositionEinzahlMessage(),
        getMetaData().getPositionDefaultValue(),
        getMetaData().isPositionRequired(),
                entity::setPosition,
        entity::getPosition

                    ,de.ivu.elect.business.internet.entity.InternetSeiteConstants.POSITION_MIN_VALUE
            ,de.ivu.elect.business.internet.entity.InternetSeiteConstants.POSITION_MAX_VALUE
                           );

        }


        return positionProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteTyp>
                getSeitenTypProperty() {
        if (seitenTypProperty == null) {
        seitenTypProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getSeitenTypEinzahlMessage(),
        getMetaData().getSeitenTypDefaultValue(),
        getMetaData().isSeitenTypRequired(),
                entity::setSeitenTyp,
        entity::getSeitenTyp

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

        }


        return seitenTypProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.internet.entity.InternetSeiteTyp> getSeitenTypMitLeererAuswahlProperty() {
               if (seitenTypMitLeererAuswahlProperty == null) {
                 seitenTypMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getSeitenTypEinzahlMessage(),
        				getMetaData().getSeitenTypDefaultValue(),
                        getMetaData().isSeitenTypRequired(),
                        entity::setSeitenTyp,
                        entity::getSeitenTyp
                        , de.ivu.elect.business.internet.entity.InternetSeiteTyp.class,
                        java.util.Arrays.asList(de.ivu.elect.business.internet.entity.InternetSeiteTyp.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return seitenTypMitLeererAuswahlProperty;
            }
        
        

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

               return statusMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getTitelEinzahlMessage(),
        getMetaData().getTitelDefaultValue(),
        getMetaData().isTitelRequired(),
                entity::setTitel,
        entity::getTitel

                    , 0 ,
            de.ivu.elect.business.internet.entity.InternetSeiteConstants.TITEL_MAX_LENGTH
                );

        }


        return titelProperty;
        }





        
        }