0

我正在尝试为 BMC 操作请求系统服务器编写一个迷你插件。

filterAPICall
public abstract List<com.bmc.arsys.api.Value> filterAPICall(ARPluginContext context,
                                                        List<com.bmc.arsys.api.Value> pInValues)
                                                 throws com.bmc.arsys.api.ARExceptionDescription copied from interface: ARFilterAPIPluggable

给定一组输入值,对其进行处理并返回输出值列表。还提供了插件上下文和实例数据。

Specified by:
filterAPICall in interface ARFilterAPIPluggable

Parameters:
context - Current context for this plugin call, like username etc.
pInValues - input values 

Returns:
output values 

Throws: 
com.bmc.arsys.api.ARException

com.bmc.arsys.api.Value 的描述在这里: http ://www.javasystemsolutions.com/documentation/thirdparty/arapiv75/com/bmc/arsys/api/Value.html

现在,这是我的电话:

    public List<Value> filterAPICall(ARPluginContext context, List<Value> pInValues) throws ARException{
        context.logMessage(pluginInfo, ARPluginContext.PLUGIN_LOG_LEVEL_INFO, "filterapiCall()");

        if (pInValues.size() == 0)
            return null;

        ArrayList<Value> outValues = new ArrayList<Value>();

        outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues)))));

        return outValues;
    }

由于某些原因

    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues)))));

不管用。

我也试过:

    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues.getValue())))));

但编译器说:

javac IPChecker.java
IPChecker.java:30: cannot find symbol
symbol  : method getValue()
location: interface java.util.List<com.bmc.arsys.api.Value>
        outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues.getValue())))));
                                                                                                      ^
1 error

有任何想法吗?

谢谢托马斯

4

3 回答 3

2

你应该迭代。

if (pInValues.size() == 0)
    return null;

ArrayList<Value> outValues = new ArrayList<Value>();

for(Value value : pInValues) {
    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(value)))));
}

return outValues;
于 2012-06-08T12:58:02.883 回答
1

pInValues是一个java.util.ListLists没有getValue()方法。

于 2012-06-08T12:58:27.843 回答
0

您需要访问 中的元素List才能调用getValue()它。尝试:

outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(
    String.valueOf(pInValues.get(0).getValue())))));

This will translate the first element and add it to the output list. To get all elements, you need to iterate through the elements in pInValues and translate them one-by-one, adding each result to the output list

于 2012-06-08T12:59:51.117 回答