9.3.4 ファクトリオブジェクトとインスタンスオブジェクト
クラス定義のファクトリ定義(FACTORY)とインスタンス定義(OBJECT)のデータの操作について説明します。
(1) オブジェクト
ファクトリオブジェクトは,ファクトリ定義のデータの集まりと,そのデータに対する操作の集まりです。インスタンスオブジェクトは,クラスのインスタンス定義のデータと,そのデータに対する操作の集まりです。クラス定義からは,一つのファクトリオブジェクトと,複数のインスタンスオブジェクトが生成されます。
ファクトリオブジェクトとインスタンスオブジェクトを合わせて,オブジェクトと呼びます。オブジェクトは,オブジェクト参照データ項目または既定義オブジェクトの値によって,一意となります。ファクトリオブジェクトまたはインスタンスオブジェクトに定義されるデータを,オブジェクトデータとします。
ファクトリオブジェクトとインスタンスオブジェクトの例を次に示します。
(2) オブジェクトデータの表示
[データの操作]メニューから[データ値の表示]を選ぶか,DISPLAY OBJECT/DIPLAY FACTORYコマンドで,次のオブジェクトデータが表示できます。
-
データ名を指定
ほかのソース要素のデータと同様に,中断点から参照できるデータを表示できます。
詳細については,「9.2.5 データの操作」の「(1) データの表示」を参照してください。
-
オブジェクト参照データ項目・既定義オブジェクトを指定
[データの操作]メニューから[データ値の表示]を選ぶか,DIPLAY OBJECTコマンドで,オブジェクト参照データ項目または既定義オブジェクトSELF,EXCEPTION-OBJECTを指定して,参照するオブジェクトのデータの値を表示できます。
詳細については,「12.4.10 DISPLAY OBJECT/DISPLAY FACTORY(オブジェクトのデータ値の表示)」および「10.13.1 データ値の表示」を参照してください。
-
クラス名を指定
DISPLAY FACTORYコマンドで,クラス名を指定して,ファクトリオブジェクトのデータの値を表示できます。
詳細については,「12.4.10 DISPLAY OBJECT/DISPLAY FACTORY(オブジェクトのデータ値の表示)」を参照してください。
- 注意事項
-
-
オブジェクト生成時のクラスのスーパクラスのデータを表示できます。表示をするときは,スーパクラスも,-TDInfコンパイラオプションを指定してコンパイルします。
-
集団項目に属し,OCCURS句に DEPENDINGの指定のあるデータ項目よりあとにあるデータ項目は,オブジェクトが生成されても,そのメソッドが呼ばれるまで値の表示ができません。
-
中断点から参照できるデータ項目の例を次に示します。
(3) オブジェクトデータの監視
ファクトリオブジェクト・インスタンスオブジェクトのデータは,オブジェクトごとのデータの変化を監視します。また,一つのオブジェクトのデータだけの監視を指定できます。一つのオブジェクトのデータの監視を指定したとき,監視の対象とするオブジェクトデータは次のとおりです。
-
指定されたクラスのオブジェクトデータが中断位置で参照できるときは,参照できるオブジェクトデータ
-
プログラムの起動前または指定されたオブジェクトデータが中断位置で参照できないときは,データ監視の設定後に,指定されたオブジェクトデータが参照できるメソッドに制御が渡ったときに参照できたオブジェクトデータ(GUIモードでスレッドおよび呼び出し位置を切り替えた場合は,その位置で参照できるオブジェクトデータ)。
データ監視条件の詳細については,「10.9 データ監視条件の設定と解除」を参照してください。
(4) ファイルシミュレーション
一つのファイル定義で複数のファイル結合子がある場合は,ファイル結合子単位にシミュレーション手続きが実行されます。
- (例)
-
社員インスタンスオブジェクトA,B…は,それぞれファイル結合子を持つため,一つのファイルシミュレーション定義が個々に有効となります。
社員インスタンスオブジェクトAの計算のREADに対して(1)が実行され,CLOSE前に社員インスタンスオブジェクトBの計算のREADが実行されても個々にファイルシミュレーション定義が有効なので(1)が実行されます。
カウンタ変数または繰り返し指定の反復回数はファイル結合子単位に実行されるシミュレーション単位にカウントされます。