# Business Logic — KKW01021SF02DBean.loadModelData() [143 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW01021SF.KKW01021SF02DBean` |
| Layer | View Bean (Web Layer - part of the X33 view framework) |
| Module | `KKW01021SF` (Package: `eo.web.webview.KKW01021SF`) |

## 1. Role

### KKW01021SF02DBean.loadModelData()

This method is a **property accessor router** for the contractor (customer) address and identity fields used by the KKW01021SF screen - a web view form that displays and edits customer contract information including the contractor's name, full address, and a system identifier. It implements the **routing/dispatch pattern**, branching on a `key` string that identifies a specific business field and a `subkey` that identifies which property facet (value, enabled-state, or display-state) of that field should be returned. The key is a Japanese-display field label (e.g. "CLIENT_NAME" for Customer Name, "CONTRACTOR_PHONE" for Contractor Phone Number) and the subkey maps to the three standard X33 bean facets: "value" returns the data, "enable" returns the editability flag, and "state" returns the display state code. This is a **shared utility** used by the parent KKW01021SFBean to dynamically load field metadata from nested typed-bean children in list-type UI components, enabling the screen framework to render per-field enable/disable and value state without hard-coding getters. It serves the broader **telecom customer contract management** domain - specifically the contractor/address information editing screen.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START["loadModelData(key, subkey)"]
    START --> NULL_CHECK

    NULL_CHECK{"key or subkey is null?"}
    NULL_CHECK -- "Yes" --> NULL_RET["Return null"]
    NULL_CHECK -- "No" --> SEPARATOR["sep = key.indexOf('/')"]
    SEPARATOR --> SYSID_CHECK{"key equals SYSID?"}

    SYSID_CHECK -- "Yes" --> SYSID_SUB
    SYSID_CHECK -- "No" --> CUST_CHECK{"key equals CLIENT_NAME?"}

    SYSID_SUB{"subkey equals value/enable/state?"}
    SYSID_SUB -- "value" --> GET_SYSID_VAL["getSysid_value()"]
    SYSID_SUB -- "enable" --> GET_SYSID_EN["getSysid_enabled()"]
    SYSID_SUB -- "state" --> GET_SYSID_ST["getSysid_state()"]
    SYSID_SUB -- "No match" --> FALLTHROUGH

    CUST_CHECK -- "Yes" --> CUST_SUB
    CUST_CHECK -- "No" --> KST_CHECK{"key equals CONTRACTOR_PREF?"}

    CUST_SUB{"subkey equals value/enable/state?"}
    CUST_SUB -- "value" --> GET_CUST_VAL["getCust_nm_value()"]
    CUST_SUB -- "enable" --> GET_CUST_EN["getCust_nm_enabled()"]
    CUST_SUB -- "state" --> GET_CUST_ST["getCust_nm_state()"]
    CUST_SUB -- "No match" --> FALLTHROUGH

    KST_CHECK -- "Yes" --> KST_SUB
    KST_CHECK -- "No" --> KCITY_CHECK{"key equals CONTRACTOR_CITY?"}

    KST_SUB{"subkey equals value/enable/state?"}
    KST_SUB -- "value" --> GET_KST_VAL["getKeisha_state_nm_value()"]
    KST_SUB -- "enable" --> GET_KST_EN["getKeisha_state_nm_enabled()"]
    KST_SUB -- "state" --> GET_KST_ST["getKeisha_state_nm_state()"]
    KST_SUB -- "No match" --> FALLTHROUGH

    KCITY_CHECK -- "Yes" --> KCITY_SUB
    KCITY_CHECK -- "No" --> KOZ_CHECK{"key equals CONTRACTOR_DIST?"}

    KCITY_SUB{"subkey equals value/enable/state?"}
    KCITY_SUB -- "value" --> GET_KCITY_VAL["getKeisha_city_nm_value()"]
    KCITY_SUB -- "enable" --> GET_KCITY_EN["getKeisha_city_nm_enabled()"]
    KCITY_SUB -- "state" --> GET_KCITY_ST["getKeisha_city_nm_state()"]
    KCITY_SUB -- "No match" --> FALLTHROUGH

    KOZ_CHECK -- "Yes" --> KOZ_SUB
    KOZ_CHECK -- "No" --> KAZ_CHECK{"key equals CONTRACTOR_CHOME?"}

    KOZ_SUB{"subkey equals value/enable/state?"}
    KOZ_SUB -- "value" --> GET_KOZ_VAL["getKeisha_oaztsu_nm_value()"]
    KOZ_SUB -- "enable" --> GET_KOZ_EN["getKeisha_oaztsu_nm_enabled()"]
    KOZ_SUB -- "state" --> GET_KOZ_ST["getKeisha_oaztsu_nm_state()"]
    KOZ_SUB -- "No match" --> FALLTHROUGH

    KAZ_CHECK -- "Yes" --> KAZ_SUB
    KAZ_CHECK -- "No" --> KBN_CHECK{"key equals CONTRACTOR_LOT?"}

    KAZ_SUB{"subkey equals value/enable/state?"}
    KAZ_SUB -- "value" --> GET_KAZ_VAL["getKeisha_azcho_nm_value()"]
    KAZ_SUB -- "enable" --> GET_KAZ_EN["getKeisha_azcho_nm_enabled()"]
    KAZ_SUB -- "state" --> GET_KAZ_ST["getKeisha_azcho_nm_state()"]
    KAZ_SUB -- "No match" --> FALLTHROUGH

    KBN_CHECK -- "Yes" --> KBN_SUB
    KBN_CHECK -- "No" --> KADT_CHECK{"key equals CONTRACTOR_BLDG?"}

    KBN_SUB{"subkey equals value/enable/state?"}
    KBN_SUB -- "value" --> GET_KBN_VAL["getKeisha_bnchigo_value()"]
    KBN_SUB -- "enable" --> GET_KBN_EN["getKeisha_bnchigo_enabled()"]
    KBN_SUB -- "state" --> GET_KBN_ST["getKeisha_bnchigo_state()"]
    KBN_SUB -- "No match" --> FALLTHROUGH

    KADT_CHECK -- "Yes" --> KADT_SUB
    KADT_CHECK -- "No" --> KADR_CHECK{"key equals CONTRACTOR_ROOM?"}

    KADT_SUB{"subkey equals value/enable/state?"}
    KADT_SUB -- "value" --> GET_KADT_VAL["getKeisha_adrttm_value()"]
    KADT_SUB -- "enable" --> GET_KADT_EN["getKeisha_adrttm_enabled()"]
    KADT_SUB -- "state" --> GET_KADT_ST["getKeisha_adrttm_state()"]
    KADT_SUB -- "No match" --> FALLTHROUGH

    KADR_CHECK -- "Yes" --> KADR_SUB
    KADR_CHECK -- "No" --> KTEL_CHECK{"key equals CONTRACTOR_PHONE?"}

    KADR_SUB{"subkey equals value/enable/state?"}
    KADR_SUB -- "value" --> GET_KADR_VAL["getKeisha_adrrm_value()"]
    KADR_SUB -- "enable" --> GET_KADR_EN["getKeisha_adrrm_enabled()"]
    KADR_SUB -- "state" --> GET_KADR_ST["getKeisha_adrrm_state()"]
    KADR_SUB -- "No match" --> FALLTHROUGH

    KTEL_CHECK -- "Yes" --> KTEL_SUB
    KTEL_CHECK -- "No" --> FALLTHROUGH

    KTEL_SUB{"subkey equals value/enable/state?"}
    KTEL_SUB -- "value" --> GET_KTEL_VAL["getKeisha_telno_value()"]
    KTEL_SUB -- "enable" --> GET_KTEL_EN["getKeisha_telno_enabled()"]
    KTEL_SUB -- "state" --> GET_KTEL_ST["getKeisha_telno_state()"]
    KTEL_SUB -- "No match" --> FALLTHROUGH

    FALLTHROUGH["FALLTHROUGH: No matching key"] --> END_RET["Return null"]

    GET_SYSID_VAL --> END_RET
    GET_SYSID_EN --> END_RET
    GET_SYSID_ST --> END_RET
    GET_CUST_VAL --> END_RET
    GET_CUST_EN --> END_RET
    GET_CUST_ST --> END_RET
    GET_KST_VAL --> END_RET
    GET_KST_EN --> END_RET
    GET_KST_ST --> END_RET
    GET_KCITY_VAL --> END_RET
    GET_KCITY_EN --> END_RET
    GET_KCITY_ST --> END_RET
    GET_KOZ_VAL --> END_RET
    GET_KOZ_EN --> END_RET
    GET_KOZ_ST --> END_RET
    GET_KAZ_VAL --> END_RET
    GET_KAZ_EN --> END_RET
    GET_KAZ_ST --> END_RET
    GET_KBN_VAL --> END_RET
    GET_KBN_EN --> END_RET
    GET_KBN_ST --> END_RET
    GET_KADT_VAL --> END_RET
    GET_KADT_EN --> END_RET
    GET_KADT_ST --> END_RET
    GET_KADR_VAL --> END_RET
    GET_KADR_EN --> END_RET
    GET_KADR_ST --> END_RET
    GET_KTEL_VAL --> END_RET
    GET_KTEL_EN --> END_RET
    GET_KTEL_ST --> END_RET

    END_RET --> END_NODE["Return / Next"]
