teichmann@5829: package org.dive4elements.river.importer; sascha@185: teichmann@5829: import org.dive4elements.river.model.Range; teichmann@5829: import org.dive4elements.river.model.River; sascha@188: sascha@188: import java.math.BigDecimal; sascha@188: sascha@188: import org.apache.log4j.Logger; sascha@188: felix@4713: /** A range that is about to be imported. */ sascha@185: public class ImportRange sascha@186: implements Comparable sascha@185: { felix@4713: /** Private logger. */ sascha@188: private static Logger log = Logger.getLogger(ImportRange.class); sascha@188: sascha@189: protected BigDecimal a; sascha@189: protected BigDecimal b; sascha@188: sascha@188: protected Range peer; sascha@185: sascha@185: public ImportRange() { sascha@185: } sascha@185: sascha@189: public ImportRange(BigDecimal a, BigDecimal b) { sascha@189: this.a = a; sascha@189: this.b = b; sascha@186: } sascha@186: sascha@189: private static final int compare(BigDecimal a, BigDecimal b) { sascha@186: if (a == null && b == null) { sascha@186: return 0; sascha@186: } sascha@186: if (a == null && b != null) { sascha@186: return -1; sascha@186: } sascha@186: if (a != null && b == null) { sascha@186: return +1; sascha@186: } sascha@186: return a.compareTo(b); sascha@186: } sascha@186: teichmann@5542: public void fixRangesOrder() { teichmann@5542: if (compare(a, b) > 0) { teichmann@5542: BigDecimal t = a; a = b; b = t; teichmann@5542: } teichmann@5542: } teichmann@5542: sascha@186: public int compareTo(ImportRange other) { sascha@189: int cmp = compare(a, other.a); sascha@186: if (cmp != 0) return cmp; sascha@189: return compare(b, other.b); sascha@185: } sascha@185: sascha@189: public BigDecimal getA() { sascha@189: return a; sascha@185: } sascha@185: sascha@189: public void setA(BigDecimal a) { sascha@189: this.a = a; sascha@185: } sascha@185: sascha@189: public BigDecimal getB() { sascha@189: return b; sascha@189: } sascha@189: sascha@189: public void setB(BigDecimal b) { sascha@189: this.b = b; sascha@185: } sascha@188: sascha@188: public Range getPeer(River river) { sascha@188: if (peer == null) { sascha@500: peer = ImporterSession.getInstance().getRange(river, a, b); sascha@188: } sascha@188: return peer; sascha@188: } sascha@185: } sascha@185: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :