1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.opencastproject.job.api;
23
24 import static org.opencastproject.util.EqualsUtil.eq;
25 import static org.opencastproject.util.EqualsUtil.hash;
26
27 import java.util.Collections;
28 import java.util.List;
29
30 public final class IncidentTreeImpl implements IncidentTree {
31 private final List<Incident> incidents;
32
33 private final List<IncidentTree> descendants;
34
35 public IncidentTreeImpl(List<Incident> incidents, List<IncidentTree> descendants) {
36 this.incidents = Collections.unmodifiableList(incidents);
37 if (descendants != null) {
38 this.descendants = Collections.unmodifiableList(descendants);
39 } else {
40 this.descendants = Collections.emptyList();
41 }
42 }
43
44 @Override public List<Incident> getIncidents() {
45 return incidents;
46 }
47
48 @Override public List<IncidentTree> getDescendants() {
49 return descendants;
50 }
51
52 @Override public int hashCode() {
53 return hash(incidents, descendants);
54 }
55
56 @Override public boolean equals(Object that) {
57 return (this == that) || (that instanceof IncidentTree && eqFields((IncidentTree) that));
58 }
59
60 private boolean eqFields(IncidentTree that) {
61 return eq(incidents, that.getIncidents())
62 && eq(descendants, that.getDescendants());
63 }
64 }