```

**CRITICAL - Constant Resolution:**

No external constants are referenced in this method. All field key strings are **hardcoded literals** (Japanese display labels). The `subkey` values are compared case-insensitively against three standard facets: `"value"`, `"enable"`, and `"state"`.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The display-field label of a contractor/address field. Valid values are hardcoded Japanese labels: `"SYSID"` (System ID), `"CLIENT_NAME"` (Customer Name), `"CONTRACTOR_PREF"` (Contractor Prefecture Name), `"CONTRACTOR_CITY"` (Contractor City/Town Name), `"CONTRACTOR_DIST"` (Contractor District Alias Name), `"CONTRACTOR_CHOME"` (Contractor Chome/District Number Name), `"CONTRACTOR_LOT"` (Contractor Lot/Block Number), `"CONTRACTOR_BLDG"` (Contractor Address Supplement - Building Name), `"CONTRACTOR_ROOM"` (Contractor Address Supplement - Room Number), `"CONTRACTOR_PHONE"` (Contractor Phone Number). Determines which of the 11 contractor/address fields this call targets. |
| 2 | `subkey` | `String` | The property facet to retrieve for the specified field. Valid values: `"value"` returns the field's current data value, `"enable"` returns whether the field is editable (enabled/disabled flag), `"state"` returns the field's display state code. Case-insensitive comparison is used, so uppercase variants (e.g. "VALUE") are also accepted. |

**Instance fields read:** None directly - all data is delegated to getter methods on the bean itself (the 33 getter pairs described in Section 4). These getters internally read instance fields that hold the field values, enabled flags, and state codes for each contractor/address property.

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis graph:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW01021SF02DBean.getCust_nm_enabled` | KKW01021SF02DBean | - | Returns the enabled (editable) state of the Customer Name field |
| R | `KKW01021SF02DBean.getCust_nm_state` | KKW01021SF02DBean | - | Returns the display state code of the Customer Name field |
| R | `KKW01021SF02DBean.getCust_nm_value` | KKW01021SF02DBean | - | Returns the current Customer Name value |
| R | `KKW01021SF02DBean.getKeisha_adrrm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Room Number field |
| R | `KKW01021SF02DBean.getKeisha_adrrm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Room Number field |
| R | `KKW01021SF02DBean.getKeisha_adrrm_value` | KKW01021SF02DBean | - | Returns the Contractor Room Number value |
| R | `KKW01021SF02DBean.getKeisha_adrttm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Building Name field |
| R | `KKW01021SF02DBean.getKeisha_adrttm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Building Name field |
| R | `KKW01021SF02DBean.getKeisha_adrttm_value` | KKW01021SF02DBean | - | Returns the Contractor Building Name value |
| R | `KKW01021SF02DBean.getKeisha_azcho_nm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Chome Name field |
| R | `KKW01021SF02DBean.getKeisha_azcho_nm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Chome Name field |
| R | `KKW01021SF02DBean.getKeisha_azcho_nm_value` | KKW01021SF02DBean | - | Returns the Contractor Chome Name value |
| R | `KKW01021SF02DBean.getKeisha_bnchigo_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Lot Number field |
| R | `KKW01021SF02DBean.getKeisha_bnchigo_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Lot Number field |
| R | `KKW01021SF02DBean.getKeisha_bnchigo_value` | KKW01021SF02DBean | - | Returns the Contractor Lot Number value |
| R | `KKW01021SF02DBean.getKeisha_city_nm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor City/Town Name field |
| R | `KKW01021SF02DBean.getKeisha_city_nm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor City/Town Name field |
| R | `KKW01021SF02DBean.getKeisha_city_nm_value` | KKW01021SF02DBean | - | Returns the Contractor City/Town Name value |
| R | `KKW01021SF02DBean.getKeisha_oaztsu_nm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor District Alias field |
| R | `KKW01021SF02DBean.getKeisha_oaztsu_nm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor District Alias field |
| R | `KKW01021SF02DBean.getKeisha_oaztsu_nm_value` | KKW01021SF02DBean | - | Returns the Contractor District Alias value |
| R | `KKW01021SF02DBean.getKeisha_state_nm_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Prefecture Name field |
| R | `KKW01021SF02DBean.getKeisha_state_nm_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Prefecture Name field |
| R | `KKW01021SF02DBean.getKeisha_state_nm_value` | KKW01021SF02DBean | - | Returns the Contractor Prefecture Name value |
| R | `KKW01021SF02DBean.getKeisha_telno_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the Contractor Phone Number field |
| R | `KKW01021SF02DBean.getKeisha_telno_state` | KKW01021SF02DBean | - | Returns the display state of the Contractor Phone Number field |
| R | `KKW01021SF02DBean.getKeisha_telno_value` | KKW01021SF02DBean | - | Returns the Contractor Phone Number value |
| R | `KKW01021SF02DBean.getSysid_enabled` | KKW01021SF02DBean | - | Returns the enabled state of the System ID field |
| R | `KKW01021SF02DBean.getSysid_state` | KKW01021SF02DBean | - | Returns the display state of the System ID field |
| R | `KKW01021SF02DBean.getSysid_value` | KKW01021SF02DBean | - | Returns the System ID value |

**CRUD Summary:** This method performs **exclusively Read (R) operations**. Every called method is a getter on the same bean class that returns a property value, enabled flag, or display state for a contractor/address field. No service component (SC) calls, no CBS invocations, no database queries are made directly within this method. The data resides in the bean's instance fields.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | KKW01021SFBean | `KKW01021SFBean.loadModelData(key, subkey)` -> `KKW01021SF02DBean.loadModelData(key, subkey)` | `getSysid_value [R]`, `getCust_nm_value [R]`, `getKeisha_state_nm_value [R]`, `getKeisha_city_nm_value [R]`, `getKeisha_oaztsu_nm_value [R]`, `getKeisha_azcho_nm_value [R]`, `getKeisha_bnchigo_value [R]`, `getKeisha_adrttm_value [R]`, `getKeisha_adrrm_value [R]`, `getKeisha_telno_value [R]` |
| 2 | FUW00912SFBean (indirect) | Calls `loadModelData` on bean list items via `X33VDataTypeBeanInterface.loadModelData(key, subkey)` | Inherits same Read-only terminal operations through KKW01021SF02DBean |
| 3 | FUW00926SFBean (indirect) | Calls `loadModelData` on bean list items via `X33VDataTypeBeanInterface.loadModelData(keyElement, subkey)` | Same Read-only terminal operations through the bean chain |
| 4 | FUW00959SFBean (indirect) | Calls `loadModelData` on bean list items | Same Read-only terminal operations through the bean chain |
| 5 | FUW00964SFBean (indirect) | Calls `loadModelData` on bean list items via indexed bean access | Same Read-only terminal operations through the bean chain |

**Note:** The primary and direct caller is `KKW01021SFBean` within the same module. The KKW01021SFBean creates `KKW01021SF02DBean` instances and adds them to the `cust_list` DataTypeList (line 70 of KKW01021SFBean). Other modules (FUW*) that reference `loadModelData` are invoking it on their own bean hierarchies or on generic `X33VDataTypeBeanInterface` items - these are NOT direct calls to `KKW01021SF02DBean.loadModelData`, but rather invocations through the interface polymorphism chain.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null check) `(key == null || subkey == null)` (L433)

> Checks if either parameter is null. The Japanese comment says: "key,subkeyがnullの場合、nullを返す" (If key and subkey are null, return null).

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // If either key or subkey is null, return null immediately (key == null) [L433-435] |

**Block 2** — EXEC (separator calculation) (L437)

| # | Type | Code |
|---|------|------|
| 1 | SET | `sep = key.indexOf("/")` // Calculate separator index in key string |

**Block 3** — IF-ELSE-IF CHAIN (key dispatch - SYSID) `(key.equals("SYSID"))` (L440)

> The Japanese comment says: "データタイプがStringの項目"SYSID"(項目ID:sysid)" (Data type is String field "SYSID" (Item ID: sysid))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getSysid_value();` // Return the System ID data value [L441-442] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getSysid_enabled();` // Comment: "subkeyが"enable"の場合、sysid_enableのgetterの戻り値を返す" (When subkey is "enable", return the value of the sysid_enabled getter) [L443-444] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getSysid_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" (When subkey is "state", return the status) [L445-446] |

