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

import de.ivu.elect.jee.faces.FacesContextUtil;

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

   private final AnschriftArtProperty anschriftArtProperty;
          private final AnschriftArtMitLeererAuswahlProperty anschriftArtMitLeererAuswahlProperty;
    
   private final BundeslandProperty bundeslandProperty;
    
   private final HausnummerProperty hausnummerProperty;
    
   private final HausnummerzusatzProperty hausnummerzusatzProperty;
    
   private final OrtProperty ortProperty;
    
   private final OrtsteilProperty ortsteilProperty;
    
   private final PlzProperty plzProperty;
    
   private final PostfachProperty postfachProperty;
    
   private final StaatProperty staatProperty;
    
   private final StrasseProperty strasseProperty;
    
   private final WohnungsnummerProperty wohnungsnummerProperty;
    
   private final ZustellanweisungProperty zustellanweisungProperty;
    


  public AnschriftProperties(Anschrift entity) {
    
    this.anschriftArtProperty = new AnschriftArtProperty(entity);
        this.anschriftArtMitLeererAuswahlProperty = new AnschriftArtMitLeererAuswahlProperty(entity);
            this.bundeslandProperty = new BundeslandProperty(entity);
            this.hausnummerProperty = new HausnummerProperty(entity);
            this.hausnummerzusatzProperty = new HausnummerzusatzProperty(entity);
            this.ortProperty = new OrtProperty(entity);
            this.ortsteilProperty = new OrtsteilProperty(entity);
            this.plzProperty = new PlzProperty(entity);
            this.postfachProperty = new PostfachProperty(entity);
            this.staatProperty = new StaatProperty(entity);
            this.strasseProperty = new StrasseProperty(entity);
            this.wohnungsnummerProperty = new WohnungsnummerProperty(entity);
            this.zustellanweisungProperty = new ZustellanweisungProperty(entity);
          }

  private static AnschriftMeta getMetaData() {
    return FacesContextUtil.getElValue("#{anschriftMeta}", AnschriftMeta.class);
  }



    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class AnschriftArtProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractEnumProperty<de.ivu.elect.business.anschrift.entity.AnschriftArt>
  {

    protected final Anschrift entity;

    public AnschriftArtProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getAnschriftArtEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isAnschriftArtRequired();
    }

    @Override
    public de.ivu.elect.business.anschrift.entity.AnschriftArt getDefaultValue() {
      return getMetaDataIntern().getAnschriftArtDefaultValue();
    }

    
    @Override
    public de.ivu.elect.business.anschrift.entity.AnschriftArt getValue() {
      return entity.getAnschriftArt();
    }

    @Override
    public void setValue(de.ivu.elect.business.anschrift.entity.AnschriftArt value) {
      entity.setAnschriftArt(value);
    }
    @Override
    public java.util.List<de.ivu.elect.business.anschrift.entity.AnschriftArt> getValues() {
      return java.util.Arrays.stream(de.ivu.elect.business.anschrift.entity.AnschriftArt.values()).filter(getValueFilter()).sorted().collect(java.util.stream.Collectors.toList());
    }

    @Override
    public Class<de.ivu.elect.business.anschrift.entity.AnschriftArt> getEnumClass() {
      return de.ivu.elect.business.anschrift.entity.AnschriftArt.class;
    }

  }

  public AnschriftArtProperty getAnschriftArtProperty() {
    return anschriftArtProperty;
  }


            @javax.enterprise.inject.Vetoed
        @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
        public static class AnschriftArtMitLeererAuswahlProperty extends AnschriftArtProperty {
        public AnschriftArtMitLeererAuswahlProperty(Anschrift entity) {
        super(entity);
        }

        @Override
        public boolean hasNoSelectionItem() {
        return true;
        }

        @Override
        public boolean getDefaultRequired() {
        return false;
        }
        }

        public AnschriftArtMitLeererAuswahlProperty getAnschriftArtMitLeererAuswahlProperty() {
        return anschriftArtMitLeererAuswahlProperty;
        }
    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class BundeslandProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public BundeslandProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getBundeslandEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isBundeslandRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getBundeslandDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.BUNDESLAND_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getBundesland();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setBundesland(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getBundeslandMaxLength();
    }

  }

  public BundeslandProperty getBundeslandProperty() {
    return bundeslandProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class HausnummerProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public HausnummerProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getHausnummerEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isHausnummerRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getHausnummerDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.HAUSNUMMER_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getHausnummer();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setHausnummer(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getHausnummerMaxLength();
    }

  }

  public HausnummerProperty getHausnummerProperty() {
    return hausnummerProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class HausnummerzusatzProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public HausnummerzusatzProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getHausnummerzusatzEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isHausnummerzusatzRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getHausnummerzusatzDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.HAUSNUMMERZUSATZ_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getHausnummerzusatz();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setHausnummerzusatz(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getHausnummerzusatzMaxLength();
    }

  }

  public HausnummerzusatzProperty getHausnummerzusatzProperty() {
    return hausnummerzusatzProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class OrtProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public OrtProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getOrtEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isOrtRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getOrtDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.ORT_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getOrt();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setOrt(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getOrtMaxLength();
    }

  }

  public OrtProperty getOrtProperty() {
    return ortProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class OrtsteilProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public OrtsteilProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getOrtsteilEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isOrtsteilRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getOrtsteilDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.ORTSTEIL_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getOrtsteil();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setOrtsteil(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getOrtsteilMaxLength();
    }

  }

  public OrtsteilProperty getOrtsteilProperty() {
    return ortsteilProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class PlzProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public PlzProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getPlzEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isPlzRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getPlzDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.PLZ_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getPlz();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setPlz(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getPlzMaxLength();
    }

  }

  public PlzProperty getPlzProperty() {
    return plzProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class PostfachProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public PostfachProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getPostfachEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isPostfachRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getPostfachDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.POSTFACH_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getPostfach();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setPostfach(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getPostfachMaxLength();
    }

  }

  public PostfachProperty getPostfachProperty() {
    return postfachProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class StaatProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public StaatProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getStaatEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isStaatRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getStaatDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.STAAT_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getStaat();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setStaat(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getStaatMaxLength();
    }

  }

  public StaatProperty getStaatProperty() {
    return staatProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class StrasseProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public StrasseProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getStrasseEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isStrasseRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getStrasseDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.STRASSE_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getStrasse();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setStrasse(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getStrasseMaxLength();
    }

  }

  public StrasseProperty getStrasseProperty() {
    return strasseProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class WohnungsnummerProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public WohnungsnummerProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getWohnungsnummerEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isWohnungsnummerRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getWohnungsnummerDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.WOHNUNGSNUMMER_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getWohnungsnummer();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setWohnungsnummer(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getWohnungsnummerMaxLength();
    }

  }

  public WohnungsnummerProperty getWohnungsnummerProperty() {
    return wohnungsnummerProperty;
  }


    
  
    @javax.enterprise.inject.Vetoed
    @Deprecated // ELECT-4623 Nicht mehr neu verwenden, TODO Verwendung reduzieren
   public static class ZustellanweisungProperty extends
      de.ivu.elect.jee.presentation.dynamicform.AbstractStringProperty
  {

    protected final Anschrift entity;

    public ZustellanweisungProperty(Anschrift entity) {
      super();
      this.entity = entity;
    }

    public AnschriftMeta getMetaDataIntern() {
        return getMetaData();
    }

    @Override
    public String getDefaultLabel() {
      return getMetaDataIntern().getZustellanweisungEinzahlMessage();
    }

    @Override
    public boolean getDefaultRequired() {
      return getMetaDataIntern().isZustellanweisungRequired();
    }

    @Override
    public java.lang.String getDefaultValue() {
      return getMetaDataIntern().getZustellanweisungDefaultValue();
    }

  @javax.validation.constraints.Size(max=de.ivu.elect.business.anschrift.entity.AnschriftConstants.ZUSTELLANWEISUNG_MAX_LENGTH  )
    
    @Override
    public java.lang.String getValue() {
      return entity.getZustellanweisung();
    }

    @Override
    public void setValue(java.lang.String value) {
      entity.setZustellanweisung(value);
    }
    @Override
    public int getDefaultMaxLength() {
      return getMetaDataIntern().getZustellanweisungMaxLength();
    }

  }

  public ZustellanweisungProperty getZustellanweisungProperty() {
    return zustellanweisungProperty;
  }


    
  }