# Business Logic — KKW01037SF01DBean.loadModelData() [145 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW01037SF.KKW01037SF01DBean` |
| Layer | View / Data Bean (X33 framework — webview tier, client-side data binding) |
| Module | `KKW01037SF` (Package: `eo.web.webview.KKW01037SF`) |

## 1. Role

### KKW01037SF01DBean.loadModelData()

This method is the central data-accessor for a webview data bean in the X33 framework, responsible for loading model data by item name and subkey. It serves as a dynamic dispatch point that maps business-level property names (such as "Referred Customer ID" or "Introduction Code") to their corresponding value, enabled state, or UI state fields. The method implements a routing/dispatch design pattern: it compares the incoming `key` against a hardcoded set of display labels (Japanese UI strings) and then compares the `subkey` against the three standard sub-properties — "value", "enable", and "state" — to route to the correct getter. This pattern enables the X33 framework's generic binding mechanism to request any property of this data bean by name without requiring compile-time knowledge of specific fields. It is a shared utility called by the parent bean (`KKW01037SFBean`) when iterating over lists of service contract items and customer contract continuation items, allowing the UI to dynamically render each row's properties through a uniform interface. The method handles ten distinct business properties, organized into two categories: referral source (被紹介者, "hikoshou-moto" — the customer being referred, typically the end-customer) and referrer (紹介者, "shoukai-moto" — the referring party, such as an agent or partner). If either parameter is null or no matching property is found, the method returns null gracefully.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData key, subkey"])
    CHECK_NULL["key or subkey is null?"]
    RETURN_NULL(["Return null"])
    FIND_SEP["sep = key.indexOf('/')"]

    BRANCH1{"key equals<br/>\"被紹介者お客さまID\""}
    SUB1_VAL{"subkey equals \"value\""}
    SUB1_ENB{"subkey equals \"enable\""}
    RET_HI1V["Return getHi_svc_kei_no_value()"]
    RET_HI1E["Return getHi_svc_kei_no_enabled()"]
    RET_HI1S["Return getHi_svc_kei_no_state()"]

    BRANCH2{"key equals<br/>\"被紹介者料金グループ名\""}
    SUB2_VAL{"subkey equals \"value\""}
    SUB2_ENB{"subkey equals \"enable\""}
    RET_HI2V["Return getHi_prc_grp_nm_value()"]
    RET_HI2E["Return getHi_prc_grp_nm_enabled()"]
    RET_HI2S["Return getHi_prc_grp_nm_state()"]

    BRANCH3{"key equals<br/>\"被紹介者ステータス\""}
    SUB3_VAL{"subkey equals \"value\""}
    SUB3_ENB{"subkey equals \"enable\""}
    RET_HI3V["Return getHi_svc_kei_stat_value()"]
    RET_HI3E["Return getHi_svc_kei_stat_enabled()"]
    RET_HI3S["Return getHi_svc_kei_stat_state()"]

    BRANCH4{"key equals<br/>\"被紹介者サービス開始年月日\""}
    SUB4_VAL{"subkey equals \"value\""}
    SUB4_ENB{"subkey equals \"enable\""}
    RET_HI4V["Return getHi_svc_sta_ymd_value()"]
    RET_HI4E["Return getHi_svc_sta_ymd_enabled()"]
    RET_HI4S["Return getHi_svc_sta_ymd_state()"]

    BRANCH5{"key equals<br/>\"紹介コード\""}
    SUB5_VAL{"subkey equals \"value\""}
    SUB5_ENB{"subkey equals \"enable\""}
    RET_IN5V["Return getIntr_cd_value()"]
    RET_IN5E["Return getIntr_cd_enabled()"]
    RET_IN5S["Return getIntr_cd_state()"]

    BRANCH6{"key equals<br/>\"クーポンコード\""}
    SUB6_VAL{"subkey equals \"value\""}
    SUB6_ENB{"subkey equals \"enable\""}
    RET_CP6V["Return getCoupon_cd_value()"]
    RET_CP6E["Return getCoupon_cd_enabled()"]
    RET_CP6S["Return getCoupon_cd_state()"]

    BRANCH7{"key equals<br/>\"紹介者お客さまID\""}
    SUB7_VAL{"subkey equals \"value\""}
    SUB7_ENB{"subkey equals \"enable\""}
    RET_SH7V["Return getSho_svc_kei_no_value()"]
    RET_SH7E["Return getSho_svc_kei_no_enabled()"]
    RET_SH7S["Return getSho_svc_kei_no_state()"]

    BRANCH8{"key equals<br/>\"紹介者料金グループ名\""}
    SUB8_VAL{"subkey equals \"value\""}
    SUB8_ENB{"subkey equals \"enable\""}
    RET_SH8V["Return getSho_prc_grp_nm_value()"]
    RET_SH8E["Return getSho_prc_grp_nm_enabled()"]
    RET_SH8S["Return getSho_prc_grp_nm_state()"]

    BRANCH9{"key equals<br/>\"紹介者システムID\""}
    SUB9_VAL{"subkey equals \"value\""}
    SUB9_ENB{"subkey equals \"enable\""}
    RET_SH9V["Return getSho_sysid_value()"]
    RET_SH9E["Return getSho_sysid_enabled()"]
    RET_SH9S["Return getSho_sysid_state()"]

    BRANCH10{"key equals<br/>\"紹介者契約者名\""}
    SUB10_VAL{"subkey equals \"value\""}
    SUB10_ENB{"subkey equals \"enable\""}
    RET_SH10V["Return getSho_cust_nm_value()"]
    RET_SH10E["Return getSho_cust_nm_enabled()"]
    RET_SH10S["Return getSho_cust_nm_state()"]

    NO_MATCH["Property not found"]
    FINAL_RETURN(["Return null"])

    START --> CHECK_NULL
    CHECK_NULL -->|yes| RETURN_NULL
    CHECK_NULL -->|no| FIND_SEP
    FIND_SEP --> BRANCH1
    BRANCH1 -->|yes| SUB1_VAL
    BRANCH1 -->|no| BRANCH2
    BRANCH2 -->|yes| SUB2_VAL
    BRANCH2 -->|no| BRANCH3
    BRANCH3 -->|yes| SUB3_VAL
    BRANCH3 -->|no| BRANCH4
    BRANCH4 -->|yes| SUB4_VAL
    BRANCH4 -->|no| BRANCH5
    BRANCH5 -->|yes| SUB5_VAL
    BRANCH5 -->|no| BRANCH6
    BRANCH6 -->|yes| SUB6_VAL
    BRANCH6 -->|no| BRANCH7
    BRANCH7 -->|yes| SUB7_VAL
    BRANCH7 -->|no| BRANCH8
    BRANCH8 -->|yes| SUB8_VAL
    BRANCH8 -->|no| BRANCH9
    BRANCH9 -->|yes| SUB9_VAL
    BRANCH9 -->|no| BRANCH10
    BRANCH10 -->|yes| SUB10_VAL
    BRANCH10 -->|no| NO_MATCH

    SUB1_VAL -->|yes| RET_HI1V
    SUB1_VAL -->|no| SUB1_ENB
    SUB1_ENB -->|yes| RET_HI1E
    SUB1_ENB -->|no| RET_HI1S

    SUB2_VAL -->|yes| RET_HI2V
    SUB2_VAL -->|no| SUB2_ENB
    SUB2_ENB -->|yes| RET_HI2E
    SUB2_ENB -->|no| RET_HI2S

    SUB3_VAL -->|yes| RET_HI3V
    SUB3_VAL -->|no| SUB3_ENB
    SUB3_ENB -->|yes| RET_HI3E
    SUB3_ENB -->|no| RET_HI3S

    SUB4_VAL -->|yes| RET_HI4V
    SUB4_VAL -->|no| SUB4_ENB
    SUB4_ENB -->|yes| RET_HI4E
    SUB4_ENB -->|no| RET_HI4S

    SUB5_VAL -->|yes| RET_IN5V
    SUB5_VAL -->|no| SUB5_ENB
    SUB5_ENB -->|yes| RET_IN5E
    SUB5_ENB -->|no| RET_IN5S

    SUB6_VAL -->|yes| RET_CP6V
    SUB6_VAL -->|no| SUB6_ENB
    SUB6_ENB -->|yes| RET_CP6E
    SUB6_ENB -->|no| RET_CP6S

    SUB7_VAL -->|yes| RET_SH7V
    SUB7_VAL -->|no| SUB7_ENB
    SUB7_ENB -->|yes| RET_SH7E
    SUB7_ENB -->|no| RET_SH7S

    SUB8_VAL -->|yes| RET_SH8V
    SUB8_VAL -->|no| SUB8_ENB
    SUB8_ENB -->|yes| RET_SH8E
    SUB8_ENB -->|no| RET_SH8S

    SUB9_VAL -->|yes| RET_SH9V
    SUB9_VAL -->|no| SUB9_ENB
    SUB9_ENB -->|yes| RET_SH9E
    SUB9_ENB -->|no| RET_SH9S

    SUB10_VAL -->|yes| RET_SH10V
    SUB10_VAL -->|no| SUB10_ENB
    SUB10_ENB -->|yes| RET_SH10E
    SUB10_ENB -->|no| RET_SH10S

    NO_MATCH --> FINAL_RETURN
```

**Branch Summary:**

The method implements a two-level dispatch pattern:

1. **Null Guard (L439–L442):** If either `key` or `subkey` is null, return null immediately.
2. **Separator Check (L444):** Extracts the position of "/" in the key string (stored but unused — possibly a vestige from a previous version or a reserved extension point).
3. **Key Dispatch (L446–L566):** A cascading if/else-if chain that matches `key` against 10 hardcoded Japanese display labels. Each match triggers a sub-dispatch on `subkey`.
4. **Subkey Dispatch (nested, L447–L565):** Within each key branch, a nested if/else-if matches `subkey` case-insensitively against "value", "enable", or "state" and returns the corresponding getter for that property's value, enabled state, or UI state.
5. **Fallback (L568):** If no property matches the given key, return null.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The business item name (display label in Japanese) used to identify which property to retrieve. This acts as a routing key that determines the property family. Valid values are: "被紹介者お客さまID" (Referred Customer ID), "被紹介者料金グループ名" (Referred Customer Price Group Name), "被紹介者ステータス" (Referred Customer Status), "被紹介者サービス開始年月日" (Referred Customer Service Start Date), "紹介コード" (Introduction Code), "クーポンコード" (Coupon Code), "紹介者お客さまID" (Referrer Customer ID), "紹介者料金グループ名" (Referrer Price Group Name), "紹介者システムID" (Referrer System ID), "紹介者契約者名" (Referrer Contract Name). |
| 2 | `subkey` | `String` | The sub-property accessor that specifies which aspect of the identified property to return. Case-insensitive comparison is used. Valid values: "value" (returns the field's current data value), "enable" (returns the field's enabled/disabled state for UI control), "state" (returns the field's UI state string, e.g., error/validation state). |

**Instance Fields Read by This Method:**

| # | Field Name | Type | Business Description |
|---|-----------|------|---------------------|
| 1 | `hi_svc_kei_no_value` | `String` | Referred customer service detail number value |
| 2 | `hi_svc_kei_no_enabled` | `Boolean` | Referred customer service detail number enabled state |
| 3 | `hi_svc_kei_no_state` | `String` | Referred customer service detail number UI state |
| 4 | `hi_prc_grp_nm_value` | `String` | Referred customer price group name value |
| 5 | `hi_prc_grp_nm_enabled` | `Boolean` | Referred customer price group name enabled state |
| 6 | `hi_prc_grp_nm_state` | `String` | Referred customer price group name UI state |
| 7 | `hi_svc_kei_stat_value` | `String` | Referred customer service detail status value |
| 8 | `hi_svc_kei_stat_enabled` | `Boolean` | Referred customer service detail status enabled state |
| 9 | `hi_svc_kei_stat_state` | `String` | Referred customer service detail status UI state |
| 10 | `hi_svc_sta_ymd_value` | `String` | Referred customer service start date value |
| 11 | `hi_svc_sta_ymd_enabled` | `Boolean` | Referred customer service start date enabled state |
| 12 | `hi_svc_sta_ymd_state` | `String` | Referred customer service start date UI state |
| 13 | `intr_cd_value` | `String` | Introduction code value |
| 14 | `intr_cd_enabled` | `Boolean` | Introduction code enabled state |
| 15 | `intr_cd_state` | `String` | Introduction code UI state |
| 16 | `coupon_cd_value` | `String` | Coupon code value |
| 17 | `coupon_cd_enabled` | `Boolean` | Coupon code enabled state |
| 18 | `coupon_cd_state` | `String` | Coupon code UI state |
| 19 | `sho_svc_kei_no_value` | `String` | Referrer customer service detail number value |
| 20 | `sho_svc_kei_no_enabled` | `Boolean` | Referrer customer service detail number enabled state |
| 21 | `sho_svc_kei_no_state` | `String` | Referrer customer service detail number UI state |
| 22 | `sho_prc_grp_nm_value` | `String` | Referrer price group name value |
| 23 | `sho_prc_grp_nm_enabled` | `Boolean` | Referrer price group name enabled state |
| 24 | `sho_prc_grp_nm_state` | `String` | Referrer price group name UI state |
| 25 | `sho_sysid_value` | `String` | Referrer system ID value |
| 26 | `sho_sysid_enabled` | `Boolean` | Referrer system ID enabled state |
| 27 | `sho_sysid_state` | `String` | Referrer system ID UI state |
| 28 | `sho_cust_nm_value` | `String` | Referrer contract name value |
| 29 | `sho_cust_nm_enabled` | `Boolean` | Referrer contract name enabled state |
| 30 | `sho_cust_nm_state` | `String` | Referrer contract name UI state |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW01037SF01DBean.getCoupon_cd_enabled` | KKW01037SF01DBean | - | Reads instance field `coupon_cd_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getCoupon_cd_state` | KKW01037SF01DBean | - | Reads instance field `coupon_cd_state` (String) |
| R | `KKW01037SF01DBean.getCoupon_cd_value` | KKW01037SF01DBean | - | Reads instance field `coupon_cd_value` (String) |
| R | `KKW01037SF01DBean.getHi_prc_grp_nm_enabled` | KKW01037SF01DBean | - | Reads instance field `hi_prc_grp_nm_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getHi_prc_grp_nm_state` | KKW01037SF01DBean | - | Reads instance field `hi_prc_grp_nm_state` (String) |
| R | `KKW01037SF01DBean.getHi_prc_grp_nm_value` | KKW01037SF01DBean | - | Reads instance field `hi_prc_grp_nm_value` (String) |
| R | `KKW01037SF01DBean.getHi_svc_kei_no_enabled` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_no_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getHi_svc_kei_no_state` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_no_state` (String) |
| R | `KKW01037SF01DBean.getHi_svc_kei_no_value` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_no_value` (String) |
| R | `KKW01037SF01DBean.getHi_svc_kei_stat_enabled` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_stat_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getHi_svc_kei_stat_state` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_stat_state` (String) |
| R | `KKW01037SF01DBean.getHi_svc_kei_stat_value` | KKW01037SF01DBean | - | Reads instance field `hi_svc_kei_stat_value` (String) |
| R | `KKW01037SF01DBean.getHi_svc_sta_ymd_enabled` | KKW01037SF01DBean | - | Reads instance field `hi_svc_sta_ymd_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getHi_svc_sta_ymd_state` | KKW01037SF01DBean | - | Reads instance field `hi_svc_sta_ymd_state` (String) |
| R | `KKW01037SF01DBean.getHi_svc_sta_ymd_value` | KKW01037SF01DBean | - | Reads instance field `hi_svc_sta_ymd_value` (String) |
| R | `KKW01037SF01DBean.getIntr_cd_enabled` | KKW01037SF01DBean | - | Reads instance field `intr_cd_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getIntr_cd_state` | KKW01037SF01DBean | - | Reads instance field `intr_cd_state` (String) |
| R | `KKW01037SF01DBean.getIntr_cd_value` | KKW01037SF01DBean | - | Reads instance field `intr_cd_value` (String) |
| R | `KKW01037SF01DBean.getSho_cust_nm_enabled` | KKW01037SF01DBean | - | Reads instance field `sho_cust_nm_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getSho_cust_nm_state` | KKW01037SF01DBean | - | Reads instance field `sho_cust_nm_state` (String) |
| R | `KKW01037SF01DBean.getSho_cust_nm_value` | KKW01037SF01DBean | - | Reads instance field `sho_cust_nm_value` (String) |
| R | `KKW01037SF01DBean.getSho_prc_grp_nm_enabled` | KKW01037SF01DBean | - | Reads instance field `sho_prc_grp_nm_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getSho_prc_grp_nm_state` | KKW01037SF01DBean | - | Reads instance field `sho_prc_grp_nm_state` (String) |
| R | `KKW01037SF01DBean.getSho_prc_grp_nm_value` | KKW01037SF01DBean | - | Reads instance field `sho_prc_grp_nm_value` (String) |
| R | `KKW01037SF01DBean.getSho_svc_kei_no_enabled` | KKW01037SF01DBean | - | Reads instance field `sho_svc_kei_no_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getSho_svc_kei_no_state` | KKW01037SF01DBean | - | Reads instance field `sho_svc_kei_no_state` (String) |
| R | `KKW01037SF01DBean.getSho_svc_kei_no_value` | KKW01037SF01DBean | - | Reads instance field `sho_svc_kei_no_value` (String) |
| R | `KKW01037SF01DBean.getSho_sysid_enabled` | KKW01037SF01DBean | - | Reads instance field `sho_sysid_enabled` (Boolean) |
| R | `KKW01037SF01DBean.getSho_sysid_state` | KKW01037SF01DBean | - | Reads instance field `sho_sysid_state` (String) |
| R | `KKW01037SF01DBean.getSho_sysid_value` | KKW01037SF01DBean | - | Reads instance field `sho_sysid_value` (String) |

**CRUD Summary:** This method is **Read-only**. All 30 operations are reads of instance fields (getter delegation). No external service calls, database operations, or writes are performed. The method reads the bean's own protected instance fields and returns them to the caller. This is consistent with its role as a data-binding accessor in the X33 view layer.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW01037SF | `KKW01037SFBean.getJsflist_typelist_svc_kei_list()` → `X33VDataTypeBeanInterface.loadModelData(key, subkey)` → `KKW01037SF01DBean.loadModelData` | `getHi_svc_kei_no_value [R] hi_svc_kei_no_value`, `getHi_svc_kei_no_enabled [R] hi_svc_kei_no_enabled`, `getHi_svc_kei_no_state [R] hi_svc_kei_no_state` |
| 2 | Screen:KKW01037SF | `KKW01037SFBean.getJsflist_typelist_cust_kei_hktgi_list()` → `X33VDataTypeBeanInterface.loadModelData(key, subkey)` → `KKW01037SF01DBean.loadModelData` | `getSho_svc_kei_no_value [R] sho_svc_kei_no_value`, `getSho_svc_kei_no_enabled [R] sho_svc_kei_no_enabled`, `getSho_svc_kei_no_state [R] sho_svc_kei_no_state` |

**Notes on caller analysis:**
- The two documented callers in `KKW01037SFBean` invoke `loadModelData` on items within `svc_kei_list_list` (Service Contract List) and `cust_kei_hktgi_list_list` (Customer Contract Continuation List) during dropdown population. These calls pass keys like "サービス契約一覧リスト" (Service Contract List) and "顧客契約引継リスト" (Customer Contract Continuation List) — which are NOT among the 10 keys handled by `KKW01037SF01DBean.loadModelData`, meaning these calls are delegated up the inheritance chain to the parent bean's `loadModelData` implementation.
- The method is designed to be callable from any part of the X33 framework that needs to retrieve model data from this bean dynamically by property name.

## 6. Per-Branch Detail Blocks

### Block 1 — IF (null guard) (L439)

> Null check on input parameters. If either key or subkey is null, return null immediately.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key == null || subkey == null)` |
| 2 | RETURN | `return null;` // key,subkeyがnullの場合、nullを返す (If key and subkey are null, return null) |

