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

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

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

private final Stimmeingabefehler entity;


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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart>
                  fehlerartProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart> fehlerartMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp>
                  stimmeingabePlausiTypProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp> stimmeingabePlausiTypMitLeererAuswahlProperty;
        
    

public StimmeingabefehlerProperties(Stimmeingabefehler entity) {
this.entity = entity;

}

private static StimmeingabefehlerMeta getMetaData() {
return de.ivu.elect.jee.cdi.BeanManagerUtil.getBeanByClass( StimmeingabefehlerMeta.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

                    ,  1 ,
            de.ivu.elect.business.stimmeingabe.entity.StimmeingabefehlerConstants.BESCHREIBUNG_MAX_LENGTH
                );

        }


        return beschreibungProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getErwarteteAnzahlEingabeEinzahlMessage(),
        getMetaData().getErwarteteAnzahlEingabeDefaultValue(),
        getMetaData().isErwarteteAnzahlEingabeRequired(),
                entity::setErwarteteAnzahlEingabe,
        entity::getErwarteteAnzahlEingabe

                    , 0 ,
            de.ivu.elect.business.stimmeingabe.entity.StimmeingabefehlerConstants.ERWARTETE_ANZAHL_EINGABE_MAX_LENGTH
                );

        }


        return erwarteteAnzahlEingabeProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart>
                getFehlerartProperty() {
        if (fehlerartProperty == null) {
        fehlerartProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getFehlerartEinzahlMessage(),
        getMetaData().getFehlerartDefaultValue(),
        getMetaData().isFehlerartRequired(),
                entity::setFehlerart,
        entity::getFehlerart

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

        }


        return fehlerartProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart> getFehlerartMitLeererAuswahlProperty() {
               if (fehlerartMitLeererAuswahlProperty == null) {
                 fehlerartMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getFehlerartEinzahlMessage(),
        				getMetaData().getFehlerartDefaultValue(),
                        getMetaData().isFehlerartRequired(),
                        entity::setFehlerart,
                        entity::getFehlerart
                        , de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart.class,
                        java.util.Arrays.asList(de.ivu.elect.business.stimmeingabe.entity.Stimmeingabefehlerart.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return fehlerartMitLeererAuswahlProperty;
            }
        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp>
                getStimmeingabePlausiTypProperty() {
        if (stimmeingabePlausiTypProperty == null) {
        stimmeingabePlausiTypProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getStimmeingabePlausiTypEinzahlMessage(),
        getMetaData().getStimmeingabePlausiTypDefaultValue(),
        getMetaData().isStimmeingabePlausiTypRequired(),
                entity::setStimmeingabePlausiTyp,
        entity::getStimmeingabePlausiTyp

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

        }


        return stimmeingabePlausiTypProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp> getStimmeingabePlausiTypMitLeererAuswahlProperty() {
               if (stimmeingabePlausiTypMitLeererAuswahlProperty == null) {
                 stimmeingabePlausiTypMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getStimmeingabePlausiTypEinzahlMessage(),
        				getMetaData().getStimmeingabePlausiTypDefaultValue(),
                        getMetaData().isStimmeingabePlausiTypRequired(),
                        entity::setStimmeingabePlausiTyp,
                        entity::getStimmeingabePlausiTyp
                        , de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp.class,
                        java.util.Arrays.asList(de.ivu.elect.business.stimmeingabe.entity.StimmeingabePlausiTyp.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return stimmeingabePlausiTypMitLeererAuswahlProperty;
            }
        
        }