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

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

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

private final WahllokalsystemStatus entity;


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

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

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

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

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

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

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

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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung>
                  ausstattungProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung> ausstattungMitLeererAuswahlProperty;
        
    

public WahllokalsystemStatusProperties(WahllokalsystemStatus entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaLongProperty
        
        (
        getMetaData().getAnzahlWaehlerEinzahlMessage(),
        getMetaData().getAnzahlWaehlerDefaultValue(),
        getMetaData().isAnzahlWaehlerRequired(),
                entity::setAnzahlWaehler,
        entity::getAnzahlWaehler

                    , de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatusConstants.ANZAHL_WAEHLER_MIN_VALUE,
            de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatusConstants.ANZAHL_WAEHLER_MAX_VALUE,
            de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatusConstants.ANZAHL_WAEHLER_MAX_LENGTH
                );

        }


        return anzahlWaehlerProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getAnzahlWaehlerZeitpunktEinzahlMessage(),
        getMetaData().getAnzahlWaehlerZeitpunktDefaultValue(),
        getMetaData().isAnzahlWaehlerZeitpunktRequired(),
                entity::setAnzahlWaehlerZeitpunkt,
        entity::getAnzahlWaehlerZeitpunkt

                );

        }


        return anzahlWaehlerZeitpunktProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getBemerkungEinzahlMessage(),
        getMetaData().getBemerkungDefaultValue(),
        getMetaData().isBemerkungRequired(),
                entity::setBemerkung,
        entity::getBemerkung

                    , 0 ,
            de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatusConstants.BEMERKUNG_MAX_LENGTH
                );

        }


        return bemerkungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getLetzteAbmeldungEinzahlMessage(),
        getMetaData().getLetzteAbmeldungDefaultValue(),
        getMetaData().isLetzteAbmeldungRequired(),
                entity::setLetzteAbmeldung,
        entity::getLetzteAbmeldung

                );

        }


        return letzteAbmeldungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getLetzteMeldungEinzahlMessage(),
        getMetaData().getLetzteMeldungDefaultValue(),
        getMetaData().isLetzteMeldungRequired(),
                entity::setLetzteMeldung,
        entity::getLetzteMeldung

                );

        }


        return letzteMeldungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getNiederschriftDruckenEinzahlMessage(),
        getMetaData().getNiederschriftDruckenDefaultValue(),
        getMetaData().isNiederschriftDruckenRequired(),
                entity::setNiederschriftDrucken,
        entity::getNiederschriftDrucken

                );

        }


        return niederschriftDruckenProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getNiederschriftEingangEinzahlMessage(),
        getMetaData().getNiederschriftEingangDefaultValue(),
        getMetaData().isNiederschriftEingangRequired(),
                entity::setNiederschriftEingang,
        entity::getNiederschriftEingang

                );

        }


        return niederschriftEingangProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getNiederschriftSendenEinzahlMessage(),
        getMetaData().getNiederschriftSendenDefaultValue(),
        getMetaData().isNiederschriftSendenRequired(),
                entity::setNiederschriftSenden,
        entity::getNiederschriftSenden

                );

        }


        return niederschriftSendenProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getSchnellmeldungDruckenEinzahlMessage(),
        getMetaData().getSchnellmeldungDruckenDefaultValue(),
        getMetaData().isSchnellmeldungDruckenRequired(),
                entity::setSchnellmeldungDrucken,
        entity::getSchnellmeldungDrucken

                );

        }


        return schnellmeldungDruckenProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getSchnellmeldungSendenEinzahlMessage(),
        getMetaData().getSchnellmeldungSendenDefaultValue(),
        getMetaData().isSchnellmeldungSendenRequired(),
                entity::setSchnellmeldungSenden,
        entity::getSchnellmeldungSenden

                );

        }


        return schnellmeldungSendenProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung>
                getAusstattungProperty() {
        if (ausstattungProperty == null) {
        ausstattungProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getAusstattungEinzahlMessage(),
        getMetaData().getAusstattungDefaultValue(),
        getMetaData().isAusstattungRequired(),
                entity::setAusstattung,
        entity::getAusstattung

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

        }


        return ausstattungProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung> getAusstattungMitLeererAuswahlProperty() {
               if (ausstattungMitLeererAuswahlProperty == null) {
                 ausstattungMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getAusstattungEinzahlMessage(),
        				getMetaData().getAusstattungDefaultValue(),
                        getMetaData().isAusstattungRequired(),
                        entity::setAusstattung,
                        entity::getAusstattung
                        , de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung.class,
                        java.util.Arrays.asList(de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemAusstattung.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return ausstattungMitLeererAuswahlProperty;
            }
        
        }