### Block 2 — EXEC (separator extraction) (L444)

> Extracts the index of "/" character in key. The result is stored but never used — likely a vestige from a prior version or a reserved extension point.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/");` // Reserved extension point, unused |

### Block 3 — ELSE-IF [Key Branch 1] "被紹介者お客さまID" (Referred Customer ID) (L447)

> Routes to getters for the referred customer's service detail number (hi_svc_kei_no). This represents the end customer (被紹介者) who is being referred through a referral program.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("被紹介者お客さまID"))` // データタイプがStringの項目"被紹介者お客さまID"（項目ID:hi_svc_kei_no） (Data type is String item "Referred Customer ID" (Item ID: hi_svc_kei_no)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getHi_svc_kei_no_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、hi_svc_kei_no_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of hi_svc_kei_no_enable's getter) |
| 5 | RETURN | `return getHi_svc_kei_no_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getHi_svc_kei_no_state();` |

### Block 4 — ELSE-IF [Key Branch 2] "被紹介者料金グループ名" (Referred Customer Price Group Name) (L462)

> Routes to getters for the referred customer's price group name (hi_prc_grp_nm). Price groups classify pricing tiers for service packages.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("被紹介者料金グループ名"))` // データタイプがStringの項目"被紹介者料金グループ名"（項目ID:hi_prc_grp_nm） (Data type is String item "Referred Customer Price Group Name" (Item ID: hi_prc_grp_nm)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getHi_prc_grp_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、hi_prc_grp_nm_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of hi_prc_grp_nm_enable's getter) |
| 5 | RETURN | `return getHi_prc_grp_nm_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getHi_prc_grp_nm_state();` |

