13 リファレンス: カスタム監査ルールのコンテキスト・オブジェクト・プロパティ
このリファレンスを使用して、コンテキスト・オブジェクトで渡されるカスタム監査ルールで使用できるプロパティおよび機能について学習します。コンテキスト・オブジェクトには、監査済ファイル・セットに応じてOracle JAF監査エンジンによって生成されたASTノード・データが含まれます。
コンテキスト・オブジェクト | 説明 |
---|---|
ルールの |
|
監査のターゲット・ファイル内の特定データについてJAF監査エンジンによってリスナーがトリガーされると、ルールの登録済リスナーは |
|
CSS監査ルールの登録済リスナーは、CSS処理に固有の情報を含む |
|
Markdown監査ルールの登録済リスナーは、Markdown処理に固有の情報を含む |
Register関数に渡されるコンテキスト・オブジェクト・メンバー
ルールのregister()
関数は、監査の起動時にJAF監査エンジンによって呼び出されると、Register
コンテキスト・オブジェクトを受け取ります。
Register
コンテキスト・オブジェクトは、JAF監査の起動時に、JAF構成で指定されている監査ルールに渡されます。JAF起動時に生成されるコンテキスト・オブジェクトには、すべてのルール・タイプのregister()
関数で使用できるその他のサポート・データおよび機能が含まれます。
ノート:
Register
コンテキスト・オブジェクトをキャッシュしないでください。context.utils.msgLib
など、格納されている値はキャッシュしても構いません。
メンバー | 説明 |
---|---|
rulePack | ルール・パック・マネージャ・インスタンス。これは、ルール・パック・データにアクセスするためのメソッドを提供します。詳細は、「ルール・パック・クラスのメソッド」を参照してください。 |
ruleOpts | ルール・パックのrules.json ファイルからのルール・オプション・オブジェクトの読取り専用コピーおよび構成プロパティruleModsのオーバーライド。
|
runMode | 実行モード値は、コマンドラインからの監査の起動を表すcliになります。将来のリリースで、他のオプションもサポートされる可能性があります。 |
config | 有効なランタイム構成プロパティの読取り専用コピーである構成オブジェクト。 |
ojetConfig | oraclejetconfig構成オブジェクト(Oracle JAF監査がOracle JETツールで管理されているプロジェクトのルートで実行されている場合)。このプロパティは、フック・ルールのstartupRPおよびclosedownRPフェーズでのみ使用可能です。 |
utils | その他のユーティリティ・ライブラリ。「登録済リスナーで使用可能なコンテキスト・オブジェクト・プロパティ」のutilsを参照してください。 |
sysOpts | 実行時オプションを反映するブール・プロパティverboseModeおよびdebugModeが含まれるオブジェクト。 |
jsNodeTypes | JavaScript抽象構文ツリー(AST)の列挙ノード・リスナー・タイプ文字列が含まれるオブジェクト(ルールがJavaScriptを処理する場合)。「JavaScript/TypeScriptルールのリスナー・タイプ」も参照してください。 |
登録済リスナーで使用可能なコンテキスト・オブジェクト・プロパティ
監査のターゲット・ファイル内の特定データについてJAF監査エンジンによってリスナーがトリガーされると、ルールの登録済リスナーはRule
コンテキスト・オブジェクトを受け取ります。
JAF監査エンジンは、ターゲット・ファイル・セットの特定のノード・タイプを処理するためにルールで登録しているリスナーが指定されているルールすべてにRule
コンテキスト・オブジェクトを渡します。生成されたコンテキスト・オブジェクトには、ルール・タイプの登録済リスナーで使用できる次のその他のサポート・データおよび機能が含まれています。
ノート:
Rule
コンテキスト・オブジェクトをキャッシュしないでください。context.utils.msgLib
など、格納されている値はキャッシュしても構いません。
プロパティ | 説明 |
---|---|
type |
引数でルールに渡されるデータのタイプを指定したり、イベントを通知します。 HTML、JSONおよびCSSの場合: 「HTMLおよびJSONルールのリスナー・タイプ」を参照してください。 JavaScript/TypeScriptの場合: 「JavaScript/TypeScriptルールのリスナー・タイプ」を参照してください。 登録されたタイプでは、ルールがフック・ルールであることも指定できます。フック・ルールは、一般的なノード・ルールの解析済ファイル・データに対するレスポンスとは対照的に、効率的に監査エンジンにフックを付け、監査の特定フェーズでコールされます。詳細は、「フック・ルール呼出しについて」を参照してください。フック・タイプは、startup、closedown、startupRP、startaudit、closedownRPおよびfileです。 |
node | DOM、JavaScript/TypeScript(抽象構文ツリー - AST)、JSON (AST)またはセレクタ・ツリーの現在のノードからの詳細が格納されるノード・オブジェクト。 |
tagNode | 含まれているタグ要素に関する詳細が格納される現在のタグ要素ノード・オブジェクト。タイプtag の場合、nodeおよびtagNodeプロパティは同じです。
|
tag | div やoj-avatar などのHTML要素名。
|
ojTag | HTML要素がoj- で始まり、定義済のOracle JET要素タグである場合は、true です。ojtag のcontext.type は、要素名がoj- で始まることのみを表します。
|
ojNS | 要素名がOJ ネームスペースに定義されている場合は、true です。
|
elemStack | HTMLページの場合、現在の要素の位置コンテキストを示すノード・オブジェクトの配列です。配列の最後のエントリ(インデックスが最高)が現在の要素です。 |
sysOpts | ブール・オプションverboseModeおよびdebugModeを含む、その他のシステム・オプション。コンテキスト・プロパティmsgLibも参照してください。 |
userDefs | 構成ファイルのuserDefsプロパティ(定義されている場合)。このプロパティはOracle JAFでは検査されません。 |
rulePack | ルール・パック・マネージャ・インスタンス。これは、ルール・パック・データにアクセスするためのメソッドを提供します。使用可能なメソッドの詳細は、「ルール・パック・クラスのメソッド」を参照してください。 |
Issue | Issue クラス。これは、レポートされる問題ごとに新しいIssue オブジェクトを作成してIssueの詳細を問い合せる場合に使用します。使用可能なメソッドの詳細は、「ルール問題クラスのメソッド」を参照してください。
|
reporter | Reporter インスタンス。構成されたIssue オブジェクトは、監査出力に含めるために監査ルールによってこのインスタンスに渡されます。これは、IssueオブジェクトをReporterインスタンスに追加してReporterの詳細を問い合せる場合に使用します。使用可能なメソッドの詳細は、「ルール・レポータ・クラスのメソッド」を参照してください。
|
ruleName | ルール名。 |
filepath | 現在処理中のファイルへのフル・ファイル・パス。一貫性を保つため、filepathでは常に、プラットフォーム関係なくフォワード・スラッシュを使用します。監査ルールは、この点においてプラットフォームに依存しません。 |
filetype | ファイル・タイプ(小文字) |
phase | ルールがフック・ルールである場合、この文字列はルールが呼び出されたフェーズ(startup、closedown、startupRP、startaudit、closedownRP、fileなど)を表します。 |
utils |
Oracle JAFユーティリティ・ライブラリが格納されます:
登録タイプによっては、ライブラリが省略されることがあります。たとえば、タイプ |
userDefs | 構成プロパティuserDefsによって(オプションで)定義される値。 |
NodeTypes | 列挙タイプ定義のセット。たとえば、NodeTypes.TAGやNodeTypes.SCRIPTなど。 |
Markdownルール・リスナーで使用可能なコンテキスト・オブジェクト・プロパティ
Markdownルールの登録済リスナーは、Markdown処理に固有の情報を含むRule
コンテキスト・オブジェクトを受け取ります。
Markdown処理では、ルールはfile
イベント(.mdファイルが最初に読み取られるとき)、または特定のMarkdownイベント(特定のタイプのマークアップが見つかったとき)をリスニングできます。どちらの場合も、JAF監査エンジンは、Markdownファイルの特定のノード・タイプを処理するためにルールで登録されているルール・リスナーにRule
コンテキスト・オブジェクトを渡します。Markdownファイル用に生成されたcontext
オブジェクトには、Markdown処理に固有のサポート・データおよび機能が含まれます。
要約データにアクセスするために、context
オブジェクトの補助データ・プロパティsuppDataには、イメージ、段落、ヘッダー、コード・ブロックなどを取得するためにそのutils
オブジェクトで使用できる次のメソッドが用意されています。「登録済リスナーで使用可能なコンテキスト・オブジェクト・プロパティ」で説明しているように、基本プロパティに加えて、これらはすべてのルール・タイプのcontext
オブジェクトで使用できます。
ノート:
Rule
コンテキスト・オブジェクトをキャッシュしないでください。context.utils.msgLib
など、格納されている値はキャッシュしても構いません。
- ast: 抽象構文ツリー(AST)
- utils: ユーティリティ・オブジェクト(次の表のメソッド)
メソッド | 引数 | 説明 |
---|---|---|
getLinks() | なし |
マークアップをスキャンしてURL参照を検索し、
リンク宣言が参照リンクを使用する場合、リンク・オブジェクトではinlineプロパティが refKeyプロパティを使用すると、参照リンク・オブジェクトを介して関連付けられたURLを検索できます。次のgetRefLinks()を参照してください。 |
getRefLinks() | なし |
マークアップをスキャンして参照リンクを検索します。非インライン・リンクは、マークアップ内の他の場所で定義されたリンクへの参照を提供します。このメソッドは、参照キーによる参照リンク・オブジェクトを含むオブジェクトを提供します。 URLへの間接参照を含む次のマークアップ・テキストについて考えてみます:
これは次の参照リンクに解決されます:
これは、参照リンク・オブジェクトを含むオブジェクトを返します。各オブジェクトにはその参照キーの名前が付けられます(例:
|
getImages() | なし |
マークアップをスキャンしてイメージ宣言を検索し、
イメージ宣言が参照リンクを使用する場合、イメージ・オブジェクトではinlineプロパティが |
getCode() | なし |
(バックティックまたはチルドを使用して)マークアップをスキャンしてフェンス・コード・ブロックを検索し、
|
getParas() | なし |
マークアップをスキャンして段落と見出しを検索します。
ノート: 標準の段落テキストの場合、levelは0です。ゼロより大きい値は、マークアップ見出しの |
getLists() |
マークアップをスキャンして順序付きリストおよび順序なしリストを検索し、オブジェクトの配列を返します。各オブジェクトは次のプロパティを持ちます。
リスト・エントリがサブリストを表す場合、リスト・アイテム内にchildrenプロパティが使用されます。各オブジェクト・サブリストを含む配列が含まれています。それぞれが |
|
testParas() | (regexp RegExp, [boolean firstmatch]) |
正規表現を引数として受け取り、マークアップ内で見つかった各段落にそれを適用します。オプションの2番目のブール引数は、一致するすべての段落を返すか、または一致する最初の段落のみを返すか(省略した場合はこれがデフォルト)を指定します。 paraオブジェクトの配列を返します。paraオブジェクトのプロパティについては、前述のgetParas()を参照してください。 次の例では、一致する段落オブジェクトがparasに含められます:
|
getLineMap() | なし |
マップ・キーとして行番号(1からの相対位置)を持つ この例では、map変数が
|
getLine() | (number line) |
.mdファイルからの行を文字列として返します。lineは1からの相対位置で指定されます。 この例では、map変数が
|
getLineDisp() | (number line, [number col]) |
指定された行の先頭のインデックス番号(ゼロからの相対位置)を返します。 オプションのcol列番号(1からの相対位置)を指定した場合、返されるインデックスはその列を指します。 |
CSSルール・リスナーで使用可能なコンテキスト・オブジェクト・プロパティ
CSSルールの登録済リスナーは、CSS処理に固有の情報を含むRule
コンテキスト・オブジェクトを受け取ります。
JAF監査エンジンは、ターゲットCSSファイルの特定のノード・タイプを処理するためにルールで登録しているCSSルール・リスナーにRule
コンテキスト・オブジェクトを渡します。CSSファイル用に生成されたコンテキスト・オブジェクトには、CSS処理に固有の次のサポート・データおよび機能が含まれます。「登録済リスナーで使用可能なコンテキスト・オブジェクト・プロパティ」で説明しているように、基本プロパティに加えて、これはすべてのルール・タイプのコンテキスト・オブジェクトで使用できます。
ノート:
Rule
コンテキスト・オブジェクトをキャッシュしないでください。context.utils.msgLib
など、格納されている値はキャッシュしても構いません。
プロパティ | タイプ | 説明 |
---|---|---|
context.ast | ノード |
スタイルシート用の完全なAST。 |
context.offset | オブジェクト |
格納ファイルに関連するスタイルシートの元が含まれます。スタイルシート・テキストがスタンドアロンの このプロパティは、CSSノードでlocプロパティと組み合せて使用して、特定のプロパティまたは値の実際の位置を示すことができます。(locの位置情報は常に、スタイルシートの開始位置に対して相対的です。) |
context.utils.CssUtils | オブジェクト | ルールが呼び出されたときにレジスタ・コンテキストで使用できるその他の関数およびルール・コンテキストが格納されているユーティリティ・ライブラリ。「CssUtils: CSSユーティリティ関数」を参照してください。 |