1 package org.lsst.ccs.localdb.statusdb.server;
2
3 import java.io.Serializable;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import javax.xml.bind.JAXBContext;
9 import javax.xml.bind.JAXBException;
10 import javax.xml.bind.Marshaller;
11 import javax.xml.bind.annotation.XmlElement;
12 import javax.xml.bind.annotation.XmlRootElement;
13 import javax.xml.bind.annotation.XmlType;
14
15 import org.lsst.ccs.localdb.statusdb.server.TrendingData.AxisValue;
16 import org.lsst.ccs.localdb.statusdb.server.TrendingData.DataValue;
17
18
19
20
21
22 @XmlRootElement(name = "data")
23 @XmlType(propOrder = { "params", "trendingResult" })
24 public class Data implements Serializable {
25
26
27
28 private static final long serialVersionUID = -4852091712986749775L;
29 Map<String, String> params = new HashMap<String, String>();
30
31 @XmlElement
32 List<HashMapEntry4XML> getParams() {
33 return HashMapEntry4XML.marshal(params);
34 }
35
36 TrendingResult result = new TrendingResult();
37
38 @XmlElement(name = "trendingresult")
39 public TrendingResult getTrendingResult() {
40 return result;
41 }
42
43 public void setTrendingResult(TrendingResult result) {
44 this.result = result;
45 }
46
47 public void setDataMetaData(List<ChannelMetaData> list) {
48 result.setChannelMetadata(list);
49 }
50
51
52 public static void main(String[] args) throws JAXBException {
53
54 Data d = new Data();
55
56 d.params.put("key1", "value1");
57 d.params.put("key2", "value2");
58 d.result = new TrendingResult();
59
60
61 d.result.data = new TrendingData[10];
62 for (int i = 0; i < 10; i++) {
63 TrendingData dt = new TrendingData();
64 d.result.data[i] = dt;
65 dt.axisvalue = new AxisValue("time", System.currentTimeMillis());
66 dt.datavalue = new DataValue[2];
67 dt.datavalue[0] = new DataValue("data", 1.0);
68 dt.datavalue[1] = new DataValue("data", 2.0);
69 }
70
71 JAXBContext jc = JAXBContext.newInstance(Data.class);
72 Marshaller m = jc.createMarshaller();
73 m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
74 m.marshal(d, System.out);
75 }
76
77 }