From d2f971b93c68b110c80be151eb6c5e65bd6d189c Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Wed, 18 Feb 2009 16:43:26 +0100 Subject: [PATCH] java plugin: Implemented oconfig types in Java. The CollectdAPI class has been moved to the `org.collectd.api' namespace, too, so that this stuff is together.. --- .../collectd/{java => api}/CollectdAPI.java | 4 +- .../java/org/collectd/api/OConfigItem.java | 86 ++++++++++++++++++ .../java/org/collectd/api/OConfigValue.java | 91 +++++++++++++++++++ src/java.c | 4 +- 4 files changed, 181 insertions(+), 4 deletions(-) rename bindings/java/org/collectd/{java => api}/CollectdAPI.java (92%) create mode 100644 bindings/java/org/collectd/api/OConfigItem.java create mode 100644 bindings/java/org/collectd/api/OConfigValue.java diff --git a/bindings/java/org/collectd/java/CollectdAPI.java b/bindings/java/org/collectd/api/CollectdAPI.java similarity index 92% rename from bindings/java/org/collectd/java/CollectdAPI.java rename to bindings/java/org/collectd/api/CollectdAPI.java index c6ecca07..bd8d950e 100644 --- a/bindings/java/org/collectd/java/CollectdAPI.java +++ b/bindings/java/org/collectd/api/CollectdAPI.java @@ -1,5 +1,5 @@ /* - * collectd - src/java.c + * collectd/java - org/collectd/api/CollectdAPI.java * Copyright (C) 2009 Florian octo Forster * * This program is free software; you can redistribute it and/or modify it @@ -19,7 +19,7 @@ * Florian octo Forster */ -package org.collectd.java; +package org.collectd.api; import org.collectd.protocol.ValueList; diff --git a/bindings/java/org/collectd/api/OConfigItem.java b/bindings/java/org/collectd/api/OConfigItem.java new file mode 100644 index 00000000..781af090 --- /dev/null +++ b/bindings/java/org/collectd/api/OConfigItem.java @@ -0,0 +1,86 @@ +/* + * collectd/java - org/collectd/api/OConfigItem.java + * Copyright (C) 2009 Florian octo Forster + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; only version 2 of the License is applicable. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: + * Florian octo Forster + */ + +package org.collectd.api; + +import java.util.List; +import java.util.ArrayList; + +public class OConfigItem +{ + private String _key = null; + private List _values = new ArrayList (); + private List _children = new ArrayList (); + + public OConfigItem (String key) + { + _key = key; + } /* OConfigItem (String key) */ + + public String getKey () + { + return (_key); + } /* String getKey () */ + + public void addValue (OConfigValue cv) + { + _values.add (cv); + } /* void addValue (OConfigValue cv) */ + + public void addValue (String s) + { + _values.add (new OConfigValue (s)); + } /* void addValue (String s) */ + + public void addValue (Number n) + { + _values.add (new OConfigValue (n)); + } /* void addValue (String s) */ + + public void addValue (boolean b) + { + _values.add (new OConfigValue (b)); + } /* void addValue (String s) */ + + public List getValues () + { + return (_values); + } /* List getValues () */ + + public void addChild (OConfigItem ci) + { + _children.add (ci); + } /* void addChild (OConfigItem ci) */ + + public List getChildren () + { + return (_children); + } /* List getChildren () */ + + public String toString () + { + return (new String ("{ key: " + _key + "; " + + "values: " + _values.toString () + "; " + + "children: " + _children.toString () + "; }")); + } /* String toString () */ +} /* class OConfigItem */ + +/* vim: set sw=2 sts=2 et fdm=marker : */ diff --git a/bindings/java/org/collectd/api/OConfigValue.java b/bindings/java/org/collectd/api/OConfigValue.java new file mode 100644 index 00000000..5b40e666 --- /dev/null +++ b/bindings/java/org/collectd/api/OConfigValue.java @@ -0,0 +1,91 @@ +/* + * collectd/java - org/collectd/api/OConfigValue.java + * Copyright (C) 2009 Florian octo Forster + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; only version 2 of the License is applicable. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: + * Florian octo Forster + */ + +package org.collectd.api; + +public class OConfigValue +{ + public static final int OCONFIG_TYPE_STRING = 0; + public static final int OCONFIG_TYPE_NUMBER = 1; + public static final int OCONFIG_TYPE_BOOLEAN = 2; + + private int _type; + private String _value_string; + private Number _value_number; + private boolean _value_boolean; + + public OConfigValue (String s) + { + _type = OCONFIG_TYPE_STRING; + _value_string = s; + _value_number = null; + _value_boolean = false; + } /* OConfigValue (String s) */ + + public OConfigValue (Number n) + { + _type = OCONFIG_TYPE_NUMBER; + _value_string = null; + _value_number = n; + _value_boolean = false; + } /* OConfigValue (String s) */ + + public OConfigValue (boolean b) + { + _type = OCONFIG_TYPE_BOOLEAN; + _value_string = null; + _value_number = null; + _value_boolean = b; + } /* OConfigValue (String s) */ + + public int getType () + { + return (_type); + } /* int getType */ + + public String getString () + { + return (_value_string); + } /* String getString */ + + public Number getNumber () + { + return (_value_number); + } /* String getString */ + + public boolean getBoolean () + { + return (_value_boolean); + } /* String getString */ + + public String toString () + { + if (_type == OCONFIG_TYPE_STRING) + return (_value_string); + else if (_type == OCONFIG_TYPE_NUMBER) + return (_value_number.toString ()); + else if (_type == OCONFIG_TYPE_BOOLEAN) + return (Boolean.toString (_value_boolean)); + return (null); + } /* String toString () */ +} /* class OConfigValue */ + +/* vim: set sw=2 sts=2 et fdm=marker : */ diff --git a/src/java.c b/src/java.c index 83fec35c..f6ce4678 100644 --- a/src/java.c +++ b/src/java.c @@ -1120,10 +1120,10 @@ static int cjni_init_native (JNIEnv *jvm_env) /* {{{ */ jclass api_class_ptr; int status; - api_class_ptr = (*jvm_env)->FindClass (jvm_env, "org.collectd.java.CollectdAPI"); + api_class_ptr = (*jvm_env)->FindClass (jvm_env, "org.collectd.api.CollectdAPI"); if (api_class_ptr == NULL) { - ERROR ("cjni_init_native: Cannot find API class `org.collectd.java.CollectdAPI'."); + ERROR ("cjni_init_native: Cannot find API class `org.collectd.api.CollectdAPI'."); return (-1); } -- 2.30.2