COBOL コード・レビューのカスタム規則 API と COBOL アプリケーション・モデル API (CAM) を使用して、ユーザー作成カスタム規則用に選択した COBOL 言語エレメントを分析します。
注: 最新の情報については、『IBM® technotes for Rational® Developer
for System z®』を参照してください。
COBOL アプリケーション・モデル API
2 つの API は補完的であるため、ユーザー作成カスタム規則を実装する際には、両方の API に関する部分的な知識が必要になります。
- COBOL コード・レビューのカスタム規則 API
この API は、ユーザー作成規則のための基本クラスを提供し、COBOL アプリケーション・モデル (CAM) でのオブジェクト操作に役立つクラスを含んでいます。
この API の資料を見る場合は、オンライン・ヘルプの目次でとクリックしてください。
- COBOL アプリケーション・モデル (CAM) API
この API は、COBOL コード・レビュー・コンポーネントによるプログラムの分析中に、COBOL ソース・コード・プログラムのエレメントにアクセスするためのインターフェースを提供します。
この API の資料を見る場合は、オンライン・ヘルプの目次でとクリックしてください。
注: この API の概要を見る場合は、以下のようにします。
- API の資料を開きます。 最初のトピックは、com.ibm.etools.cobol.application.model.cobol パッケージです。
- トピックの最後までスクロールして、「説明」セクションを読みます。
カスタム規則のコード分析の実装
カスタム規則のコード分析を実装するには、以下のようにします。
- カスタム規則用に生成された Java™ ソース・ファイルを開きます。
- まだ開いていない場合は、「プラグイン開発」パースペクティブを開きます。
- パッケージ・エクスプローラーで、カスタム規則用に生成された Java ソース・ファイルを右クリックして、とクリックします。
注: - パッケージ・エクスプローラーでの Java ファイルのロケーションは、project_name > src > package_name > class_name.java です。
- 例えば、のようになります。
- Java エディターで、必要に応じて、生成された各 visit() メソッドに、必要なコード分析を行うための Java コードを追加します。
visit() メソッドは、選択した COBOL 言語エレメントに応じて、COBOL アプリケーション・モデル・インターフェースの非抽象サブインターフェースごとに生成されます。
例えば、作成ウィザードの 3 ページ目の「プログラム」ツリーで ACCEPT エレメントを選択したとします。
- ACCEPT に対応する CAM インターフェースは、AcceptStmt インターフェースです。
- 「既知のすべてのサブインターフェース」見出しの下にある AcceptStmt インターフェースの javadoc は、AcceptStmt に 2 つのサブインターフェース (AcceptDataTranferStmt と AcceptSystemInfoTransferStmt) があることを示しています。
- そのため、2 つの各サブインターフェースに 1 つずつで合計 2 つの visit() メソッドが生成されます。
注: - visit() メソッドは、ICOBOLVisitor インターフェースに属しています。
これは、COBOL コード・レビューのカスタム規則 API の com.ibm.rsar.analysis.codereview.cobol.custom.model.util パッケージ内にあります。 ICOBOLVistor を直接実装するよりも、AbstractCOBOLVisitor をサブクラス化することをお勧めします。 この例で、生成された visit() メソッドは以下のとおりです。
- boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptDataTransferStmt n)
- boolean visit(com.ibm.etools.cobol.application.model.cobol.AcceptSystemInfoTransferStmt n)
- visit() メソッドへの入力として渡されるノードは、COBOL アプリケーション・モデル (CAM) API 内の com.ibm.etools.cobol.application.model.cobol パッケージの ASTNode インターフェースのサブインターフェースです。
COBOL ソース・ファイルに対してコード分析を実行する際に、コード分析プログラムは、対応する ASTNode のインスタンスを検出すると、常に visit() メソッドを呼び出します。 各 visit() メソッドで、以下を行う Java コードを追加します。
- visit() メソッドへの入力として渡される ASTNode n を使用して、
分析する COBOL 言語エレメントのインスタンスに関する情報を取得します。
例えば、見出し部のプログラム ID 属性を取得する場合は、以下のようにします。ここで、n は、IdentificationDivision オブジェクトです。
String myProgramID = n.getProgramId();
- カスタム規則に必要なコード分析を実行します。 規則に複数の visit() メソッドがある場合は、各 visit() メソッドの結果を調整するための Java コードも作成する必要があるかもしれません。
- 戻りコードと戻り情報を設定します。 引き続き現行ノードの子ノードにアクセスする場合は true を返し、子ノードへのアクセスをスキップする場合は false を返します。 分析中の COBOL 言語エレメントが規則に違反している場合は、該当するノードをトークン・リストに追加します。
- 終了したら、Java エディターを閉じます。