AbstractCustomWrapper のオーバーライド¶
AbstractCustomWrapper
の拡張時には以下のメソッドをオーバーライドすることができます。
public CustomWrapperInputParameter[] getInputParameters()
このメソッドは、カスタムラッパーが受け入れる一連の入力パラメータを定義します。これらのパラメータは
CustomWrapperInputParameter
オブジェクトの配列として表現されます。このメソッドのデフォルトの実装は空の配列を返します。このメソッドの実装例は、「 Example implementation of the method getInputParameters 」に示しています。
CustomWrapperInputParameter
オブジェクトは以下のプロパティを持ちます。name
: パラメータの名前。mandatory
:true
の場合、ラッパーに対するクエリの実行時にこのパラメータを指定する必要があります。false
の場合、このパラメータはオプションです。environment dependent
:true
の場合、このパラメータは「環境依存」とみなされます。これは、[Export environment specific properties separately] オプションを指定してこのラッパーの VQL をファイルにエクスポートした場合、このパラメータの値は値ではなくプロパティになることを意味します。false
の場合、このパラメータの値は VQL ファイルに含められます。description
: このパラメータの説明。この説明は、Administration Tool のカスタムデータソースウィザードでヒントとして表示されます。type
: 入力パラメータの型。CustomWrapperInputParameterType
クラスのオブジェクトをインスタンス化するには、CustomWrapperInputParameterTypeFactory
クラスの適切なメソッドを呼び出します。このファクトリーには以下のメソッドがあります。booleanType(...)
: ブール値のパラメータを作成します。integerType()
、longType()
、floatType()
、およびdoubleType()
: 数値のパラメータを作成します。stringType()
、longStringType()
: 通常のテキストと長いテキストのパラメータを作成します。enumStringType(...)
: 列挙パラメータを作成します。この型の入力パラメータは列挙値のみを持つことができます。Administration Tool では、ユーザーがいずれかの有効な値を選択できるように、ドロップダウンリストが表示されます。hiddenStringType()
: Virtual DataPort のログに書き込んだり Administration Tool に表示したりできない機密情報を格納するテキストパラメータを作成します。この型のパラメータの値は Administration Tool には表示されません。routeType(...)
: ファイルパスを格納するパラメータを作成します。Administration Tool には、この型のパラメータの有効なルートを構築するためのウィザードがあります。この型のパラメータは、environment dependent
フラグの値にかかわらず常に環境依存とみなされます。loginType()
およびpasswordType()
: カスタムラッパーに、loginType()
を使用して作成された入力パラメータと、passwordType()
を使用して作成された入力パラメータが含まれている場合、Administration Tool でこのラッパーの基本ビューを作成するときに、パススルー資格情報を有効化できます。有効化した場合、ユーザーが基本ビューに対してクエリを実行すると、これらの 2 つのパラメータの値が、クエリを実行したユーザーの資格情報になります。
@Override
public CustomWrapperInputParameter[] getInputParameters() {
return new CustomWrapperInputParameter[] {
new CustomWrapperInputParameter(STRING_PARAM,
"A mandatory parameter of type string",
true, true,
CustomWrapperInputParameterTypeFactory.
stringType()),
new CustomWrapperInputParameter(BOOLEAN_PARAM,
"A mandatory parameter of type boolean with 'false'" +
"as the default value",
true, true,
CustomWrapperInputParameterTypeFactory.
booleanType(false)),
new CustomWrapperInputParameter(INTEGER_PARAM,
"An optional parameter of type integer",
false, true,
CustomWrapperInputParameterTypeFactory.
integerType()),
new CustomWrapperInputParameter(ROUTE_PARAM,
"An optional parameter of type route",
false, true,
CustomWrapperInputParameterTypeFactory.
routeType(RouteType.values())) };
}
public CustomWrapperConfiguration getConfiguration()
このメソッドは、カスタムラッパーの構成を定義します (カスタムラッパーの構成方法については、「 カスタムラッパーの構成 」を参照)。このメソッドのデフォルトの実装は、使用可能なすべての構成パラメータがデフォルト値に設定された
CustomWrapperConfiguration
のインスタンスを返します。public boolean stop()
このカスタムラッパーに関連するクエリがキャンセルされると、実行エンジンはこのメソッドを呼び出します。
AbstractCustomWrapper
クラスが備えているこのメソッドのデフォルトの実装は、何も行わず、単にfalse
を返します。このラッパーが実行するタスクがキャンセル可能なものであれば、このメソッドをオーバーライドして、タスクをキャンセルしてください。このラッパーが他のシステムへのコネクションを開いたり、ファイルを開いたりする場合は、このメソッドからそれらのリソースを閉じます。
このメソッドが
true
を返したら、ラッパーは、このメソッドの呼び出し後に確実に完了する必要があります。このメソッドの呼び出し後にラッパーが完了しない場合は、false
を返すようにします。このラッパーでこのメソッドをオーバーライドしない場合、実行エンジンはその実行を中断しようとします。そのため、このメソッドの上書きは、推奨されますが必須ではありません。
カスタムラッパーで、挿入、削除、および更新の操作をサポートできます。適切なメソッドを実装またはオーバーライドすることによって、カスタムラッパーは、そのラッパーに挿入、削除、または更新の機能があることを Virtual DataPort が認識するように自動的に構成されます。以下のメソッドを、IDU (挿入、削除、更新) 操作をサポートするようにオーバーライドできます。
public int insert(Map<CustomWrapperFieldExpression, Object> insertValues, Map<String, String> inputValues) throws CustomWrapperException
このメソッドは、カスタムラッパーがデータをその関連するデータソースにどのように挿入するかを定義します。必要に応じて、ラッパーの入力パラメータの値が、使用する引数として渡されます。挿入するデータは、
CustomWrapperFieldExpressions
とObjects
間のマップとして提供されます。CustomWrapperFieldExpression
は、名前を持ち、さらにフィールドが複合フィールドの場合はオプションのサブフィールドリストを持ちます。CustomWrapperFieldExpression
のgetStringRepresentation
メソッドは、フィールドのデフォルトのテキストバージョンを提供します。これは、単にフィールド名の場合もあれば、myfield.myarray[10].myinteger
のようにもっと複雑な場合もあります (この例では、複合フィールドmyfield
、その配列型のサブフィールドmyarray
、およびそのサブフィールドmyinteger
を表しています)。このメソッドは正常に挿入された値の数を返します。デフォルトの実装は、何も行わず、0
を返します。public int delete(CustomWrapperConditionHolder condition, Map<String, String> inputValues) throws CustomWrapperException
このメソッドは、カスタムラッパーがデータをその関連するデータソースからどのように削除するかを定義します。削除条件と入力パラメータの値が引数として渡されます (条件の処理の詳細については「 条件の処理 」を参照)。正常に削除された値の数が返されます。このメソッドのデフォルトの実装は、何も行わず、
0
を返します。public int update(Map<CustomWrapperFieldExpression, Object> updateValues, CustomWrapperConditionHolder condition, Map<String, String> inputValues) throws CustomWrapperException
このメソッドは、カスタムラッパーがデータをその関連するデータソースでどのように更新するかを定義します。更新条件、更新値、および入力パラメータの値が引数として提供されます (条件の処理の詳細については「 条件の処理 」を、更新値の詳細についてはこのセクションの insert メソッドの説明をそれぞれ参照)。正常に更新された値の数が返されます。このメソッドのデフォルトの実装は、何も行わず、
0
を返します。
カスタムラッパーで、分散トランザクションをサポートできます。適切なメソッドを実装またはオーバーライドすることによって、カスタムラッパーは、そのラッパーにトランザクション機能があることを Virtual DataPort が認識するように自動的に構成されます。カスタムラッパーで分散トランザクションをサポートするには、以下の 3 つのメソッドをオーバーライドする必要があります。
public void prepare()
このメソッドは、カスタムラッパーが分散トランザクションのコンテキストで prepare 操作をどのように実行するかを定義します。デフォルトの実装は何も行いません。
public void commit()
このメソッドは、カスタムラッパーが分散トランザクションのコンテキストで commit 操作をどのように実行するかを定義します。デフォルトの実装は何も行いません。
public void rollback()
このメソッドは、カスタムラッパーが分散トランザクションのコンテキストで rollback 操作をどのように実行するかを定義します。デフォルトの実装は何も行いません。