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

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

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

private final ProtokollEintrag entity;


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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.AttributTyp>
                  attributTypProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.AttributTyp> attributTypMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  benutzerkennungProperty;

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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.ProtokollEintragArt>
                  protokollEintragArtProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.ProtokollEintragArt> protokollEintragArtMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
                  zeitpunktProperty;

        
    

public ProtokollEintragProperties(ProtokollEintrag entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getAlterWertEinzahlMessage(),
        getMetaData().getAlterWertDefaultValue(),
        getMetaData().isAlterWertRequired(),
                entity::setAlterWert,
        entity::getAlterWert

                    , 0 ,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.ALTER_WERT_MAX_LENGTH
                );

        }


        return alterWertProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getAttributEinzahlMessage(),
        getMetaData().getAttributDefaultValue(),
        getMetaData().isAttributRequired(),
                entity::setAttribut,
        entity::getAttribut

                    , 0 ,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.ATTRIBUT_MAX_LENGTH
                );

        }


        return attributProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.AttributTyp>
                getAttributTypProperty() {
        if (attributTypProperty == null) {
        attributTypProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getAttributTypEinzahlMessage(),
        getMetaData().getAttributTypDefaultValue(),
        getMetaData().isAttributTypRequired(),
                entity::setAttributTyp,
        entity::getAttributTyp

                    , de.ivu.elect.jee.protokollierung.AttributTyp.class,
            java.util.Arrays.asList(de.ivu.elect.jee.protokollierung.AttributTyp.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                );

        }


        return attributTypProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.AttributTyp> getAttributTypMitLeererAuswahlProperty() {
               if (attributTypMitLeererAuswahlProperty == null) {
                 attributTypMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getAttributTypEinzahlMessage(),
        				getMetaData().getAttributTypDefaultValue(),
                        getMetaData().isAttributTypRequired(),
                        entity::setAttributTyp,
                        entity::getAttributTyp
                        , de.ivu.elect.jee.protokollierung.AttributTyp.class,
                        java.util.Arrays.asList(de.ivu.elect.jee.protokollierung.AttributTyp.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return attributTypMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBenutzerkennungEinzahlMessage(),
        getMetaData().getBenutzerkennungDefaultValue(),
        getMetaData().isBenutzerkennungRequired(),
                entity::setBenutzerkennung,
        entity::getBenutzerkennung

                    ,  1 ,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.BENUTZERKENNUNG_MAX_LENGTH
                );

        }


        return benutzerkennungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getEntitaetEinzahlMessage(),
        getMetaData().getEntitaetDefaultValue(),
        getMetaData().isEntitaetRequired(),
                entity::setEntitaet,
        entity::getEntitaet

                    ,  1 ,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.ENTITAET_MAX_LENGTH
                );

        }


        return entitaetProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getNeuerWertEinzahlMessage(),
        getMetaData().getNeuerWertDefaultValue(),
        getMetaData().isNeuerWertRequired(),
                entity::setNeuerWert,
        entity::getNeuerWert

                    , 0 ,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.NEUER_WERT_MAX_LENGTH
                );

        }


        return neuerWertProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
        
        (
        getMetaData().getPrimaerschluesselEinzahlMessage(),
        getMetaData().getPrimaerschluesselDefaultValue(),
        getMetaData().isPrimaerschluesselRequired(),
                entity::setPrimaerschluessel,
        entity::getPrimaerschluessel

                    , de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.PRIMAERSCHLUESSEL_MIN_VALUE,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.PRIMAERSCHLUESSEL_MAX_VALUE,
            de.ivu.elect.business.protokollierung.entity.ProtokollEintragConstants.PRIMAERSCHLUESSEL_MAX_LENGTH
                );

        }


        return primaerschluesselProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.ProtokollEintragArt>
                getProtokollEintragArtProperty() {
        if (protokollEintragArtProperty == null) {
        protokollEintragArtProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getProtokollEintragArtEinzahlMessage(),
        getMetaData().getProtokollEintragArtDefaultValue(),
        getMetaData().isProtokollEintragArtRequired(),
                entity::setProtokollEintragArt,
        entity::getProtokollEintragArt

                    , de.ivu.elect.jee.protokollierung.ProtokollEintragArt.class,
            java.util.Arrays.asList(de.ivu.elect.jee.protokollierung.ProtokollEintragArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                );

        }


        return protokollEintragArtProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.jee.protokollierung.ProtokollEintragArt> getProtokollEintragArtMitLeererAuswahlProperty() {
               if (protokollEintragArtMitLeererAuswahlProperty == null) {
                 protokollEintragArtMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getProtokollEintragArtEinzahlMessage(),
        				getMetaData().getProtokollEintragArtDefaultValue(),
                        getMetaData().isProtokollEintragArtRequired(),
                        entity::setProtokollEintragArt,
                        entity::getProtokollEintragArt
                        , de.ivu.elect.jee.protokollierung.ProtokollEintragArt.class,
                        java.util.Arrays.asList(de.ivu.elect.jee.protokollierung.ProtokollEintragArt.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return protokollEintragArtMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getZeitpunktEinzahlMessage(),
        getMetaData().getZeitpunktDefaultValue(),
        getMetaData().isZeitpunktRequired(),
                entity::setZeitpunkt,
        entity::getZeitpunkt

                );

        }


        return zeitpunktProperty;
        }





        
        }