61cfdd7954d33c01c3b2553c24fc535d3e7a7239
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 */
19 package org.collectd.api;
21 import java.util.ArrayList;
22 import java.util.List;
24 /**
25 * Java representation of collectd/src/plugin.h:value_list_t structure.
26 */
27 public class ValueList extends PluginData {
29 List<Number> _values = new ArrayList<Number>();
30 List<DataSource> _ds = new ArrayList<DataSource>();
32 long _interval;
34 public ValueList() {
36 }
38 public ValueList(PluginData pd) {
39 super(pd);
40 }
42 public ValueList(ValueList vl) {
43 this((PluginData)vl);
44 _interval = vl._interval;
45 _values.addAll(vl.getValues());
46 _ds.addAll(vl._ds);
47 }
49 public List<Number> getValues() {
50 return _values;
51 }
53 public void setValues(List<Number> values) {
54 _values = values;
55 }
57 public void addValue(Number value) {
58 _values.add(value);
59 }
61 /* Used by the network parsing code */
62 public void clearValues () {
63 _values.clear ();
64 }
66 public List<DataSource> getDataSource() {
67 if (_ds.size() > 0) {
68 return _ds;
69 }
70 else {
71 return null;
72 }
73 }
75 public void setDataSource(List<DataSource> ds) {
76 _ds = ds;
77 }
79 public long getInterval() {
80 return _interval;
81 }
83 public void setInterval(long interval) {
84 _interval = interval;
85 }
87 public String toString() {
88 StringBuffer sb = new StringBuffer(super.toString());
89 sb.append("=[");
90 List<DataSource> ds = getDataSource();
91 int size = _values.size();
92 for (int i=0; i<size; i++) {
93 Number val = _values.get(i);
94 String name;
95 if (ds == null) {
96 name = "unknown" + i;
97 }
98 else {
99 name = ds.get(i).getName();
100 }
101 sb.append(name).append('=').append(val);
102 if (i < size-1) {
103 sb.append(',');
104 }
105 }
106 sb.append("]");
107 return sb.toString();
108 }
109 }