名前規則を使用したカスタム関数の作成¶
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 である。
または、その関数の戻り値の型が入力パラメータの型に応じて異なる。
このメソッドの詳細については、「 カスタム関数の戻り値の型 」を参照してください。