Java subagent: methods for argument extraction added to adapters
authorAlex Kirhenshtein <alk@netxms.org>
Fri, 5 Aug 2016 09:20:53 +0000 (12:20 +0300)
committerAlex Kirhenshtein <alk@netxms.org>
Fri, 5 Aug 2016 09:20:53 +0000 (12:20 +0300)
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/AbstractAdapter.java [new file with mode: 0644]
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/ActionAdapter.java
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/ListParameterAdapter.java
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/ParameterAdapter.java
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/PushParameterAdapter.java
src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/TableAdapter.java

diff --git a/src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/AbstractAdapter.java b/src/agent/subagents/java/java/src/main/java/org/netxms/agent/adapters/AbstractAdapter.java
new file mode 100644 (file)
index 0000000..6795e8f
--- /dev/null
@@ -0,0 +1,32 @@
+package org.netxms.agent.adapters;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+abstract class AbstractAdapter {
+
+    @SuppressWarnings("WeakerAccess")
+    protected String extractFirstArgument(final String name) {
+        List<String> arguments = extractArguments(name);
+        if (arguments.size() > 0) {
+            return arguments.get(0);
+        }
+        return "";
+    }
+
+    @SuppressWarnings("WeakerAccess")
+    protected List<String> extractArguments(final String name) {
+        int startIndex = name.indexOf("(");
+        int endIndex = name.lastIndexOf(")");
+        if (startIndex > 0 && endIndex > startIndex) {
+            String value = name.substring(startIndex + 1, endIndex);
+            ArrayList<String> arguments = new ArrayList<String>();
+            for (String argument : value.split(",")) {
+                arguments.add(argument.trim());
+            }
+            return arguments;
+        }
+        return Collections.emptyList();
+    }
+}
index adaa635..0e4c72e 100644 (file)
@@ -24,7 +24,7 @@ import org.netxms.agent.Action;
 /**
  * Adapter for Action interface
  */
-public abstract class ActionAdapter implements Action
+public abstract class ActionAdapter extends AbstractAdapter implements Action
 {
    private String name;
    private String description;
index 9567671..90e18bd 100644 (file)
@@ -24,7 +24,7 @@ import org.netxms.agent.ListParameter;
 /**
  * Adapter for ListParameter interface
  */
-public abstract class ListParameterAdapter implements ListParameter
+public abstract class ListParameterAdapter extends AbstractAdapter implements ListParameter
 {
    private String name;
    private String description;
index faacdf7..5db1060 100644 (file)
@@ -25,7 +25,7 @@ import org.netxms.agent.ParameterType;
 /**
  * Adapter for Parameter interface
  */
-public abstract class ParameterAdapter implements Parameter
+public abstract class ParameterAdapter extends AbstractAdapter implements Parameter
 {
    private String name;
    private String description;
index 009cf41..3f7e31d 100644 (file)
@@ -25,7 +25,7 @@ import org.netxms.agent.PushParameter;
 /**
  * Adapter for PushParameter interface
  */
-public class PushParameterAdapter implements PushParameter
+public class PushParameterAdapter extends AbstractAdapter implements PushParameter
 {
    private String name;
    private String description;
index 43a206a..1576dac 100644 (file)
@@ -25,7 +25,7 @@ import org.netxms.agent.TableParameter;
 /**
  * Adapter for TableParameter interface
  */
-public abstract class TableAdapter implements TableParameter
+public abstract class TableAdapter extends AbstractAdapter implements TableParameter
 {
    private String name;
    private String description;
@@ -69,4 +69,9 @@ public abstract class TableAdapter implements TableParameter
    {
       return columns;
    }
+
+   public void setColumns(TableColumn[] columns)
+   {
+      this.columns = columns;
+   }
 }