annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/DateRange.java @ 9214:091fd9676496

Made DateRange class immutable
author gernotbelger
date Tue, 03 Jul 2018 14:26:56 +0200
parents 9b4f5e61c02e
children
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3280
diff changeset
9 package org.dive4elements.river.artifacts.model;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
3279
5a7b4f890d53 Delta W(t) chart subtitle fixed
Christian Lins <christian.lins@intevation.de>
parents: 3210
diff changeset
11 import java.io.Serializable;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 import java.util.Date;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
14 import org.dive4elements.artifacts.common.utils.DateUtils;
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
15
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
16 public class DateRange implements Serializable {
3279
5a7b4f890d53 Delta W(t) chart subtitle fixed
Christian Lins <christian.lins@intevation.de>
parents: 3210
diff changeset
17 private static final long serialVersionUID = -2553914795388094818L;
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3279
diff changeset
18
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
19 private final Date from;
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
20 private final Date to;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
22 public DateRange(final Date from, final Date to) {
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 this.from = from;
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
24 this.to = to;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 public Date getFrom() {
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
28 return this.from;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 public Date getTo() {
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
32 return this.to;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
35 private static final boolean equalDates(final Date a, final Date b) {
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
36 if (a == null && b != null)
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
37 return false;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
39 if (a != null && b == null)
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
40 return false;
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
41
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
42 if (a == null)
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
43 return true;
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
44
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 return a.equals(b);
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 @Override
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
49 public boolean equals(final Object other) {
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
50 if (!(other instanceof DateRange))
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 return false;
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
52
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
53 final DateRange o = (DateRange) other;
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
54 return equalDates(this.from, o.from) && equalDates(this.to, o.to);
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
55 }
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
56
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
57 public int getFromYear() {
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
58 return DateUtils.getYearFromDate(this.from);
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
59 }
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
60
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
61 public int getToYear() {
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
62 return DateUtils.getYearFromDate(this.to);
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 }
9214
091fd9676496 Made DateRange class immutable
gernotbelger
parents: 9155
diff changeset
64 }

http://dive4elements.wald.intevation.org