### Block 5 — ELSE-IF [Key Branch 3] "被紹介者ステータス" (Referred Customer Status) (L477)

> Routes to getters for the referred customer's service detail status (hi_svc_kei_stat). This indicates the current status of the service contract line item.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("被紹介者ステータス"))` // データタイプがStringの項目"被紹介者ステータス"（項目ID:hi_svc_kei_stat） (Data type is String item "Referred Customer Status" (Item ID: hi_svc_kei_stat)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getHi_svc_kei_stat_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、hi_svc_kei_stat_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of hi_svc_kei_stat_enable's getter) |
| 5 | RETURN | `return getHi_svc_kei_stat_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getHi_svc_kei_stat_state();` |

### Block 6 — ELSE-IF [Key Branch 4] "被紹介者サービス開始年月日" (Referred Customer Service Start Date) (L492)

> Routes to getters for the referred customer's service start date (hi_svc_sta_ymd). This represents the date when the referred customer's service was activated.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("被紹介者サービス開始年月日"))` // データタイプがStringの項目"被紹介者サービス開始年月日"（項目ID:hi_svc_sta_ymd） (Data type is String item "Referred Customer Service Start Date" (Item ID: hi_svc_sta_ymd)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getHi_svc_sta_ymd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、hi_svc_sta_ymd_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of hi_svc_sta_ymd_enable's getter) |
| 5 | RETURN | `return getHi_svc_sta_ymd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getHi_svc_sta_ymd_state();` |

### Block 7 — ELSE-IF [Key Branch 5] "紹介コード" (Introduction Code) (L507)

> Routes to getters for the introduction code (intr_cd). This is the code used to identify the referral source for tracking purposes.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("紹介コード"))` // データタイプがStringの項目"紹介コード"（項目ID:intr_cd） (Data type is String item "Introduction Code" (Item ID: intr_cd)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getIntr_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、intr_cd_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of intr_cd_enable's getter) |
| 5 | RETURN | `return getIntr_cd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getIntr_cd_state();` |

