1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.opencastproject.workflow.api;
24
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.List;
28 import java.util.stream.Collectors;
29
30 import javax.xml.bind.annotation.XmlAccessType;
31 import javax.xml.bind.annotation.XmlAccessorType;
32 import javax.xml.bind.annotation.XmlElement;
33 import javax.xml.bind.annotation.XmlRootElement;
34 import javax.xml.bind.annotation.adapters.XmlAdapter;
35
36
37
38
39 @XmlAccessorType(XmlAccessType.FIELD)
40 @XmlRootElement(name = "workflows", namespace = "http://workflow.opencastproject.org")
41 public class WorkflowSetImpl implements WorkflowSet {
42
43
44 @XmlElement(name = "workflow")
45 private List<JaxbWorkflowInstance> resultSet = null;
46
47
48
49
50 public WorkflowSetImpl() {
51 }
52
53 public WorkflowSetImpl(List<WorkflowInstance> workflows) {
54 this.resultSet = workflows.stream()
55 .map(JaxbWorkflowInstance::new)
56 .collect(Collectors.toList());
57 }
58
59
60
61
62
63
64
65 @Override
66 public List<WorkflowInstance> getItems() {
67 if (resultSet == null) {
68 return Collections.emptyList();
69 }
70 return resultSet.stream()
71 .map(JaxbWorkflowInstance::toWorkflowInstance)
72 .collect(Collectors.toList());
73 }
74
75
76
77
78
79
80
81 public void addItem(WorkflowInstance item) {
82 if (item == null) {
83 throw new IllegalArgumentException("Parameter item cannot be null");
84 }
85 if (resultSet == null) {
86 resultSet = new ArrayList<JaxbWorkflowInstance>();
87 }
88 resultSet.add(new JaxbWorkflowInstance(item));
89 }
90
91
92
93
94
95
96 @Override
97 public long size() {
98 return resultSet != null ? resultSet.size() : 0;
99 }
100
101 public static class Adapter extends XmlAdapter<WorkflowSetImpl, WorkflowSet> {
102 public WorkflowSetImpl marshal(WorkflowSet set) throws Exception {
103 return (WorkflowSetImpl) set;
104 }
105
106 public WorkflowSet unmarshal(WorkflowSetImpl set) throws Exception {
107 return set;
108 }
109 }
110
111 }