-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTerminImpl.java
105 lines (87 loc) · 2.43 KB
/
TerminImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package kalender;
import java.util.Collections;
import java.util.Map;
import kalender.interfaces.Datum;
import kalender.interfaces.Dauer;
import kalender.interfaces.Monat;
import kalender.interfaces.Tag;
import kalender.interfaces.Termin;
import kalender.interfaces.Woche;
public class TerminImpl implements Termin {
String beschr;
Datum dat;
Dauer dau;
public TerminImpl(String beschreibung, Datum datum, Dauer dauer) {
beschr = beschreibung;
dat = datum;
dau = dauer;
}
@Override
public int compareTo(Termin o) {
return dat.compareTo(o.getDatum());
}
@Override
public String getBeschreibung() {
return beschr;
}
@Override
public Datum getDatum() {
return dat;
}
@Override
public Dauer getDauer() {
return dau;
}
@Override
public Termin verschiebeAuf(Datum datum) {
dat = datum;
return this;
}
@Override
public Map<Datum, Termin> termineIn(Monat monat) {
Map<Datum, Termin> map = Collections.emptyMap();
if (dat.compareTo(monat.getStart()) >=0) {
if (dat.compareTo(monat.getEnde()) <= 0)
map.put(dat, new TerminImpl(beschr, dat, dau));
}
return map;
}
@Override
public Map<Datum, Termin> termineIn(Woche woche) {
Map<Datum, Termin> map = Collections.emptyMap();
if (dat.compareTo(woche.getStart()) >=0) {
if (dat.compareTo(woche.getEnde()) <= 0)
map.put(dat, new TerminImpl(beschr, dat, dau));
}
return map;
}
@Override
public Map<Datum, Termin> termineAn(Tag tag) {
Map<Datum, Termin> map = Collections.emptyMap();
if (dat.getTag().compareTo(tag) == 0)
map.put(dat, new TerminImpl(beschr, dat, dau));
return map;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!(obj instanceof Termin) || (obj == null))
return false;
return (this.getBeschreibung() == ((Termin) obj).getBeschreibung()
&& this.getDatum().equals(((Termin) obj).getDatum())
&& this.getDauer().equals(((Termin) obj).getDauer()));
}
@Override
public String toString() {
return String.format(this.getDatum().toString() + this.getDauer().toString() + beschr);
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((beschr == null) ? 0 : beschr.hashCode());
result = prime * result + ((dat == null) ? 0 : dat.hashCode());
result = prime * result + ((dau == null) ? 0 : dau.hashCode());
return result;
}
}