View Javadoc

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   * Data that the data server sends back to a request.
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  	// basic testing of XML marshalling
52  	public static void main(String[] args) throws JAXBException {
53  		// check marshalling
54  		Data d = new Data();
55  
56  		d.params.put("key1", "value1");
57  		d.params.put("key2", "value2");
58  		d.result = new TrendingResult();
59  //		d.result.metadata.put("metakey1", "metavalue1");
60  //		d.result.metadata.put("metakey2", "metavalue2");
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  }