### Block 8 — ELSE-IF [Key Branch 6] "クーポンコード" (Coupon Code) — Added via ANK-4416-00-00 (L521)

> Routes to getters for the coupon code (coupon_cd). This property was added as part of feature ANK-4416-00-00, which added simultaneous entry support for introduction codes and enterprise codes for partner companies.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("クーポンコード"))` // データタイプがString の項目"クーポンコード"（項目ID:coupon_cd） (Data type is String item "Coupon Code" (Item ID: coupon_cd)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getCoupon_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、coupon_cd_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of coupon_cd_enable's getter) |
| 5 | RETURN | `return getCoupon_cd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getCoupon_cd_state();` |

### Block 9 — ELSE-IF [Key Branch 7] "紹介者お客さまID" (Referrer Customer ID) (L535)

> Routes to getters for the referrer's service detail number (sho_svc_kei_no). The referrer (紹介者) is the party making the referral — typically an agent, partner, or reseller.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("紹介者お客さまID"))` // データタイプがStringの項目"紹介者お客さまID"（項目ID:sho_svc_kei_no） (Data type is String item "Referrer Customer ID" (Item ID: sho_svc_kei_no)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getSho_svc_kei_no_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、sho_svc_kei_no_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of sho_svc_kei_no_enable's getter) |
| 5 | RETURN | `return getSho_svc_kei_no_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getSho_svc_kei_no_state();` |

