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 org.opencastproject.index.service.util.JSONUtils.safeString;
24 import static org.opencastproject.util.DateTimeSupport.toUTC;
25
26 import org.opencastproject.capture.CaptureParameters;
27 import org.opencastproject.capture.admin.api.Agent;
28
29 import com.google.gson.JsonArray;
30 import com.google.gson.JsonObject;
31 import com.google.gson.JsonPrimitive;
32
33 public final class CaptureAgentUtils {
34
35 private static final String JSON_KEY_AGENT_ID = "agent_id";
36 private static final String JSON_KEY_STATUS = "status";
37 private static final String JSON_KEY_URL = "url";
38 private static final String JSON_KEY_INPUTS = "inputs";
39 private static final String JSON_KEY_UPDATE = "update";
40
41
42 private CaptureAgentUtils() {
43 }
44
45
46
47
48
49
50
51
52 public static JsonObject generateJsonAgent(Agent agent) {
53 JsonObject json = new JsonObject();
54 String devices = (String) agent.getCapabilities().get(CaptureParameters.CAPTURE_DEVICE_NAMES);
55 json.addProperty(JSON_KEY_STATUS, safeString(agent.getState()));
56 json.addProperty(JSON_KEY_AGENT_ID, agent.getName());
57 json.addProperty(JSON_KEY_UPDATE, safeString(toUTC(agent.getLastHeardFrom())));
58 json.addProperty(JSON_KEY_URL, safeString(agent.getUrl()));
59 JsonArray inputs = new JsonArray();
60 if (devices != null && !devices.trim().isEmpty()) {
61 for (String device : devices.split(",")) {
62 inputs.add(new JsonPrimitive(device.trim()));
63 }
64 }
65 json.add("inputs", inputs);
66 return json;
67 }
68 }