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

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

public class EntschaedigungAnzahlLongProperty extends AbstractLongProperty {

  private final AbstractLongProperty anzahlLongProperty;

  private final Long minValue;

  private final Long maxValue;

  public EntschaedigungAnzahlLongProperty(Entschaedigung entschaedigung) {
    super();

    this.anzahlLongProperty = entschaedigung.getProperties().getAnzahlProperty();

    Entschaedigungsart entschaedigungsart = entschaedigung.getEntschaedigungsart();

    if (entschaedigungsart != null) {
      this.minValue = entschaedigungsart.getAnzahlMinimal();
      this.maxValue = entschaedigungsart.getAnzahlMaximal();
    } else {
      this.minValue = null;
      this.maxValue = null;
    }
  }

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

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

  @Override
  public Long getDefaultValue() {
    return anzahlLongProperty.getDefaultValue();
  }

  @Override
  public Long getValue() {
    return anzahlLongProperty.getValue();
  }

  @Override
  public void setValue(Long value) {
    anzahlLongProperty.setValue(value);
  }

  @Override
  public long getMinValue() {
    if (minValue != null) {
      return minValue;
    }

    return super.getMinValue();
  }

  @Override
  public long getMaxValue() {
    if (maxValue != null) {
      return maxValue;
    }

    return super.getMinValue();
  }
}
