Merge pull request #3339 from jkohen/patch-1
[collectd.git] / bindings / java / org / collectd / api / ValueList.java
1 /*
2  * jcollectd
3  * Copyright (C) 2009 Hyperic, Inc.
4  * 
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License as published by the
7  * Free Software Foundation; only version 2 of the License is applicable.
8  * 
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  * 
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
17  */
18
19 package org.collectd.api;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 /**
25  * Java representation of collectd/src/plugin.h:value_list_t structure.
26  */
27 public class ValueList extends PluginData {
28
29     private List<Number> _values = new ArrayList<Number>();
30     private DataSet _ds;
31
32     private long _interval = 0;
33
34     public ValueList() {
35         
36     }
37
38     public ValueList(PluginData pd) {
39         super(pd);
40     }
41
42     public ValueList(ValueList vl) {
43         this((PluginData)vl);
44         _interval = vl._interval;
45         _values.addAll(vl.getValues());
46         _ds = vl._ds;
47     }
48
49     public List<Number> getValues() {
50         return _values;
51     }
52
53     public void setValues(List<Number> values) {
54         _values = values;
55     }
56
57     public void addValue(Number value) {
58         _values.add(value);
59     }
60
61     /* Used by the network parsing code */
62     public void clearValues () {
63         _values.clear ();
64     }
65
66     /**
67      * @deprecated Use {@link #getDataSet()} instead.
68      */
69     public List<DataSource> getDataSource() {
70         if (_ds == null)
71             return null;
72         return _ds.getDataSources ();
73     }
74
75     public DataSet getDataSet () {
76         return _ds;
77     }
78
79     public void setDataSet (DataSet ds) {
80         _ds = ds;
81     }
82
83     /**
84      * @deprecated Use {@link #setDataSet(DataSet)} instead.
85      */
86     public void setDataSource(List<DataSource> dsrc) {
87         _ds = new DataSet (_type, dsrc);
88     }
89
90     /**
91      * Returns the interval (in milliseconds) of the value list.
92      */
93     public long getInterval() {
94         return _interval;
95     }
96
97     /**
98      * Sets the interval (in milliseconds) of the value list.
99      */
100     public void setInterval(long interval) {
101         _interval = interval;
102     }
103
104     public String toString() {
105         StringBuffer sb = new StringBuffer(super.toString());
106         sb.append("=[");
107         List<DataSource> ds = getDataSource();
108         int size = _values.size();
109         for (int i=0; i<size; i++) {
110             Number val = _values.get(i);
111             String name;
112             if (ds == null) {
113                 name = "unknown" + i;
114             }
115             else {
116                 name = ds.get(i).getName();
117             }
118             sb.append(name).append('=').append(val);
119             if (i < size-1) {
120                 sb.append(',');
121             }
122         }
123         sb.append("]");
124         return sb.toString();
125     }
126 }
127
128 /* vim: set sw=4 sts=4 et : */