データが標準のデータテーブルであると仮定すると、スーパータイプ コンストラクターを呼び出して、NodeModel をサブクラス化する必要があります。
public MyNodeModel(){
//One incoming table, one outgoing table
super(1,1);
}
デフォルトのメソッドをオーバーライドする必要があります。#execute(BufferedDataTable[] inData, ExecutionContext exec)
これは、ノード作業の要点が実行され、出力テーブルが作成される場所です。理想的には、入力テーブルと出力テーブルに 1 対 1 の行マッピングがある場合は、ColumnRearranger
クラスを使用します (これによりディスク IO が大幅に削減され、必要に応じてノードの単純な並列化が可能になるため)。それ以外の場合は、execute メソッドを反復する必要があります。入力データテーブルを介して出力テーブルを生成します。
#configure(DataTableSpec[] inSpecs)
ノードが実行される前にこれが決定できる場合、少なくとも出力テーブルの仕様を提供するためにメソッドを実装する必要があります(通常は可能であり、これにより下流のノードも構成できますが、「転置」ノードはこれができないノードの例)。
他にも実装する必要のあるさまざまなメソッドがありますが、場合によってはこれらが空のメソッドになります。
NodeModel に加えて、いくつかの他のクラス (NodeFactory、オプションで NodeSettingsPane、オプションで NodeView) も実装する必要があります。
Eclipse では、多くのノードのソースを表示できます。また、KNIME コミュニティの「ブック」ページにはすべて、ソース コードへのリンクがあります。ステップバイステップのガイドについては、https://tech.knime.org/developer-guide と https://tech.knime.org/developer/exampleをご覧ください。また、knime フォーラム (開発者フォーラムを含む) への質問には、通常、迅速な回答が得られます。KNIME は、さらに多くのことを学びたい場合は、年に数回、開発者トレーニング コースを実施します。最後になりましたが、ノードがどのように動作するかのベスト プラクティスを説明するノーディング ガイドラインを理解することは価値があります。