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

public class GewichtetesObject <O> implements Comparable<GewichtetesObject> {
  private final O object;
  private final Double gewicht;

  public GewichtetesObject(O object, Double gewicht) {
    this.object = object;
    this.gewicht = gewicht;
  }

  public O getObject() {
    return object;
  }

  public Double getGewicht() {
    return gewicht;
  }

  @Override
  public int compareTo(GewichtetesObject o) {
    boolean nullFirst = false;

    if (this.getGewicht() == null) {
      return (o == null || o.getGewicht() == null) ? 0 : (nullFirst ? -1 : 1);
    } else if (o == null || o.getGewicht() == null) {
      return nullFirst ? 1: -1;
    } else {
      return this.getGewicht().compareTo(o.getGewicht());
    }
  }
}
