Newer
Older
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
package it.inaf.oats.vospace.datamodel;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.ivoa.xml.uws.v1.JobSummary.JobInfo;
public class JobInfoSerializer extends StdSerializer<JobInfo> {
public JobInfoSerializer() {
super(JobInfo.class);
}
@Override
public void serialize(JobInfo jobInfo, JsonGenerator jg, SerializerProvider sp) throws IOException {
List<Object> any = jobInfo.getAny();
if (any == null || any.isEmpty()) {
jg.getCodec().writeValue(jg, null);
return;
}
if (jobInfo.getAny().size() == 1) {
Object content = jobInfo.getAny().get(0);
Map<String, Object> map = new HashMap<>();
String name = content.getClass().getSimpleName().toLowerCase();
map.put(name, content);
jg.getCodec().writeValue(jg, map);
} else {
jg.getCodec().writeValue(jg, jobInfo.getAny());
}
}
}