14 リファレンス: カスタム監査ルールのコンテキスト・オブジェクト・メソッド
このリファレンスを使用して、カスタム監査ルールで作成するルール・パック・マネージャ、ルール問題およびルール・レポータのインスタンスを介してアクセスできる機能の詳細を取得します。
| 監査ルール・クラス | 説明 |
|---|---|
|
作成するルール・パック・マネージャ・インスタンスには、ルール・パック・データにアクセスするためのメソッドが用意されています。 |
|
|
作成するルール問題インスタンスには、報告された問題のプロパティを設定するためのメソッドが用意されています。 |
|
|
作成するルール・レポータ・インスタンスには、報告された問題を処理するためのメソッドが用意されています。 |
ルール・パック・クラスのメソッド
ルール・パック・マネージャ・インスタンスは、ルール・パック・データにアクセスするためのメソッドを提供します。
Oracle JAFルール・パック・マネージャには次のメソッドが用意されており、Ruleコンテキスト・オブジェクトから取得したRulePackオブジェクトのインスタンスに対してコールできます。
| メソッド | 説明 |
|---|---|
| getPackInfo() |
ルール・パックのサマリー情報の読取り専用のコピーを含むオブジェクトを返します。 プロパティには、path、prefix、title、version、enabled、statusがあります。 |
| getRuleCustomOptions(string ruleName, string packPrefix) |
ルールのカスタム・オプションの読取り専用コピーを含むオブジェクトを返します。つまり、JAFシステム・ルール・オプションではなく、ユーザーにより指定されたオプションです。 どちらの引数もオプションです。packPrefixが省略された場合は、現在のルール・パックとみなされます。ruleNameが省略された場合は、コール元のルールのオプションが返されます。 |
| getRuleCustomOption(string property, string ruleName, string packPrefix) |
ルールの指定されたカスタム・オプション・プロパティ値を返します。見つからない場合はnullを返します。 ruleNameおよびpackPrefix引数はオプションです。packPrefixが省略された場合は、現在のルール・パックとみなされます。ruleNameが省略された場合は、コール元のルールのオプション・プロパティが返されます。 |
| getRuleOptions(string ruleName, string prefix) |
ルールのオプションの読取り専用コピーを含むオブジェクトを返します。 どちらの引数もオプションです。prefixが省略された場合は、現在のルール・パックと見なされます。ruleNameが省略された場合は、コール元のルールのオプションが返されます。 |
| getRuleOption(string property, string name, string prefix) |
ルールの指定されたルール・オプション・プロパティを返します。 引数nameおよびprefixはオプションです。prefixが省略された場合は、現在のルール・パックと見なされます。ruleNameが省略された場合は、コール元のルールのオプション・プロパティが返されます。 |
| getPrefix() | ルール・パックの接頭辞である文字列を返します。 |
| setRuleOptions(string ruleName, Object options) |
コール元のルール・パック内のルールのオプションを設定します。 rulename引数はオプションです。省略された場合は、コール元のルールのオプションが更新されます。 optionsは、適用するプロパティ/値を含むオブジェクトです。 オプションが正常に適用されている場合は |
| isRuleEnabled(string ruleName, string prefix) |
指定されたルールが現在有効な場合、 prefix引数はオプションで、省略された場合は、ルールはコール元のルール・パック内にあるものと見なされます。 |
| isRuleDisabled(string ruleName, string prefix) |
指定されたルールが現在無効になっている場合、 prefixはオプションで、省略された場合は、ルールはコール元のルール・パック内にあるものと見なされます。 |
| disableRule(string ruleName) |
コール元のルール・パックの指定されたルールを無効にします。 ルールが無効化された(またはすでに無効化されていた)場合は |
| enableRule(string ruleName) |
コール元のルール・パックの指定されたルールを有効にします。 ルールが有効化された(またはすでに有効化されていた)場合は ノート: 現在のリリースでは、以前に(起動時)ロードしたルールのみを再度有効化できます。つまり、なんらかの理由で初期化中にルールが破棄され、その |
| getRuleCount() | コール元のルール・パック内に定義されているルールの数を返します。 |
| getEnabledRuleCount() | コール元のルール・パック内で現在有効なルールの数を返します。 |
| getRuleList() | コール元のルール・パック内のルール名のリストを返します。 |
| getEnabledRuleList() | コール元のルール・パック内で現在有効なルールの名前の配列リストを返します。 |
| getRule() | コール元のルール・パック内のルールのインスタンスを返し、エクスポートされたメソッドをコールできるようにします。 |
| getExtension() | setExtension()で指定されたルール・パック固有のデータを返します。
|
| setExtension(* data) |
dataは任意のデータ型で、これを使用してルールに有用な任意のデータ、ライブラリなどを参照できます。 |
| sendMsg(string ruleName, ...data) |
コール元と同じパック内の特定のルールの dataは任意の数の引数を表します。これらの引数は、配列として onMsg(Object sender, *[] data); ここで、senderは次の形式のオブジェクトです:
ルールでは、データ・メッセージをそのルール自体に送信できないことに注意してください(競合状態を緩和するため)。 |
| broadcastMsg(string[] ruleNames, ...data) |
コール元と同じパックにあるルールのリストの ruleNamesがnullの場合、データは、エクスポートされた
dataの形式については、 |
| getInfo() |
JAFインスタンスに関するその他の情報を、文字列として次のプロパティを持つオブジェクトとして返します。
|
ルール問題クラスのメソッド
Issueオブジェクトを作成し、提供されているOracle JAF Issueクラスのメソッドを使用して、レポートされた問題のプロパティを設定できます。
Oracle JAF Issueクラスには、監査ルールの登録済イベント・リスナー関数内で作成するIssueオブジェクトのプロパティの設定に使用できる次のコンストラクタおよびセッター・メソッドが用意されています。
Issueクラスの一般的な使用方法では、コンストラクタ・メソッドをコールして、問題の説明やオプションのメッセージIDなどの詳細を含むIssueインスタンスを作成します:var myIssue = new context.Issue(msg [, messageID]);ルールの重大度はルール定義から取得されますが、これはIssue.setSeverity()を使用してルール内でオーバーライドできます。
| メソッド | 説明 |
|---|---|
| constructor(string msg [, string id]) |
msg—(オプション)問題の説明である文字列。 id—(オプション)オプションのメッセージIDである文字列。これは監査出力に |
| setId(string id) |
メッセージIDのID部分を設定します。 id—メッセージ番号の末尾にあるIDである文字列。たとえば、Idが |
|
setPosition(number line, number column, number startIndex, number endIndex) または setPosition(Object pos) |
レポートされるメッセージまたはJSONに表示される監査対象ファイルの行番号または列番号をオーバーライドします。 line—監査対象データ内の行番号。 column—監査対象データ内の列番号。 startIndex—(オプション)監査対象データの開始位置。 endIndex—(オプション)監査対象データの終了位置。 line/columnにはnullを指定できます。この場合、行と列はJAFによってstartIndexから計算されます。 また、次のように、オブジェクトとして指定することもできます:
ここで、posは次の形式のオブジェクトです: line—行番号。 column—列番号。 startIndexまたはstart—開始インデックス。 endIndexまたはend—終了インデックス。 posオブジェクトは、ルールによって構築されるか、 |
| setSeverity(string severity) | 問題の重大度を設定します(rules.jsonファイルで定義されたルール重大度、または構成プロパティruleModsで変更された重大度をオーバーライドします。info、minor、major、critical、blockerのいずれかです。
|
| setMsgKey(string id) | 問題のメッセージIDを設定します。これにより、ルール・パックのmsgid.jsonファイル(存在する場合)から取得されたメッセージ・キーがオーバーライドされます。
|
| setMsgEx(Object) |
問題に関する拡張メッセージ情報オブジェクトを設定します。これは、出力がproseでない場合にのみ意味があります。これは通常、監査メッセージ文字列から抽出された情報を簡単にアクセスできる形式で提供して、出力オブジェクトを使用する際に監査メッセージを解析する必要をなくすために使用されます。また、ルールが提供する追加の詳細で問題を補強するために使用することもできます。このメソッドによって提供されるオブジェクトは、出力JSONまたはメッセージ・オブジェクトにプロパティmsgExとして追加されます。JAFでは、オブジェクトのコンテンツを使用または検査しません。 |
| setReportedFilePath(string filepath) |
指定されたファイル・パスを、問題が報告されるファイル・パスとして設定します。これは、以前に監査されたファイルのルールパック・ライフサイクル・リスナー(例: ノート: これは通常の監査サイクル・ルールには必要ありません。 |
ルール・レポータ・クラスのメソッド
Reporterオブジェクトを作成し、提供されているOracle JAF Reporterクラスのメソッドを使用して、レポートされた問題を処理できます。
Oracle JAF Reporterクラスには、監査ルールの登録済イベント・リスナー関数でReporterインスタンスに渡したIssueオブジェクトのレポートの処理に使用できる次のメソッドが用意されています。
Reporterインスタンスの典型的な使用方法は、addIssue()メソッドをコールすることです:context.reporter.addIssue(myIssue, context);| メソッド | 説明 |
|---|---|
| addIssue(Object issue, Object context [, string severity]) |
レポートする issue— context—ルールに渡されるコンテキスト・オブジェクト。 severity—(オプション)ルールでルール重大度をオーバーライドできます。infor、minor、major、critical、blockerのいずれかです。 |
| clearIssues() |
現在のファイルの |
| getCount() | 現在のファイルのReporterインスタンスに追加されている問題の現在の数を返します。
|
| getFormat() | 現在の出力形式(proseまたはjson)を返します。
|