ISO2002 

PROPERTY(属性)句

機能

PROPERTY(属性)句はこのデータ項目がオブジェクトの属性であることおよび状況に応じてGETメソッドとSETメソッドのどちらか一方または両方を生成すべきことを指定する。

一般形式

構文規則

  1. PROPERTY句を指定できる場所は、ファクトリ定義またはオブジェクト定義の作業場所節だけである。

  2. OCCURS句の下位に属するデータ項目にはPROPERTY句を指定してはならない。

  3. PROPERTY句を指定できる対象は、参照の一意性を保つために名前を修飾する必要のない、基本データ項目だけである。

  4. 記述項の左辺のデータ名はスーパークラスに定義されている属性名と同じであってはならない。

注: スーパークラス内に属性名を定義できる。その方法は2通りある。ひとつは、PROPERTY指定を記述したひとつまたは一組のメソッドを定義することである。もうひとつは、PROPERTY句を指定したデータ記述項を記述することである。


一般規則

  1. GET指定を書かないと、PROPERTY句は該当のデータ項目を含むファクトリまたはオブジェクトに関するメソッドを定義する働きをする。

    その記述項の左辺の字類が指標、オブジェクト、ポインタのいずれかである場合、そのメソッドは暗黙的に下記のように定義される。

     METHOD-ID. GET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION RETURNING LSデータ名. パラメータ名. SET LSデータ名 TO データ名 EXIT METHOD. END METHOD.

    その記述項の左辺の項類が英数字編集、国別編集、数字編集のいずれかである場合、そのメソッドは暗黙的に下記のように定義される。

     METHOD-ID. GET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION RETURNING LSデータ名. パラメータ名. MOVE データ名 TO LSデータ名 (1:). EXIT METHOD. END METHOD. 

    注: その記述項の左辺が編集されている場合、受取り側の項目全体を部分参照したときに、そのデータに編集規則が再び適用されることはない。


    そうでない場合、このメソッドの暗黙的な定義は下記のようになる。

     METHOD-ID. GET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION RETURNING LSデータ名. パラメータ名. MOVE データ名 TO LSデータ名 EXIT METHOD. END METHOD. 

    ここで、LSデータ名のデータ記述には、その記述項の左辺およびその下位のデータ項目が含まれる。ただし、下記のものは例外である。

    • INDEXED BY指定
    • PROPERTY句
    • VALUE句
    • その記述項の左辺のデータ記述内のREDEFINES句

  2. SET指定を書かないと、PROPERTY句は該当のデータ項目を含むファクトリまたはオブジェクトに関するメソッドを定義する働きをする。

    その記述項の左辺の字類が指標、オブジェクト、ポインタのいずれかである場合、そのメソッドは暗黙的に下記のように定義される。

     METHOD-ID. SET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION USING LS-data-name. パラメータ名. SET データ名 TO LSデータ名 EXIT METHOD. END METHOD. 

    その記述項の左辺の項類が英数字編集、国別編集、数字編集のいずれかである場合、そのメソッドは暗黙的に下記のように定義される。

     METHOD-ID. SET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION USING LSデータ名. パラメータ名. MOVE LSデータ名 TO データ名 (1:). EXIT METHOD. END METHOD. 

    注: その記述項の左辺が編集されている場合、受取り側の項目全体を部分参照したときに、そのデータに編集規則が再び適用されることはない。


    そうでない場合、このメソッドの暗黙的な定義は下記のようになる。

     METHOD-ID. SET PROPERTY データ名. DATA DIVISION. LINKAGE SECTION. 01 LSデータ名 データ記述. PROCEDURE DIVISION USING LSデータ名. パラメータ名. MOVE LSデータ名 TO データ名 EXIT METHOD. END METHOD. 

    ここで、LSデータ名のデータ記述には、その記述項の左辺およびその下位のデータ項目が含まれる。ただし、下記のものは例外である。

    • INDEXED BY指定
    • PROPERTY句
    • VALUE句
    • その記述項の左辺のデータ記述内のREDEFINES句