**Block 4** — IF-ELSE-IF CHAIN (key dispatch - Customer Name) `key.equals("CLIENT_NAME")` (L449)

> The Japanese comment says: "データタイプがStringの項目"CLIENT_NAME"(項目ID:cust_nm)" (Data type is String field "Customer Name" (Item ID: cust_nm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getCust_nm_value();` // Return the Customer Name data value [L450-451] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getCust_nm_enabled();` // Comment: "subkeyが"enable"の場合、cust_nm_enableのgetterの戻り値を返す" [L452-453] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getCust_nm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L454-455] |

**Block 5** — IF-ELSE-IF CHAIN (key dispatch - Contractor Prefecture) `key.equals("CONTRACTOR_PREF")` (L458)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_PREF"(項目ID:keisha_state_nm)" (Data type is String field "Contractor Prefecture Name" (Item ID: keisha_state_nm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_state_nm_value();` // Return the Contractor Prefecture Name value [L459-460] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_state_nm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_state_nm_enableのgetterの戻り値を返す" [L461-462] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_state_nm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L463-464] |

**Block 6** — IF-ELSE-IF CHAIN (key dispatch - Contractor City/Town) `key.equals("CONTRACTOR_CITY")` (L467)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_CITY"(項目ID:keisha_city_nm)" (Data type is String field "Contractor City/Town Name" (Item ID: keisha_city_nm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_city_nm_value();` // Return the Contractor City/Town Name value [L468-469] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_city_nm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_city_nm_enableのgetterの戻り値を返す" [L470-471] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_city_nm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L472-473] |

**Block 7** — IF-ELSE-IF CHAIN (key dispatch - Contractor District Alias) `key.equals("CONTRACTOR_DIST")` (L476)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_DIST"(項目ID:keisha_oaztsu_nm)" (Data type is String field "Contractor District Alias Name" (Item ID: keisha_oaztsu_nm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_oaztsu_nm_value();` // Return the Contractor District Alias value [L477-478] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_oaztsu_nm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_oaztsu_nm_enableのgetterの戻り値を返す" [L479-480] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_oaztsu_nm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L481-482] |

**Block 8** — IF-ELSE-IF CHAIN (key dispatch - Contractor Chome Name) `key.equals("CONTRACTOR_CHOME")` (L485)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_CHOME"(項目ID:keisha_azcho_nm)" (Data type is String field "Contractor Chome Name" (Item ID: keisha_azcho_nm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_azcho_nm_value();` // Return the Contractor Chome Name value [L486-487] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_azcho_nm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_azcho_nm_enableのgetterの戻り値を返す" [L488-489] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_azcho_nm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L490-491] |

**Block 9** — IF-ELSE-IF CHAIN (key dispatch - Contractor Lot Number) `key.equals("CONTRACTOR_LOT")` (L494)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_LOT"(項目ID:keisha_bnchigo)" (Data type is String field "Contractor Lot Number" (Item ID: keisha_bnchigo))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_bnchigo_value();` // Return the Contractor Lot Number value [L495-496] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_bnchigo_enabled();` // Comment: "subkeyが"enable"の場合、keisha_bnchigo_enableのgetterの戻り値を返す" [L497-498] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_bnchigo_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L499-500] |

**Block 10** — IF-ELSE-IF CHAIN (key dispatch - Contractor Building Name) `key.equals("CONTRACTOR_BLDG")` (L503)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_BLDG"(項目ID:keisha_adrttm)" (Data type is String field "Contractor Address Supplement - Building Name" (Item ID: keisha_adrttm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_adrttm_value();` // Return the Contractor Building Name value [L504-505] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_adrttm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_adrttm_enableのgetterの戻り値を返す" [L506-507] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_adrttm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L508-509] |

**Block 11** — IF-ELSE-IF CHAIN (key dispatch - Contractor Room Number) `key.equals("CONTRACTOR_ROOM")` (L512)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_ROOM"(項目ID:keisha_adrrm)" (Data type is String field "Contractor Address Supplement - Room Number" (Item ID: keisha_adrrm))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_adrrm_value();` // Return the Contractor Room Number value [L513-514] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_adrrm_enabled();` // Comment: "subkeyが"enable"の場合、keisha_adrrm_enableのgetterの戻り値を返す" [L515-516] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_adrrm_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L517-518] |

**Block 12** — IF-ELSE-IF CHAIN (key dispatch - Contractor Phone Number) `key.equals("CONTRACTOR_PHONE")` (L521)

> The Japanese comment says: "データタイプがStringの項目"CONTRACTOR_PHONE"(項目ID:keisha_telno)" (Data type is String field "Contractor Phone Number" (Item ID: keisha_telno))

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | RETURN | `return getKeisha_telno_value();` // Return the Contractor Phone Number value [L522-523] |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | RETURN | `return getKeisha_telno_enabled();` // Comment: "subkeyが"enable"の場合、keisha_telno_enableのgetterの戻り値を返す" [L524-525] |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | RETURN | `return getKeisha_telno_state();` // Comment: "subkeyが"state"の場合、ステータスを返す" [L526-527] |

**Block 13** — ELSE (fallback) (L530)

> The Japanese comment says: "条件に一致するプロパティが存在しない場合は、nullを返す。" (If no matching property exists, return null.)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // No matching key found among the 11 defined fields, return null [L530] |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `sysid` | Field | System ID - an internal tracking identifier for the contract record |
| `cust_nm` | Field | Customer Name - the name of the customer associated with the contract |
| `keisha_state_nm` | Field | Contractor Prefecture Name - the prefecture component of the contractor's address (e.g., Tokyo, Osaka) |
| `keisha_city_nm` | Field | Contractor City/Town Name - the city, ward, town, or village component of the contractor's address |
| `keisha_oaztsu_nm` | Field | Contractor District Alias Name - the large district alias (oazutsu) in the Japanese address system, typically a neighborhood-level designation |
| `keisha_azcho_nm` | Field | Contractor Chome/District Number Name - the chome (丁目) designation within a district, used for precise location identification in Japanese addresses |
| `keisha_bnchigo` | Field | Contractor Lot Number - the lot/block number (banchi-gou) in the Japanese address system |
| `keisha_adrttm` | Field | Contractor Address Supplement - Building Name - supplementary address information for the building name |
| `keisha_adrrm` | Field | Contractor Address Supplement - Room Number - supplementary address information for the room/unit number |
| `keisha_telno` | Field | Contractor Phone Number - the contractor's contact telephone number |
| `key` | Parameter | Display field label used to route to the correct contractor/address field getter. Contains Japanese labels for 11 distinct fields. |
| `subkey` | Parameter | Property facet specifier - "value" for data, "enable" for editability, "state" for display state. Case-insensitive. |
| X33 | Acronym | Fujitsu Futurity X33 - the web client framework used to build the screen/view layer |
| X33VDataTypeBeanInterface | Technical | Interface defining the contract-based data bean protocol, including `loadModelData` for dynamic property access |
| X33VDataTypeList | Technical | A typed list container for holding multiple data beans in the X33 framework |
| KKW01021SF | Module | Screen module ID - a telecom customer contract information editing screen |
| FTTH | Business term | Fiber To The Home - fiber-optic internet service (context for this contract management system) |
| X31CBaseBean | Technical | Base bean class providing common screen functionality (e.g., `setModelData`, `loadModelData`) |
