1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.opencastproject.external.util;
22
23 import static com.entwinemedia.fn.data.json.Jsons.arr;
24 import static com.entwinemedia.fn.data.json.Jsons.f;
25 import static com.entwinemedia.fn.data.json.Jsons.obj;
26 import static com.entwinemedia.fn.data.json.Jsons.v;
27 import static org.opencastproject.util.DateTimeSupport.toUTC;
28
29 import org.opencastproject.capture.CaptureParameters;
30 import org.opencastproject.capture.admin.api.Agent;
31
32 import com.entwinemedia.fn.data.json.Field;
33 import com.entwinemedia.fn.data.json.JValue;
34 import com.entwinemedia.fn.data.json.Jsons;
35
36 import org.apache.commons.lang3.StringUtils;
37
38 import java.util.ArrayList;
39 import java.util.List;
40
41 public final class CaptureAgentUtils {
42
43 private static final String JSON_KEY_AGENT_ID = "agent_id";
44 private static final String JSON_KEY_STATUS = "status";
45 private static final String JSON_KEY_URL = "url";
46 private static final String JSON_KEY_INPUTS = "inputs";
47 private static final String JSON_KEY_UPDATE = "update";
48
49
50 private CaptureAgentUtils() {
51 }
52
53
54
55
56
57
58
59
60 public static JValue generateJsonAgent(Agent agent) {
61 List<Field> fields = new ArrayList<>();
62 String devices = (String) agent.getCapabilities().get(CaptureParameters.CAPTURE_DEVICE_NAMES);
63 fields.add(f(JSON_KEY_STATUS, v(agent.getState(), Jsons.BLANK)));
64 fields.add(f(JSON_KEY_AGENT_ID, v(agent.getName())));
65 fields.add(f(JSON_KEY_UPDATE, v(toUTC(agent.getLastHeardFrom()), Jsons.BLANK)));
66 fields.add(f(JSON_KEY_URL, v(agent.getUrl(), Jsons.BLANK)));
67 fields.add(f(JSON_KEY_INPUTS, (StringUtils.isEmpty(devices)) ? arr() : arr(devices.split(","))));
68 return obj(fields);
69 }
70 }