实现函数类

如果您具有为 Rational® Integration Tester V8.5 编写的函数,那么可以将其转换为在 V8.6 或更高版本中适用。

有关详细信息,请参阅通过 Eclipse 转换现有函数类

注: 您可以在 Rational Integration Tester 安装的 examples\FunctionsSamplePlugin\src 文件夹中找到示例的源代码。

从 Function 扩展的 Java 类

在插件项目的 src 文件夹下,创建从 com.ghc.ghTester.expressions.Function 扩展的 Java™ 类(例如 com.samples.functions.FormatDate)。

注: 确保将该类放在缺省包之外的包中。为此,在该 Java 类的顶部进行有效的包声明。

现在需要实现以下方法:

缺省构造函数

创建带有空主体的缺省公共构造函数。缺省情况下,您可以根据需要添加其他初始化,但不必执行任何操作。由于函数的创建方式,缺省构造函数必须为公共构造函数。

public FormatDate() {
}

覆盖 create(int size, Vector) 参数

create(int, Vector) 方法是一种工厂方法,用于通过所提供的参数创建特定函数的实例。参数的向量需要视为函数本身,并且可能需要在运行时进行处理。

public Function create(int size, Vector params) {
   Function outputFormat = null;
   if (size == 3) {
      outputFormat = (Function) params.get(2);
   }
   return new FormatDate((Function) params.get(0), (Function) params
                  .get(1), outputFormat);
}

示例中使用的三参数构造函数可在 Rational Integration Tester 安装文件夹的 examples 文件夹中提供的源代码内找到。

覆盖 evaluate(Object) 数据

evaluate(Object) 方法执行函数的实际工作。Rational Integration Tester 将当前求值的上下文传递到您的函数。您可以使用该方法从嵌入函数获得结果,然后返回函数自己的结果。

public Object evaluate(Object data) {
   String date = m_fDate.evaluateAsString(data);
   String inputFormat = m_fInputFormat.evaluateAsString(data);
   String outputFormat = "yyyy-MM-dd"; // Default format
      if (m_fOutputFormat != null) {
   outputFormat = m_fOutputFormat.evaluateAsString(data);
   }

   //...
   if (EvalUtils.isString(date)) {
      date = EvalUtils.getString(date);
   }
   if (EvalUtils.isString(inputFormat)) {
      inputFormat = EvalUtils.getString(inputFormat);
   }
   if (EvalUtils.isString(outputFormat)) {
      outputFormat = EvalUtils.getString(outputFormat);
   }

   SimpleDateFormat inputFormatter = new 
SimpleDateFormat(inputFormat);
   String formattedDate = "";
   try {
      Date d = inputFormatter.parse(date);
      SimpleDateFormat outputFormatter =new 
SimpleDateFormat(outputFormat);
      formattedDate = outputFormatter.format(d);
   } catch (ParseException ex) {
      // ...
   }

   return "\"" + formattedDate + "\"";
}
注: 实现求值方法时,传递给您的参数向量是必须求值才能发现其值的函数。在预期字符串字面值的情况下,求值的函数必须返回用引号括起的值。助手函数可用于协助移除:EvalUtils.getString(Object string)

反馈