teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5994: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5994: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.model; sascha@3210: christian@3279: import java.io.Serializable; sascha@3210: import java.util.Date; sascha@3210: mschaefer@9155: import org.dive4elements.artifacts.common.utils.DateUtils; mschaefer@9155: gernotbelger@9214: public class DateRange implements Serializable { christian@3279: private static final long serialVersionUID = -2553914795388094818L; sascha@3280: gernotbelger@9214: private final Date from; gernotbelger@9214: private final Date to; sascha@3210: mschaefer@9155: public DateRange(final Date from, final Date to) { sascha@3210: this.from = from; gernotbelger@9214: this.to = to; sascha@3210: } sascha@3210: sascha@3210: public Date getFrom() { mschaefer@9155: return this.from; sascha@3210: } sascha@3210: sascha@3210: public Date getTo() { mschaefer@9155: return this.to; sascha@3210: } sascha@3210: gernotbelger@9214: private static final boolean equalDates(final Date a, final Date b) { gernotbelger@9214: if (a == null && b != null) gernotbelger@9214: return false; sascha@3210: gernotbelger@9214: if (a != null && b == null) gernotbelger@9214: return false; gernotbelger@9214: gernotbelger@9214: if (a == null) gernotbelger@9214: return true; gernotbelger@9214: sascha@3210: return a.equals(b); sascha@3210: } sascha@3210: sascha@3210: @Override mschaefer@9155: public boolean equals(final Object other) { gernotbelger@9214: if (!(other instanceof DateRange)) sascha@3210: return false; gernotbelger@9214: gernotbelger@9214: final DateRange o = (DateRange) other; mschaefer@9155: return equalDates(this.from, o.from) && equalDates(this.to, o.to); mschaefer@9155: } mschaefer@9155: mschaefer@9155: public int getFromYear() { mschaefer@9155: return DateUtils.getYearFromDate(this.from); mschaefer@9155: } mschaefer@9155: mschaefer@9155: public int getToYear() { mschaefer@9155: return DateUtils.getYearFromDate(this.to); sascha@3210: } gernotbelger@9214: }