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

public class GewichteterWert extends GewichtetesObject<Double> {

  public GewichteterWert(Double wert, Double gewicht) {
    super(wert, gewicht);
  }


  public double getGewichtNonNull() {
    return getGewicht() != null? getGewicht(): 0;
  }

  public boolean isGewichteterWertBerechenbar () {
    return getObject() != null && getGewicht() != null;
  }

  public Double getGewichtetenWert() {
    if (isGewichteterWertBerechenbar()) {
      return getGewicht() * getObject();
    }
    return null;
  }

  public double getGewichtetenWertNonNull() {
    if (isGewichteterWertBerechenbar()) {
      return getGewicht() * getObject();
    }
    return 0;
  }

  public double getNormiertenGewichtetenWert(double norm) {
    assert isGewichteterWertBerechenbar();
    return getGewicht() / norm * getObject();
  }
}
