annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/DateRange.java @ 9155:9b4f5e61c02e

Changed to list of DateRange, added methods in DateRange to support year ranges
author mschaefer
date Tue, 19 Jun 2018 14:15:32 +0200
parents af13ceeba52a
children 091fd9676496
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
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 public class DateRange
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 implements Serializable
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 {
3279
5a7b4f890d53 Delta W(t) chart subtitle fixed
Christian Lins <christian.lins@intevation.de>
parents: 3210
diff changeset
19 private static final long serialVersionUID = -2553914795388094818L;
3280
4a70525c5b0d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3279
diff changeset
20
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 protected Date from;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 protected Date to;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
24 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
25 this.from = from;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 this.to = to;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 public Date getFrom() {
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
30 return this.from;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
33 public void setFrom(final Date from) {
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 this.from = from;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 public Date getTo() {
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
38 return this.to;
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
41 public void setTo(final Date to) {
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 this.to = to;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
45 private static final boolean equalDates(final Date a, final Date b) {
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 if (a == null && b != null) return false;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 if (a != null && b == null) return false;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 if (a == null) return true;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 return a.equals(b);
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 @Override
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
53 public boolean equals(final Object other) {
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 if (!(other instanceof DateRange)) {
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 return false;
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 }
9155
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
57 final DateRange o = (DateRange)other;
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
58 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
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 getFromYear() {
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
62 return DateUtils.getYearFromDate(this.from);
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
63 }
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
64
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
65 public int getToYear() {
9b4f5e61c02e Changed to list of DateRange, added methods in DateRange to support year ranges
mschaefer
parents: 5994
diff changeset
66 return DateUtils.getYearFromDate(this.to);
3210
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 }
ae14f412ba10 SQ: finished the access stuff.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org