/
JSONEncoder.java
130 lines (106 loc) · 4.26 KB
/
JSONEncoder.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package org.vitrivr.cineast.api;
import java.util.List;
import org.vitrivr.cineast.core.data.StringDoublePair;
import org.vitrivr.cineast.core.db.SgmentLookup.SegmentDescriptor;
import org.vitrivr.cineast.core.db.MultimediaObjectLookup.MultimediaObjectDescriptor;
import com.eclipsesource.json.JsonArray;
import com.eclipsesource.json.JsonObject;
public final class JSONEncoder {
private JSONEncoder(){}
public static final JsonObject encodeResult(String shotId, double score, String category, int containerId, boolean includeType){
JsonObject _return = new JsonObject();
if(includeType){
_return.add("type", "result");
}
_return.add("shotid", shotId);
_return.add("score", score);
_return.add("category", category);
_return.add("containerid", containerId); //TODO remove
return _return;
}
public static final JsonObject encodeResult(String shotId, double score, String category, int containerId){
return encodeResult(shotId, score, category, containerId, true);
}
public static final JsonObject encodeResultBatched(List<StringDoublePair> sdpList, String category, int containerId){
JsonObject _return = new JsonObject();
_return.add("type", "batch");
_return.add("inner", "result");
JsonArray array = new JsonArray();
for(StringDoublePair sdp : sdpList){
array.add(encodeResult(sdp.key, sdp.value, category, containerId, false));
}
_return.add("array", array);
return _return;
}
public static final JsonObject encodeShot(String shotId, String videoId, long startFrame, long endFrame, boolean includeType){
JsonObject _return = new JsonObject();
if(includeType){
_return.add("type", "shot");
}
_return.add("shotid", shotId);
_return.add("videoid", videoId);
_return.add("start", startFrame);
_return.add("end", endFrame);
return _return;
}
public static JsonObject encodeShot(SegmentDescriptor sd, boolean includeType){
return encodeShot(sd.getShotId(), sd.getVideoId(), sd.getStartFrame(), sd.getEndFrame(), includeType);
}
public static final JsonObject encodeShot(String shotId, String videoId, long startFrame, long endFrame){
return encodeShot(shotId, videoId, startFrame, endFrame, true);
}
public static final JsonObject encodeShot(SegmentDescriptor sd){
return encodeShot(sd, true);
}
public static final JsonObject encodeShotBatch(List<SegmentDescriptor> sdList){
JsonObject _return = new JsonObject();
_return.add("type", "batch");
_return.add("inner", "shot");
JsonArray array = new JsonArray();
for(SegmentDescriptor sd : sdList){
array.add(encodeShot(sd, false));
}
_return.add("array", array);
return _return;
}
public static final JsonObject encodeVideo(String name, String videoId, String path, int width, int height, long frames, double seconds, boolean includeType){
JsonObject _return = new JsonObject();
if(includeType){
_return.add("type", "video");
}
_return.add("name", name);
_return.add("videoid", videoId);
_return.add("path", path);
_return.add("width", width);
_return.add("height", height);
_return.add("frames", frames);
_return.add("seconds", Double.isNaN(seconds) ? 1 : seconds);
return _return;
}
public static final JsonObject encodeVideo(String name, String videoId, String path, int width, int height, long frames, double seconds){
return encodeVideo(name, videoId, path, width, height, frames, seconds, true);
}
public static final JsonObject encodeVideo(MultimediaObjectDescriptor vd, boolean includeType){
return encodeVideo(vd.getName(), vd.getId(), vd.getPath(), vd.getWidth(), vd.getHeight(), vd.getFramecount(), vd.getSeconds(), includeType);
}
public static final JsonObject encodeVideo(MultimediaObjectDescriptor vd){
return encodeVideo(vd, true);
}
public static final JsonObject encodeVideoBatch(List<MultimediaObjectDescriptor> vdList){
JsonObject _return = new JsonObject();
_return.add("type", "batch");
_return.add("inner", "video");
JsonArray array = new JsonArray();
for(MultimediaObjectDescriptor vd : vdList){
array.add(encodeVideo(vd, false));
}
_return.add("array", array);
return _return;
}
public static final JsonObject encodeResultName(String resultName){
JsonObject _return = new JsonObject();
_return.add("type", "resultname");
_return.add("name", resultName);
return _return;
}
}