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 org.opencastproject.serviceregistry.api.IncidentService;
25 import org.opencastproject.serviceregistry.api.IncidentServiceException;
26 import org.opencastproject.util.NotFoundException;
27
28 import java.util.List;
29 import java.util.Locale;
30 import java.util.stream.Collectors;
31
32 import javax.xml.bind.annotation.XmlAccessType;
33 import javax.xml.bind.annotation.XmlAccessorType;
34 import javax.xml.bind.annotation.XmlElement;
35 import javax.xml.bind.annotation.XmlRootElement;
36 import javax.xml.bind.annotation.XmlType;
37
38 @XmlAccessorType(XmlAccessType.FIELD)
39 @XmlType(name = "incidentFullTree", namespace = "http://job.opencastproject.org")
40 @XmlRootElement(name = "incidentFullTree", namespace = "http://job.opencastproject.org")
41 public final class JaxbIncidentFullTree {
42 @XmlElement(name = JaxbIncidentUtil.ELEM_NESTED_INCIDENT)
43 private List<JaxbIncidentFull> incidents;
44
45 @XmlElement(name = JaxbIncidentUtil.ELEM_NESTED_TREE)
46 private List<JaxbIncidentFullTree> descendants;
47
48
49 public JaxbIncidentFullTree() {
50 }
51
52 public JaxbIncidentFullTree(IncidentService svc, Locale locale, IncidentTree tree)
53 throws IncidentServiceException, NotFoundException {
54 this.incidents = tree.getIncidents().stream()
55 .map(JaxbIncidentFull.mkFn(svc, locale))
56 .collect(Collectors.toList());
57
58 this.descendants = tree.getDescendants().stream()
59 .map(t -> {
60 try {
61 return new JaxbIncidentFullTree(svc, locale, t);
62 } catch (Exception e) {
63 throw new RuntimeException(e);
64 }
65 })
66 .collect(Collectors.toList());
67 }
68 }