PROPERTY 句はこのデータ項目がオブジェクトの属性であることおよび状況に応じてGETメソッドとSETメソッドのどちらか一方または両方を生成すべきことを指定する。
注: スーパークラス内に属性名を定義できる。その方法は2通りある。ひとつは、PROPERTY指定を記述したひとつまたは一組のメソッドを定義することである。もうひとつは、PROPERTY句を指定したデータ記述項を記述することである。
その記述項の左辺の字類が指標、オブジェクト、ポインターのいずれかである場合、そのメソッドは暗黙的に下記のように定義される。
METHOD-ID. GET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION RETURNING LS-data-name. par-name. SET LS-data-name TO data-name EXIT METHOD. END METHOD.
その記述項の左辺の項類が英数字編集、国別編集、数字編集のいずれかである場合、そのメソッドは暗黙的に下記のように定義される。
METHOD-ID. GET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION RETURNING LS-data-name. par-name. MOVE data-name TO LS-data-name (1:). EXIT METHOD. END METHOD.
注: その記述項の左辺が編集されている場合、受取り側の項目全体を部分参照したときに、そのデータに編集規則が再び適用されることはない。
そうでない場合、このメソッドの暗黙的な定義は下記のようになる。
METHOD-ID. GET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION RETURNING LS-data-name. par-name. MOVE data-name TO LS-data-name EXIT METHOD. END METHOD.
ここで、LSデータ名のデータ記述には、その記述項の左辺およびその下位のデータ項目が含まれる。ただし、下記のものは例外である。
その記述項の左辺の字類が指標、オブジェクト、ポインターのいずれかである場合、そのメソッドは暗黙的に下記のように定義される。
METHOD-ID. SET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION USING LS-data-name. par-name. SET data-name TO LS-data-name EXIT METHOD. END METHOD.
その記述項の左辺の項類が英数字編集、国別編集、数字編集のいずれかである場合、そのメソッドは暗黙的に下記のように定義される。
METHOD-ID. SET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION USING LS-data-name. par-name. MOVE LS-data-name TO data-name (1:). EXIT METHOD. END METHOD.
注: その記述項の左辺が編集されている場合、受取り側の項目全体を部分参照したときに、そのデータに編集規則が再び適用されることはない。
そうでない場合、このメソッドの暗黙的な定義は下記のようになる。
METHOD-ID. SET PROPERTY data-name. DATA DIVISION. LINKAGE SECTION. 01 LS-data-name data-description. PROCEDURE DIVISION USING LS-data-name. par-name. MOVE LS-data-name TO data-name EXIT METHOD. END METHOD.
ここで、LSデータ名のデータ記述には、その記述項の左辺およびその下位のデータ項目が含まれる。ただし、下記のものは例外である。