### Block 10 — ELSE-IF [Key Branch 8] "紹介者料金グループ名" (Referrer Price Group Name) (L550)

> Routes to getters for the referrer's price group name (sho_prc_grp_nm).

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("紹介者料金グループ名"))` // データタイプがStringの項目"紹介者料金グループ名"（項目ID:sho_prc_grp_nm） (Data type is String item "Referrer Price Group Name" (Item ID: sho_prc_grp_nm)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getSho_prc_grp_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、sho_prc_grp_nm_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of sho_prc_grp_nm_enable's getter) |
| 5 | RETURN | `return getSho_prc_grp_nm_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getSho_prc_grp_nm_state();` |

### Block 11 — ELSE-IF [Key Branch 9] "紹介者システムID" (Referrer System ID) (L565)

> Routes to getters for the referrer's system ID (sho_sysid). This is the unique system identifier for the referrer entity.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("紹介者システムID"))` // データタイプがStringの項目"紹介者システムID"（項目ID:sho_sysid） (Data type is String item "Referrer System ID" (Item ID: sho_sysid)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getSho_sysid_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、sho_sysid_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of sho_sysid_enable's getter) |
| 5 | RETURN | `return getSho_sysid_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getSho_sysid_state();` |

### Block 12 — ELSE-IF [Key Branch 10] "紹介者契約者名" (Referrer Contract Name) (L580)

