sascha@498: package de.intevation.flys.importer; sascha@498: sascha@498: import de.intevation.flys.model.WstColumnValue; sascha@498: import de.intevation.flys.model.DischargeTableValue; sascha@500: import de.intevation.flys.model.Range; sascha@498: sascha@500: import java.math.BigDecimal; sascha@498: sascha@498: public class IdValueKey { sascha@498: sascha@500: protected int id; sascha@500: protected BigDecimal a; sascha@500: protected BigDecimal b; sascha@498: sascha@498: sascha@498: public IdValueKey(WstColumnValue value) { sascha@498: this.id = value.getWstColumn().getId(); sascha@500: this.a = value.getPosition(); sascha@500: this.b = value.getW(); sascha@498: } sascha@498: sascha@498: public IdValueKey(DischargeTableValue value) { sascha@498: this.id = value.getDischargeTable().getId(); sascha@500: this.a = value.getQ(); sascha@500: this.b = value.getW(); sascha@500: } sascha@500: sascha@500: public IdValueKey(Range value) { sascha@500: this.id = value.getRiver().getId(); sascha@500: this.a = value.getA(); sascha@500: this.b = value.getB(); sascha@498: } sascha@498: sascha@498: sascha@500: public IdValueKey(int id, BigDecimal a, BigDecimal b) { sascha@498: this.id = id; sascha@498: this.a = a; sascha@498: this.b = b; sascha@498: } sascha@498: sascha@500: private static final int hashCode(BigDecimal d) { sascha@500: return d != null ? d.hashCode() : 0; sascha@498: } sascha@498: sascha@501: @Override sascha@498: public int hashCode() { sascha@500: return id | (hashCode(a) << 10) | (hashCode(b) << 20); sascha@498: } sascha@498: sascha@501: @Override sascha@498: public boolean equals(Object obj) { sascha@498: if (!(obj instanceof IdValueKey)) { sascha@498: return false; sascha@498: } sascha@498: sascha@498: IdValueKey other = (IdValueKey) obj; sascha@498: sascha@500: return !((id != other.id) sascha@500: || (a == null && other.a != null) sascha@500: || (a != null && other.a == null) sascha@501: || (a != null && !a.equals(other.a)) sascha@500: || (b == null && other.b != null) sascha@500: || (b != null && other.b == null) sascha@501: || (b != null && !b.equals(other.b))); sascha@498: } sascha@498: } sascha@498: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :