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

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

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

private final Datei entity;


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

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

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

        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.datei.entity.FileType>
                  fileTypeProperty;

                private de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.datei.entity.FileType> fileTypeMitLeererAuswahlProperty;
        
        
    private
                de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
                  formatProperty;

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

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

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

        
    

public DateiProperties(Datei entity) {
this.entity = entity;

}

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


    

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getDateinameEinzahlMessage(),
        getMetaData().getDateinameDefaultValue(),
        getMetaData().isDateinameRequired(),
                entity::setDateiname,
        entity::getDateiname

                    ,  1 ,
            de.ivu.elect.business.datei.entity.DateiConstants.DATEINAME_MAX_LENGTH
                );

        }


        return dateinameProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getDiscriminatorEinzahlMessage(),
        getMetaData().getDiscriminatorDefaultValue(),
        getMetaData().isDiscriminatorRequired(),
                entity::setDiscriminator,
        entity::getDiscriminator

                    , 0 ,
            de.ivu.elect.business.datei.entity.DateiConstants.DISCRIMINATOR_MAX_LENGTH
                );

        }


        return discriminatorProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaTimestampProperty
        
        (
        getMetaData().getErstellungszeitpunktEinzahlMessage(),
        getMetaData().getErstellungszeitpunktDefaultValue(),
        getMetaData().isErstellungszeitpunktRequired(),
                entity::setErstellungszeitpunkt,
        entity::getErstellungszeitpunkt

                );

        }


        return erstellungszeitpunktProperty;
        }





        
        

        public
                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.datei.entity.FileType>
                getFileTypeProperty() {
        if (fileTypeProperty == null) {
        fileTypeProperty = new


                    de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
        
        (
        getMetaData().getFileTypeEinzahlMessage(),
        getMetaData().getFileTypeDefaultValue(),
        getMetaData().isFileTypeRequired(),
                entity::setFileType,
        entity::getFileType

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

        }


        return fileTypeProperty;
        }





        

            public de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<de.ivu.elect.business.datei.entity.FileType> getFileTypeMitLeererAuswahlProperty() {
               if (fileTypeMitLeererAuswahlProperty == null) {
                 fileTypeMitLeererAuswahlProperty = new
                de.ivu.elect.jee.presentation.dynamicform.LambdaEnumProperty<>
                    (
                        getMetaData().getFileTypeEinzahlMessage(),
        				getMetaData().getFileTypeDefaultValue(),
                        getMetaData().isFileTypeRequired(),
                        entity::setFileType,
                        entity::getFileType
                        , de.ivu.elect.business.datei.entity.FileType.class,
                        java.util.Arrays.asList(de.ivu.elect.business.datei.entity.FileType.values()).stream().sorted(Enum::compareTo).collect(java.util.stream.Collectors.toList())
                        ,true
                    );
            }

               return fileTypeMitLeererAuswahlProperty;
            }
        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getFormatEinzahlMessage(),
        getMetaData().getFormatDefaultValue(),
        getMetaData().isFormatRequired(),
                entity::setFormat,
        entity::getFormat

                    ,  1 ,
            de.ivu.elect.business.datei.entity.DateiConstants.FORMAT_MAX_LENGTH
                );

        }


        return formatProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getMimeTypeEinzahlMessage(),
        getMetaData().getMimeTypeDefaultValue(),
        getMetaData().isMimeTypeRequired(),
                entity::setMimeType,
        entity::getMimeType

                    , 0 ,
            de.ivu.elect.business.datei.entity.DateiConstants.MIME_TYPE_MAX_LENGTH
                );

        }


        return mimeTypeProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getOriginalDateinameEinzahlMessage(),
        getMetaData().getOriginalDateinameDefaultValue(),
        getMetaData().isOriginalDateinameRequired(),
                entity::setOriginalDateiname,
        entity::getOriginalDateiname

                    , 0 ,
            de.ivu.elect.business.datei.entity.DateiConstants.ORIGINAL_DATEINAME_MAX_LENGTH
                );

        }


        return originalDateinameProperty;
        }





        
        

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


                    de.ivu.elect.jee.presentation.dynamicform.LambdaStringProperty
        
        (
        getMetaData().getPfadEinzahlMessage(),
        getMetaData().getPfadDefaultValue(),
        getMetaData().isPfadRequired(),
                entity::setPfad,
        entity::getPfad

                    , 0 ,
            de.ivu.elect.business.datei.entity.DateiConstants.PFAD_MAX_LENGTH
                );

        }


        return pfadProperty;
        }





        
        }