システム・フラグおよびシステム修飾子 (qspec)
クラス・ライブラリの多くのメソッドは qspec 引数を受け入れます。これにより、外部ソースの InterSystems IRIS® データ・プラットフォームへのインポート、コードのコンパイル方法、コードのエクスポートを制御できます。qspec 引数は、このページに記載されているサポートされているシステム・フラグとシステム修飾子を連結したものです。
この両機能は連携して機能します。つまり、qspec はフラグと修飾子の両方を含めることができますが、修飾子の前 (左) にフラグを配置する必要があります。修飾子間のスペースは許可されません。
フラグは UNIX® のコマンド行パラメータでモデル化されており、1 文字または 2 文字のシーケンスで構成されています。修飾子はさらに数が多く、名前も長くなり、それぞれがスラッシュ文字 (/) で始まります。フラグと修飾子は否定することができます。
多くのフラグには同等または関連する修飾子があり、この 2 つを同じ qspec で使用できます。"qspec の処理順序" も参照してください。
例
以下の例では、ファイルをインポートする %SYSTEM.OBJOpens in a new tab の Load() メソッドで qspec 引数を使用しています。この例で、qspec は c および k フラグを連結したものです。
Do $system.OBJ.Load(filename,"ck")
または、以下も同じ意味です。
Do $system.OBJ.Load(filename,"/compile/keepsource")
以下も同等です。
Do $system.OBJ.Load(filename,"c/keepsource")
これらのフラグと修飾子については、このページで後述します。
否定
フラグを否定するには、その前にハイフン (-) を付けます。
修飾子を否定するには、/ ではなく /no を使用します (例 : /nodisplaylog)。または、修飾子の末尾に =0 を付けます (例 : /displaylog=0)。
フラグ
フラグ | 意味 | 既定値 |
---|---|---|
b | サブクラスおよび SQL 使用で現在のクラスを参照しているクラスを含めます。 | |
c | ロード後、クラス定義をコンパイルします。 | |
d | 表示。既定で設定されるフラグです。 | X |
e | エクステントによって使用されるグローバル・ストレージを記述するエクステント定義を削除し、データを削除します。 | |
h | 非表示クラスを表示します。 | |
i | ロード時、XML エクスポート形式をスキーマに対して検証します。既定で設定されるフラグです。 | X |
k | ソースを保持します。 このフラグを設定すると、生成されたルーチンのソース・コードが保持されます。 | |
l | 非推奨 — コンパイル時のクラスのロックは、このフラグの設定に関係なく常に自動的に実行されます。 | X |
p | 名前の先頭の文字が “%” であるクラスを追加します。 | |
r | 処理を再帰的に実行します。先行依存するすべてのクラスをコンパイルします。 | |
s | システム。システム・メッセージまたはアプリケーション・メッセージを処理します。 | |
u | アップデートのみ実行します。 最新状態であればクラスのコンパイルをスキップします。 | |
y | 現在のクラスと関連するクラス (SQL 使用下での現在のクラスを参照しているクラスまたは現在のクラスから参照されるクラス) を含めます。 | |
o1、o2、o3、o4 | 最適化指定子。非推奨となっており、クラス・コンパイラでは無視されます。 |
コンパイラ修飾子
修飾子 | 意味 | 既定値 |
---|---|---|
/autoinclude | このクラスのコンパイルに必要な、最新でないすべてのクラスを自動的に含めます。 | 1 |
/checkschema | インポートした XML ファイルをスキーマ定義に対して検証します。 | 1 |
/checkstoragedefined | クラスに、すべてのプロパティに対して定義されたストレージがあることを確認します。1 に設定されている場合、この修飾子は、コンパイル時にストレージ定義が変更されたらそれを知らせます。 | 0 |
/checksysutd | システム・クラスが最新であるかどうかを確認します。 | 0 |
/checkuptodate | 最新のクラスまたは最新の拡張クラスのコンパイルをスキップします。 | expandedonly |
/compile | ロードされたクラスをコンパイルします。 | 0 |
/compileembedded | 埋め込み SQL は、これを含む ObjectScript コードのコンパイル時にコンパイルされます。既定では、埋め込み SQL は、SQL コードの初回実行時にコンパイルされます。 | 0 |
/cspcompileclass | CSP または CSR のロードによって作成されたクラスをコンパイルします。 | 1 |
/cspdeployclass | CSP ページがロードされたら生成したクラスを配置します。 | 0 |
/csphidden | CSP および CSR のコンパイルで生成されたクラスを非表示としてマーク付けします。 | 1 |
/defaultowner | クラスのロード時、Owner キーワードが定義されていない場合、この文字列で指定されているユーザ名をクラス所有者としてクラス定義に挿入します。この文字列の値が $USERNAME である場合、現在のユーザ名をクラス所有者としてクラス定義に挿入します。 | — |
/defines | 定義するマクロのコンマ区切りリスト。必要に応じてそれらの値も指定します。 | — |
/deleteextent | エクステントによって使用されるグローバル・ストレージを記述するエクステント定義を削除し、データを削除します。 | 0 |
/diffexport | diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 | 0 |
/display | /displaylog および /displayerror のエイリアス修飾子。 | — |
/displayerror | エラー情報を表示します。 | 1 |
/displaylog | ログ情報を表示します。 | 1 |
/expand | /predecessorclasses、/subclasses、および /relatedclasses のエイリアス修飾子。 | — |
/exportgenerated | クラスをエクスポートするとき、生成したクラスもエクスポートし、そのクラスの生成元となったクラスも追加します。 | 0 |
/exportselectivity | このクラスのストレージ定義内に格納されている SELECTIVITY 値をエクスポートします。 | 1 |
/filterin | /application、/system、および /percent のエイリアス修飾子。 | — |
/generated | 生成される項目 (ルーチン、クラスなど) がパッケージ内の展開中のパターンまたはクラスのリストに含まれるかどうかを決定します。 | 1 |
/generatemap | マップ・ファイルを生成します。 | 1 |
/importselectivity | 0 : XML ファイルから SELECTIVITY 値をインポートしません。1 : XML ファイルをインポートするときに、ストレージ定義に格納されている SELECTIVITY 値をインポートします。2 : 既存のクラスの SELECTIVITY 値を維持しますが、既存のクラスに、XML ファイルの内容に対して指定された SELECTIVITY がない場合は、XML ファイルの SELECTIVITY 値を使用します。 | 2 |
/includesubpackages | サブ・パッケージを含めます。 | 1 |
/journal | クラス・コンパイル実行中にジャーナリングを有効にします。特に、コンパイルを実行しているプロセスでジャーナリングが無効になっている場合、/journal は既定値 0 になります。システム全体の既定値 1 にはなりません。 | 1 |
/keepsource | 生成されたルーチンのソース・コードを保持します。 | 0 |
/lock | 非推奨 — この修飾子の設定に関係なく、クラスはコンパイル時には常に自動的にロックされます。 | 1 |
/mapped | 別のデータベースからマップされたクラスを含めます。別のデータベースからクラスをコンパイルすることを明確に指定すると (CompileList() メソッド)、/mapped の設定にかかわらず、そのクラスがコンパイルされます。/mapped は、コードがクラスを検索する場合 (例えば、CompileAll() メソッドを使用する場合) にのみ適用されます。Upgrade() メソッドを使用して 1 つのネームスペースのクラス定義データベースをアップグレードする場合、または UpgradeAll() メソッドを使用してすべてのネームスペースのクラス定義データベースをアップグレードする場合、/mapped = 1 に設定する必要があります。そうしないと、マップされたオブジェクトはアップグレードに含められません。 | 0 |
/mergeglobal | XML ファイルからグローバルをインポートする場合は、そのグローバルを既存のデータとマージします。 | 0 |
/multicompile | 複数のユーザのジョブを有効にして、クラスをコンパイルします。 | 1 |
/percent | パーセント・クラスを含めます。 | 0 |
/predecessorclasses | 先行依存するクラスを再帰的に含めます。 | 0 |
/relatedclasses | 関連するクラスを再帰的に含めます。 | 0 |
/retainstorage | クラスのコンパイル時、コンパイラによってストレージ定義が生成されます。既定では、ストレージ定義が更新された場合、クラス定義は更新されたストレージ定義で更新されます。新しいバージョンのクラスが外部ソースからロードされた場合、その更新されたストレージ定義は新しいバージョンのクラス定義で定義されている内容に上書きされます。新しいバージョンのクラスにストレージ定義が含まれていない場合、既存のストレージ定義は削除されます。/retainstorage を設定すると、既存のストレージ定義が一時的に保存され、新しいバージョンのクラスのロード後にリストアされます。新しいバージョンのクラスでもストレージ定義が定義されている場合、既存のストレージ定義は上書きされ、保持されません。新しいバージョンのクラスでストレージ定義が定義されていない場合、前のバージョンのストレージ定義がリストアされます。 | 0 |
/subclasses | サブ・クラスを再帰的に含めます。 | 0 |
/system | システム・メッセージまたはアプリケーション・メッセージを処理します。 | 0 |
エクスポート修飾子
フラグ | 意味 | 既定値 |
---|---|---|
/checksysutd | システム・クラスが最新であるかどうかを確認します。 | 0 |
/checkuptodate | 投影の際にクラスが最新であるかどうかを確認します。 | expandedonly |
/createdirs | 存在しない場合はディレクトリを作成します。 | 0 |
/cspdeployclass | CSP ページがロードされたら生成したクラスを配置します。 | 0 |
/diffexport | diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 | 0 |
/display | /displaylog および /displayerror のエイリアス修飾子。 | — |
/displayerror | エラー情報を表示します。 | 1 |
/displaylog | ログ情報を表示します。 | 1 |
/documatichost | JavaDoc の生成に使用されるホスト。 | — |
/documaticnamespace | JavaDoc の生成に使用されるネームスペース。 | — |
/documaticport | JavaDoc の生成に使用されるポート。 | — |
/exportgenerated | クラスをエクスポートするとき、生成したクラスもエクスポートし、そのクラスの生成元となったクラスも追加します。 | 0 |
/exportselectivity | このクラスのストレージ定義内に格納されている SELECTIVITY 値をエクスポートします。 | 1 |
/exportversion | エクスポート先のシステムの InterSystems プラットフォームとバージョンを指定します。プラットフォームは iris または cache として指定します。バージョンは、2 つの部分または 3 つの部分で構成されるリリース・バージョン (2020.1 または 2020.1.1 など) で指定します。例えば、/exportversion=iris2020.1.1 または /exportversion=cache2018.1.8 です。エクスポート・システムとインポート・システムが同じ InterSystems バージョンでない場合、IRIS は /exportversion 値を使用します。以前の InterSystems バージョンでは実装されていなかったクラス・キーワードを削除することで、バージョン間でのエクスポート形式の変更を処理します。/exportversion を指定しても、エクスポート・システムとインポート・システム間のコードの互換性は保証されません。 | InterSystems IRIS の現在のバージョン |
/generatemap | マップ・ファイルを生成します。 | 1 |
/generationtype | 生成モード。 | — |
/genserialuid | serialVersionUID を生成します。 | 1 |
/importselectivity | 0 : XML ファイルから SELECTIVITY 値をインポートしません。1 : XML ファイルをインポートするときに、ストレージ定義に格納されている SELECTIVITY 値をインポートします。2 : 既存のあらゆる SELECTIVITY 値を維持しますが、既存の値がないプロパティには XML ファイルの SELECTIVITY 値を使用します。 | 2 |
/includesubpackages | サブ・パッケージを含めます。 | 1 |
/javadoc | javadoc を作成しません。 | 1 |
/make | 最新のコンパイルのタイムスタンプが、最新の生成時のタイムスタンプよりも新しい場合は、依存またはクラスのみを生成します。 | 0 |
/mapped | 別のデータベースからマップされたクラスを含めます。 | 0 |
/mergeglobal | XML ファイルからグローバルをインポートする場合は、そのグローバルを既存のデータとマージします。 | 0 |
/newcollections | ネイティブの Java コレクションを使用します。 | 1 |
/percent | パーセント・クラスを含めます。 | 0 |
/pojo | POJO 生成モードを指定します。 | 0 |
/predecessorclasses | 先行依存するクラスを再帰的に含めます。 | 0 |
/primitivedatatypes | %Integer、%Boolean、%BigInt、%Decimal に Java 基本関数を使用します。 | 0 |
/projectabstractstream | 引数が抽象ストリームであるか、返りタイプが抽象ストリームであるメソッドを含むプロジェクト・クラスを指定します。 | 0 |
/projectbyrefmethodstopojo | pojo 実装に ByRef メソッドを投影します。 | 0 |
/recursive | クラスを再帰的にエクスポートします。 | 1 |
/relatedclasses | 関連するクラスを再帰的に含めます。 | 0 |
/skipstorage | クラスのストレージ情報をエクスポートしません。 | 0 |
/subclasses | サブ・クラスを再帰的に含めます。 | 0 |
/system | システム・メッセージまたはアプリケーション・メッセージを処理します。 | 0 |
/unconditionallyproject | コードのコンパイルまたは正常な動作を妨げる問題を無視して投影を実行します。 | 0 |
/usedeepestbase | メソッドまたはプロパティ定義に対してメソッドまたはプロパティが定義されている場合に、最も下部にあるベースを使用します。 P が A、B、および C に定義されており、A が B を拡張し、B が C を拡張する場合、より深い位置にあるベースは C になります。 | 0 |
ShowClassAndObject 修飾子
フラグ | 意味 | 既定値 |
---|---|---|
/detail | 詳細情報を表示します。 | 0 |
/diffexport | diff/merge ツールで実行できるよう、ファイルのエクスポートに時間やプラットフォーム情報を含めません。 | 0 |
/hidden | 非表示クラスを表示します。 | 0 |
/system | システム・メッセージまたはアプリケーション・メッセージを処理します。 | 0 |
UnitTest 修飾子
フラグ | 意味 | 既定値 |
---|---|---|
/autoload | ディレクトリを自動ロードすることを指定します。そのサブディレクトリも自動ロードされます。詳細は、"%UnitTest.ManagerOpens in a new tab" の "RunTest()Opens in a new tab" メソッドを参照してください。 | — |
/cleanup | ユニット・テスト完了時にグローバルを削除します。既定では、グローバルは削除されません。設定されている場合でも、分析グローバルは削除されません。 | 0 |
/debug | アサートに失敗した場合、アサートをブレーク (BREAK) 状態にします。 | 0 |
/delete | ロードしたクラスを削除するかどうかを判断します。 | 1 |
/display | /displaylog および /displayerror のエイリアス修飾子。 | — |
/displayerror | エラー情報を表示します。 | 1 |
/displaylog | ログ情報を表示します。 | 1 |
/findleakedvariables | 有効にすると、テスト実施前にプロセスで現在設定されているパブリック変数が記録され、テスト完了後にそれらの設定と比較されます。SQLCODE などの事前設定された一連の既知のコンテキストおよび出力変数以外に、新たに定義された変数がそれらの値とともにテストの失敗として報告されます。 | 0 |
/load | クラスをロードするかどうかを判断します。ロードしない場合は、ディレクトリからクラス名のみが取得されます。 | 1 |
/loadudl | IDE によって作成された UDL ファイルをロードします。設定すると、.cls、.mac、.int、および .inc ファイルがロードされます。/loadudl と /loadxml を使用することで、ロードされるファイルの種類を制限できます。既定では、すべてのファイルがロードされます。UDL ファイルは常に、Unicode 文字が正しくロードされるように UTF8 としてロードされます。 | 1 |
/loadxml | XML 形式のソース・ファイルをロードします。設定すると、.xml ファイルがロードされます。/loadudl と /loadxml を使用することで、ロードされるファイルの種類を制限できます。既定では、すべてのファイルがロードされます。 | 1 |
/recursive | サブディレクトリでのテストを再帰的に実行するかどうかを判断します。 | 1 |
/run | テストを実行するかどうかを判断します。 | 1 |
フラグに対応する修飾子
以下のテーブルに、既存のフラグとそれに対応する修飾子を示します。フラグによっては複数の修飾子にマップされるものがあり、その意味も使用目的に応じて異なります。
フラグ | グループ | 修飾子 | 既定値 |
---|---|---|---|
b | コンパイラ | /subclasses | 0 |
c | コンパイラ | /compile | 0 |
d | コンパイラ | /displayerror | 1 |
d | コンパイラ | /displaylog | 1 |
d | UnitTest | /displayerror | 1 |
d | UnitTest | /displaylog | 1 |
e | コンパイラ | /deleteextent | 0 |
i | コンパイラ | /checkschema | 1 |
k | コンパイラ | /keepsource | 0 |
l | コンパイラ | /lock | 1 |
p | コンパイラ | /percent | 0 |
r | コンパイラ | /predecessorclasses | 0 |
r | コンパイラ | /includesubpackages | 1 |
s | コンパイラ | /system | 0 |
y | コンパイラ | /relatedclasses | 0 |
b | Export | /subclasses | 0 |
d | Export | /displayerror | 1 |
d | Export | /displaylog | 1 |
g | Export | /exportselectivity | 0 |
p | Export | /percent | 0 |
r | Export | /includesubpackages | 1 |
r | Export | /recursive | 1 |
r | Export | /predecessorclasses | 0 |
s | Export | /system | 0 |
y | Export | /relatedclasses | 0 |
h | ShowClassAndObject | /hidden | 0 |
s | ShowClassAndObject | /system | 0 |
フラグおよび修飾子のヘルプ
フラグで使用可能な設定を確認するには、以下のコマンドを使用します。
Do $system.OBJ.ShowFlags()
これは、以下のような出力を生成します。
See $system.OBJ.ShowQualifiers() for comprehensive list of qualifiers as flags have been superseded
by qualifiers
b - Include sub classes.
c - Compile. Compile the class definition(s) after loading.
d - Display. This flag is set by default.
...
Default flags for this namespace
You may change the default flags with the SetFlags(flags,system) classmethod.
同様に、修飾子で使用可能な設定を確認するには、以下のコマンドを使用します。
Do $system.OBJ.ShowQualifiers()
これは、以下のような出力を生成します。
Name: /checkschema
Description: Validate imported XML files against the schema definition.
Type: logical
Flag: i
Default Value: 1
Name: /checksysutd
Description: Check system classes for up-to-dateness
Type: logical
Default Value: 0
Name: /checkuptodate
Description: Skip classes or expanded classes that are up-to-date.
Type: enum
Flag: ll
Enum List: none,all,expandedonly,0,1
Default Value: expandedonly
Present Value: all
Negated Value: none
...
これらのメソッドは、それぞれ現在のフラグと修飾子についての報告も行います。
既定値の制御
ここには、フラグと修飾子の既定値 (該当する場合) をリストします。これらの既定値は、%SYSTEM.OBJOpens in a new tab の SetFlags() メソッドを使用してオーバーライドできます。同様に、SetQualifiers() メソッドを使用して、現在のネームスペース (既定) またはシステム全体に対して修飾子を設定できます。
qspec の処理順序
qspec は左から右に処理されます。特定のフラグまたは修飾子を設定すると、現在の設定が、使用している環境の既定値であるか qspec 内のそれ以前のオカレンスであるかに関係なく、オーバーライドされます。
フラグは修飾子の左にリストする必要があるため、修飾子設定は常にフラグ設定より優先されることに注意してください。