> Routes to getters for the referrer's contract name (sho_cust_nm).

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("紹介者契約者名"))` // データタイプがStringの項目"紹介者契約者名"（項目ID:sho_cust_nm） (Data type is String item "Referrer Contract Name" (Item ID: sho_cust_nm)) |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getSho_cust_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkeyが"enable"の場合、sho_cust_nm_enableのgetterの戻り値を返す。 (If subkey is "enable", return the value of sho_cust_nm_enable's getter) |
| 5 | RETURN | `return getSho_cust_nm_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkeyが"state"の場合、ステータスを返す。 (If subkey is "state", return the status) |
| 7 | RETURN | `return getSho_cust_nm_state();` |

### Block 13 — ELSE (fallback) (L587)

> No matching property was found for the given key. Returns null gracefully.

| # | Type | Code |
|---|------|------|
| 1 | ELSE | (implicit — end of else-if chain) // 条件に一致するプロパティが存在しない場合は、nullを返す。 (If no property matches the condition, return null) |
| 2 | RETURN | `return null;` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `hi_svc_kei_no` | Field | Referred Customer Service Detail Number — the service contract line item number for the end customer being referred |
| `hi_svc_kei_stat` | Field | Referred Customer Service Detail Status — the current status of the referred customer's service line item |
| `hi_svc_sta_ymd` | Field | Referred Customer Service Start Date — the date (year/month/day) when the referred customer's service was activated |
| `hi_prc_grp_nm` | Field | Referred Customer Price Group Name — the pricing group classification for the referred customer |
| `intr_cd` | Field | Introduction Code — the code identifying the referral source for tracking and attribution |
| `coupon_cd` | Field | Coupon Code — promotional coupon code for discounts, added in feature ANK-4416-00-00 |
| `sho_svc_kei_no` | Field | Referrer Customer Service Detail Number — the service contract line item number for the referring party |
| `sho_prc_grp_nm` | Field | Referrer Price Group Name — the pricing group classification for the referrer |
| `sho_sysid` | Field | Referrer System ID — the unique system identifier for the referrer entity |
| `sho_cust_nm` | Field | Referrer Contract Name — the registered contract name of the referrer |
| 被紹介者 (hikoshou-moto) | Japanese term | Referred party — the end customer who is being referred through a referral program (typically the consumer) |
| 紹介者 (shoukai-moto) | Japanese term | Referrer party — the party making the referral (agent, partner, or reseller) |
| ANK-4416-00-00 | Ticket ID | Feature ticket for adding introduction code and partner enterprise code simultaneous entry support |
| X33 | Acronym | Fujitsu Futurity Web Client framework version 3.3 — the web application framework providing the bean lifecycle and data binding model |
| X31CBaseBean | Class | Base bean class from the X31 framework providing common bean utilities including the original `loadModelData` implementation |
| X33VDataTypeBeanInterface | Interface | X33 data type bean interface — contract for beans that provide typed data values through `loadModelData` |
| X33VListedBeanInterface | Interface | X33 listed bean interface — contract for beans that participate in list/data table components |
| DBean | Abbreviation | Data Bean — a view-layer bean that holds and exposes data for UI components |
| value | Subkey | Returns the actual data value stored in the property field |
| enable | Subkey | Returns the enabled/disabled state (Boolean) controlling whether the field is editable in the UI |
| state | Subkey | Returns the UI state string (e.g., error, warning, or informational state for display) |

---
