データ前処理プラグイン

学習ウィザードの前処理段階で使用する特別な前処理plug-inを書くことが可能です.

このplug-inにはいくつかの制約が適用されます:

それ以外は, このplug-inへの制限はありません. 

以下にとても簡単な前処理("superman" を "batman"に置き換える処理)を示します:

public class MyPreprocess extends COM.hugin.HGUI.PreProcess{

  public String process(String value){
    if(value.equals("superman"))
      return "batman";
    else
      return value;
  }

  // No we do not provide an interface. If we did, we
  // should also implement the getInterface function.
  public boolean providesInterface(){
    return false;
  }

  public String getDescription(){
    return "Replacing superman with batman";
  }
}

providesInterface関数が真を返す場合,getInterface 関数とstoreValues 関数が実装されていなければなりません.前者は,ユーザーにグラフィカル・インタフェースを提供するためにシステムによって使用され,後者はユーザーがインタフェースに入力した値を格納するために使用されます.つまり,ユーザーが "ok"-ボタンを押すと, storeValuesが呼ばれます.

process 関数は,ケースごとに1回呼ばれ,できるだけ効率的に実行するために,この関数を書くことが重要です.

ユーザー独自のデータ前処理を追加するには,インストール・ディレクトリの下の"plugins" サブ・ディレクトリにコンパイルされたclassを追加するだけです.すると,Huginグラフィカル・ユーザー・インタフェースは,そのプロセスを自動t系に利用可能なプロセスの一覧に追加します.これらは,前処理の"外部プラグイン”セクションの下にグループ化されます(図1).そして,ユーザー定義前処理が,プルダウン・メニューに現れます.

図 1: プルダウン・メニューから利用できる外部データ前処理プラグイン

Huginグラフィカル・ユーザー・インタフェースには,CapitalizeProcess と ConvertToBooleanの2つの前処理プラグインの事例がついています.これらのソース・コードは,classファイルとともに "plugins"ディレクトリ中にあり, データ前処理plug-in機能のすべての様相をデモします.


Back

翻訳者:多田くにひろ(マインドウェア総研