名前規則を使用したカスタム関数の作成

Denodo では、アノテーションを使用してカスタム関数を開発することを推奨していますが、クラスとそのメソッドの名前に関する一定の規則に従ってカスタム関数を開発することも可能です。

Java クラスがカスタム関数として認識されるようにするには、そのクラスの名前が以下の規則に準拠している必要があります。

  • 条件関数: <FunctionName>VdpFunction

  • 集計関数: <FunctionName>VdpAggregateFunction

注釈

これらの規則では大文字と小文字が区別されます。つまり、クラス名は、 function1VDPFUNCTION ではなく、 function1VdpFunction のようにする必要があります。

こうすることで、 Concat_SampleVdpFunction という名前の Java クラスは、 Concat_Sample という名前の条件関数として解釈され、 Group_Concat_SampleVdpAggregateFunction という名前のクラスは、 Group_Concat_Sample という名前の集計関数として解釈されます。

関数シグネチャを実装する Java メソッドは、いずれも execute という名前でなければなりません。各メソッドに関連付けられたシグネチャは、そのメソッドのパラメーターから抽出されます。

たとえば、 execute(valueA:String, valueB:String):String というメソッドを持つ、 Concat_SampleVdpFunction という名前のクラスでは、 CONCAT_SAMPLE(arg1:text, arg2:text) という関数シグネチャが生成されます。

カスタム関数でアリティ n を定義する方法は、配列をメソッドの最後のパラメーターとして使用することです。つまり、クラス Concat_SampleVdpFunction で、 public String execute(String [] inputs) としてメソッドを宣言します。

以下の条件に該当するカスタム関数では、関連する execute メソッドと同じパラメーターを使用して executeReturnType という名前のメソッドを定義する必要があります。

  • その関数の戻り値の型が array または register である。

  • または、その関数の戻り値の型が入力パラメーターの型に応じて異なる。

このメソッドの詳細については、「 カスタム関数の戻り値の型 」を参照してください。