# Business Logic — KKW01601SF01DBean.loadModelData() [160 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA15301SF.KKW01601SF01DBean` |
| Layer | Controller / View Bean (webview package — screen data model) |
| Module | `KKA15301SF` (Package: `eo.web.webview.KKA15301SF`) |

## 1. Role

### KKW01601SF01DBean.loadModelData()

This method serves as the **central data access gateway** for the KKW01601SF01 screen's data model. It implements a **routing/dispatch pattern** that resolves data requests issued by the view layer through a two-level key system: a top-level category key (e.g., "Code Type Code", "Default Code") and a secondary subkey (e.g., "value", "enable", "state").

The method handles **four distinct data categories**:

- **Simple scalar properties**: Returns the value, enabled state, or UI state of the code division code (`cd_div_cd`) and code division name (`cd_div_nm`) properties, plus the selected index for a dropdown. These are single-value fields that represent the current screen state.
- **Array/List properties**: Retrieves elements from four managed lists — `default_cd_list`, `cd_div_cd_list_list`, `cd_div_nm_list_list`, and `credit_kokan_cd_list`. Each list holds `X33VDataTypeStringBean` objects, and the method delegates per-element retrieval by forwarding the subkey to the element's own `loadModelData` method.
- **Index wildcard queries**: When the subkey is `"*"`, returns the size of the corresponding list (element count), enabling the view layer to drive iteration loops.
- **Null-safety guard**: Returns `null` when either parameter is `null`, when no matching key is found, or when an index is out of bounds.

The method's role in the larger system is as a **view-bean data contract**: it is the single entry point through which the associated screen controller and JSP view layers query any piece of the model's state. This decouples the view from direct field access and provides a uniform `key → data` interface that is easy to extend with new data categories.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData key, subkey"])
    START --> NULL_CHECK{key or subkey is null?}
    NULL_CHECK -->|Yes| RETURN_NULL(["return null"])
    NULL_CHECK -->|No| FIND_SEP["int separaterPoint = key.indexOf('/')"]

    FIND_SEP --> CK_1{key equals 'コードタイプコード'?}
    CK_1 -->|Yes| SUB_1["String subkeyLower = subkey.toLowerCase"]
    SUB_1 --> SUB1_1{subkeyLower equals 'value'?}
    SUB1_1 -->|Yes| CALL_1["return getCd_div_cd_value"]
    SUB1_1 -->|No| SUB1_2{subkeyLower equals 'enable'?}
    SUB1_2 -->|Yes| CALL_2["return getCd_div_cd_enabled"]
    SUB1_2 -->|No| SUB1_3{subkeyLower equals 'state'?}
    SUB1_3 -->|Yes| CALL_3["return getCd_div_cd_state"]
    SUB1_3 -->|No| END_1(["Return null"])
    CALL_1 --> END_1
    CALL_2 --> END_1
    CALL_3 --> END_1

    CK_1 -->|No| CK_2{key equals 'コードタイプ名称'?}
    CK_2 -->|Yes| SUB_2["String subkeyLower = subkey.toLowerCase"]
    SUB_2 --> SUB2_1{subkeyLower equals 'value'?}
    SUB2_1 -->|Yes| CALL_4["return getCd_div_nm_value"]
    SUB2_1 -->|No| SUB2_2{subkeyLower equals 'enable'?}
    SUB2_2 -->|Yes| CALL_5["return getCd_div_nm_enabled"]
    SUB2_2 -->|No| SUB2_3{subkeyLower equals 'state'?}
    SUB2_3 -->|Yes| CALL_6["return getCd_div_nm_state"]
    SUB2_3 -->|No| END_2(["Return null"])
    CALL_4 --> END_2
    CALL_5 --> END_2
    CALL_6 --> END_2

    CK_2 -->|No| CK_3{key equals '選択インデックス'?}
    CK_3 -->|Yes| SUB_3["String subkeyLower = subkey.toLowerCase"]
    SUB_3 --> SUB3_1{subkeyLower equals 'value'?}
    SUB3_1 -->|Yes| CALL_7["return getSelect_index_value"]
    SUB3_1 -->|No| SUB3_2{subkeyLower equals 'enable'?}
    SUB3_2 -->|Yes| CALL_8["return getSelect_index_enabled"]
    SUB3_2 -->|No| SUB3_3{subkeyLower equals 'state'?}
    SUB3_3 -->|Yes| CALL_9["return getSelect_index_state"]
    SUB3_3 -->|No| END_3(["Return null"])
    CALL_7 --> END_3
    CALL_8 --> END_3
    CALL_9 --> END_3

    CK_3 -->|No| CK_4{key equals '初期設定コード'?}
    CK_4 -->|Yes| ARR_1["key = key.substring(separaterPoint + 1)"]
    ARR_1 --> ARR_1A{key equals '*'?}
    ARR_1A -->|Yes| RET_ARR_1["return default_cd_list.size"]
    ARR_1A -->|No| ARR_1B["Integer tmpIndexInt = Integer.valueOf(key)"]
    ARR_1B --> ARR_1C{NumberFormatException?}
    ARR_1C -->|Yes| RET_NULL_1["return null"]
    ARR_1C -->|No| ARR_1D{tmpIndexInt == null?}
    ARR_1D -->|Yes| RET_NULL_1
    ARR_1D -->|No| ARR_1E["int tmpIndex = tmpIndexInt.intValue"]
    ARR_1E --> ARR_1F{tmpIndex < 0 or >= default_cd_list.size?}
    ARR_1F -->|Yes| RET_NULL_1
    ARR_1F -->|No| ARR_1G["return default_cd_list.get(tmpIndex).loadModelData(subkey)"]
    RET_ARR_1 --> END_4(["Return"])
    RET_NULL_1 --> END_4
    ARR_1G --> END_4

    CK_4 -->|No| CK_5{key equals 'コードタイプコード値リスト'?}
    CK_5 -->|Yes| ARR_2["key = key.substring(separaterPoint + 1)"]
    ARR_2 --> ARR_2A{key equals '*'?}
    ARR_2A -->|Yes| RET_ARR_2["return cd_div_cd_list_list.size"]
    ARR_2A -->|No| ARR_2B["Integer tmpIndexInt = Integer.valueOf(key)"]
    ARR_2B --> ARR_2C{NumberFormatException?}
    ARR_2C -->|Yes| RET_NULL_2["return null"]
    ARR_2C -->|No| ARR_2D{tmpIndexInt == null?}
    ARR_2D -->|Yes| RET_NULL_2
    ARR_2D -->|No| ARR_2E["int tmpIndex = tmpIndexInt.intValue"]
    ARR_2E --> ARR_2F{tmpIndex < 0 or >= cd_div_cd_list_list.size?}
    ARR_2F -->|Yes| RET_NULL_2
    ARR_2F -->|No| ARR_2G["return cd_div_cd_list_list.get(tmpIndex).loadModelData(subkey)"]
    RET_ARR_2 --> END_5(["Return"])
    RET_NULL_2 --> END_5
    ARR_2G --> END_5

    CK_5 -->|No| CK_6{key equals 'コードタイプ名称リスト'?}
    CK_6 -->|Yes| ARR_3["key = key.substring(separaterPoint + 1)"]
    ARR_3 --> ARR_3A{key equals '*'?}
    ARR_3A -->|Yes| RET_ARR_3["return cd_div_nm_list_list.size"]
    ARR_3A -->|No| ARR_3B["Integer tmpIndexInt = Integer.valueOf(key)"]
    ARR_3B --> ARR_3C{NumberFormatException?}
    ARR_3C -->|Yes| RET_NULL_3["return null"]
    ARR_3C -->|No| ARR_3D{tmpIndexInt == null?}
    ARR_3D -->|Yes| RET_NULL_3
    ARR_3D -->|No| ARR_3E["int tmpIndex = tmpIndexInt.intValue"]
    ARR_3E --> ARR_3F{tmpIndex < 0 or >= cd_div_nm_list_list.size?}
    ARR_3F -->|Yes| RET_NULL_3
    ARR_3F -->|No| ARR_3G["return cd_div_nm_list_list.get(tmpIndex).loadModelData(subkey)"]
    RET_ARR_3 --> END_6(["Return"])
    RET_NULL_3 --> END_6
    ARR_3G --> END_6

    CK_6 -->|No| CK_7{key equals 'クレジット交換コード'?}
    CK_7 -->|Yes| ARR_4["key = key.substring(separaterPoint + 1)"]
    ARR_4 --> ARR_4A{key equals '*'?}
    ARR_4A -->|Yes| RET_ARR_4["return credit_kokan_cd_list.size"]
    ARR_4A -->|No| ARR_4B["Integer tmpIndexInt = Integer.valueOf(key)"]
    ARR_4B --> ARR_4C{NumberFormatException?}
    ARR_4C -->|Yes| RET_NULL_4["return null"]
    ARR_4C -->|No| ARR_4D{tmpIndexInt == null?}
    ARR_4D -->|Yes| RET_NULL_4
    ARR_4D -->|No| ARR_4E["int tmpIndex = tmpIndexInt.intValue"]
    ARR_4E --> ARR_4F{tmpIndex < 0 or >= credit_kokan_cd_list.size?}
    ARR_4F -->|Yes| RET_NULL_4
    ARR_4F -->|No| ARR_4G["return credit_kokan_cd_list.get(tmpIndex).loadModelData(subkey)"]
    RET_ARR_4 --> END_7(["Return"])
    RET_NULL_4 --> END_7
    ARR_4G --> END_7

    CK_7 -->|No| FINAL_RETURN(["return null"])
    END_1 --> FINAL_RETURN
    END_2 --> FINAL_RETURN
    END_3 --> FINAL_RETURN
    END_4 --> FINAL_RETURN
    END_5 --> FINAL_RETURN
    END_6 --> FINAL_RETURN
    END_7 --> FINAL_RETURN
    FINAL_RETURN --> END_FINAL(["End"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The top-level item name/identifier used to select which data category to query. Possible values are Japanese strings: `"コードタイプコード"` (Code Type Code), `"コードタイプ名称"` (Code Type Name), `"選択インデックス"` (Selected Index), `"初期設定コード"` (Initial Setting Code — requires a `/` separator), `"コードタイプコード値リスト"` (Code Type Code Value List — requires a `/` separator), `"コードタイプ名称リスト"` (Code Type Name List — requires a `/` separator), `"クレジット交換コード"` (Credit Exchange Code — requires a `/` separator). For list types, the key contains a path-like segment (e.g., `"初期設定コード/0"`) to specify the element index. |
| 2 | `subkey` | `String` | The secondary qualifier that selects the specific attribute within the matched data category. For simple scalar properties, valid values are `"value"`, `"enable"`, or `"state"` (case-insensitive), representing the actual data value, the enabled/disabled state, and the UI state respectively. For array/list properties, the subkey is forwarded to the individual element's `loadModelData` method to query per-element attributes. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `default_cd_list` | `List` | List of `X33VDataTypeStringBean` objects representing initial setting codes |
| `cd_div_cd_list_list` | `List` | List of `X33VDataTypeStringBean` objects representing code type code values |
| `cd_div_nm_list_list` | `List` | List of `X33VDataTypeStringBean` objects representing code type names |
| `credit_kokan_cd_list` | `List` | List of `X33VDataTypeStringBean` objects representing credit exchange codes |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` in `JKKAdEditCC` |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` in `JKKAdEdit` |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` in `JKKTelnoInfoAddMapperCC` |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` in `JDKejbStringEdit` |
| R | `KKW01601SF01DBean.getCd_div_cd_enabled` | KKW01601SF01DBean | - | Calls `getCd_div_cd_enabled` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getCd_div_cd_state` | KKW01601SF01DBean | - | Calls `getCd_div_cd_state` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getCd_div_cd_value` | KKW01601SF01DBean | - | Calls `getCd_div_cd_value` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getCd_div_nm_enabled` | KKW01601SF01DBean | - | Calls `getCd_div_nm_enabled` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getCd_div_nm_state` | KKW01601SF01DBean | - | Calls `getCd_div_nm_state` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getCd_div_nm_value` | KKW01601SF01DBean | - | Calls `getCd_div_nm_value` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getSelect_index_enabled` | KKW01601SF01DBean | - | Calls `getSelect_index_enabled` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getSelect_index_state` | KKW01601SF01DBean | - | Calls `getSelect_index_state` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.getSelect_index_value` | KKW01601SF01DBean | - | Calls `getSelect_index_value` in `KKW01601SF01DBean` |
| R | `KKW01601SF01DBean.loadModelData` | KKW01601SF01DBean | - | Calls `loadModelData` in `KKW01601SF01DBean` (recursive delegation to list element beans) |

**CRUD classification of internal operations:**

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `getXxxValue()` (cd_div_cd) | KKW01601SF01DBean | - | Reads the current code type code value from the bean's internal state |
| R | `getXxxEnabled()` (cd_div_cd) | KKW01601SF01DBean | - | Reads the enabled state flag for the code type code field |
| R | `getXxxState()` (cd_div_cd) | KKW01601SF01DBean | - | Reads the UI state (e.g., error, disabled) of the code type code field |
| R | `getXxxValue()` (cd_div_nm) | KKW01601SF01DBean | - | Reads the current code type name value from the bean's internal state |
| R | `getXxxEnabled()` (cd_div_nm) | KKW01601SF01DBean | - | Reads the enabled state flag for the code type name field |
| R | `getXxxState()` (cd_div_nm) | KKW01601SF01DBean | - | Reads the UI state (e.g., error, disabled) of the code type name field |
| R | `getXxxValue()` (select_index) | KKW01601SF01DBean | - | Reads the currently selected dropdown index |
| R | `getXxxEnabled()` (select_index) | KKW01601SF01DBean | - | Reads the enabled state of the selection index field |
| R | `getXxxState()` (select_index) | KKW01601SF01DBean | - | Reads the UI state of the selection index field |
| R | `ListModelData` (list element) | KKW01601SF01DBean | - | Recursively queries `X33VDataTypeStringBean` elements from the list, reading their sub-properties |

**No Create, Update, or Delete operations** — this method is purely read-only. It serves as a data retrieval gateway with no side effects on persistence or state mutation.

## 5. Dependency Trace

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

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `KKW01601SF01DBean` (self-call) | `KKW01601SF01DBean.loadModelData` → delegates to child `X33VDataTypeStringBean.loadModelData` | `loadModelData [R] X33VDataTypeStringBean` |

This method is called by itself in a recursive delegation pattern: when the `key` specifies a list index (e.g., `"初期設定コード/3"`), the method extracts the index, retrieves the bean at that index from the list, and calls `loadModelData(subkey)` on the child bean to resolve the final value. This allows nested data hierarchies where list elements each have their own internal property model.

## 6. Per-Branch Detail Blocks

### Block 1 — IF (null guard) `(key == null || subkey == null)` (L268)

> Null-safety guard: if either parameter is null, return null immediately. This prevents NullPointerException on subsequent string operations and provides a clean early exit for invalid requests.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` |

### Block 2 — EXEC (separator detection) (L272)

> Locates the position of the "/" separator in the key string. This is used later for list-type keys where the format is `"Category/index"` (e.g., `"初期設定コード/0"`). For non-list keys, the separator position is stored but not used in that branch.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/")` |

### Block 3 — IF/ELSE-IF chain (key routing)

#### Block 3.1 — IF `key.equals("コードタイプコード")` (L275) [-> "コードタイプコード" = "Code Type Code"]

> Branch for the code type code scalar property. The code type code identifies the division or category of a code in the system.

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | CALL | `getCd_div_cd_value()` — returns the current code type code value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` — subkey is "enable" |
| 4 | CALL | `getCd_div_cd_enabled()` — returns the cd_div_cd_enable getter value |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` — subkey is "state" |
| 6 | CALL | `getCd_div_cd_state()` — returns the state information |

#### Block 3.2 — ELSE-IF `key.equals("コードタイプ名称")` (L288) [-> "コードタイプ名称" = "Code Type Name"]

> Branch for the code type name scalar property. The code type name is the display name/description for the code division.

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | CALL | `getCd_div_nm_value()` — returns the current code type name value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | CALL | `getCd_div_nm_enabled()` — returns the cd_div_nm_enable getter value |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | CALL | `getCd_div_nm_state()` — returns the state information |

#### Block 3.3 — ELSE-IF `key.equals("選択インデックス")` (L301) [-> "選択インデックス" = "Selected Index"]

> Branch for the dropdown selection index property. This manages which option is currently selected in a selection component.

| # | Type | Code |
|---|------|------|
| 1 | IF | `subkey.equalsIgnoreCase("value")` |
| 2 | CALL | `getSelect_index_value()` — returns the currently selected index value |
| 3 | ELSE-IF | `subkey.equalsIgnoreCase("enable")` |
| 4 | CALL | `getSelect_index_enabled()` — returns the selection index enable flag |
| 5 | ELSE-IF | `subkey.equalsIgnoreCase("state")` |
| 6 | CALL | `getSelect_index_state()` — returns the selection index UI state |

#### Block 3.4 — ELSE-IF `key.equals("初期設定コード")` (L314) [-> "初期設定コード" = "Initial Setting Code"]

> Branch for the initial setting code LIST property (String type). The element ID is `default_cd_list`. The key is expected to contain a "/" separator followed by an index or `"*"` for count queries.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` — extracts the element portion after the separator |
| 2 | IF | `key.equals("*")` — wildcard: caller wants the list size |
| 3 | RETURN | `Integer.valueOf(default_cd_list.size())` — returns the number of elements |
| 4 | ELSE | `Integer tmpIndexInt = null` |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` — parses the index string to an integer |
| 6 | CATCH | `NumberFormatException` — key is not a numeric string, return null |
| 7 | IF | `tmpIndexInt == null` — parse produced null, return null |
| 8 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 9 | IF | `tmpIndex < 0 || tmpIndex >= default_cd_list.size()` — index out of bounds |
| 10 | RETURN | `null` |
| 11 | RETURN | `((X33VDataTypeStringBean)default_cd_list.get(tmpIndex)).loadModelData(subkey)` — delegate to the element bean |

#### Block 3.5 — ELSE-IF `key.equals("コードタイプコード値リスト")` (L344) [-> "コードタイプコード値リスト" = "Code Type Code Value List"]

> Branch for the code type code value LIST property (String type). The element ID is `cd_div_cd_list_list`. Follows the same index/size pattern as Block 3.4.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` — extract element portion |
| 2 | IF | `key.equals("*")` — return list size |
| 3 | RETURN | `Integer.valueOf(cd_div_cd_list_list.size())` |
| 4 | ELSE | `Integer tmpIndexInt = null` |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` — parse index |
| 6 | CATCH | `NumberFormatException` — return null |
| 7 | IF | `tmpIndexInt == null` — return null |
| 8 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 9 | IF | `tmpIndex < 0 || tmpIndex >= cd_div_cd_list_list.size()` — index out of bounds |
| 10 | RETURN | `null` |
| 11 | RETURN | `((X33VDataTypeStringBean)cd_div_cd_list_list.get(tmpIndex)).loadModelData(subkey)` — delegate to element |

#### Block 3.6 — ELSE-IF `key.equals("コードタイプ名称リスト")` (L374) [-> "コードタイプ名称リスト" = "Code Type Name List"]

> Branch for the code type name LIST property (String type). The element ID is `cd_div_nm_list_list`. Follows the same index/size pattern.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` — extract element portion |
| 2 | IF | `key.equals("*")` — return list size |
| 3 | RETURN | `Integer.valueOf(cd_div_nm_list_list.size())` |
| 4 | ELSE | `Integer tmpIndexInt = null` |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` — parse index |
| 6 | CATCH | `NumberFormatException` — return null |
| 7 | IF | `tmpIndexInt == null` — return null |
| 8 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 9 | IF | `tmpIndex < 0 || tmpIndex >= cd_div_nm_list_list.size()` — index out of bounds |
| 10 | RETURN | `null` |
| 11 | RETURN | `((X33VDataTypeStringBean)cd_div_nm_list_list.get(tmpIndex)).loadModelData(subkey)` — delegate to element |

#### Block 3.7 — ELSE-IF `key.equals("クレジット交換コード")` (L404) [-> "クレジット交換コード" = "Credit Exchange Code"]

> Branch for the credit exchange code LIST property (String type). The element ID is `credit_kokan_cd_list`. Follows the same index/size pattern.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` — extract element portion |
| 2 | IF | `key.equals("*")` — return list size |
| 3 | RETURN | `Integer.valueOf(credit_kokan_cd_list.size())` |
| 4 | ELSE | `Integer tmpIndexInt = null` |
| 5 | TRY | `tmpIndexInt = Integer.valueOf(key)` — parse index |
| 6 | CATCH | `NumberFormatException` — return null |
| 7 | IF | `tmpIndexInt == null` — return null |
| 8 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 9 | IF | `tmpIndex < 0 || tmpIndex >= credit_kokan_cd_list.size()` — index out of bounds |
| 10 | RETURN | `null` |
| 11 | RETURN | `((X33VDataTypeStringBean)credit_kokan_cd_list.get(tmpIndex)).loadModelData(subkey)` — delegate to element |

### Block 4 — RETURN (fallback null) `(no matching key)` (L424)

> No key matched any of the known categories. This is the implicit "else" branch for unrecognized or unexpected keys.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` — no matching property found |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `cd_div_cd` | Field | Code Division Code — internal classification code for grouping/sorting code types |
| `cd_div_nm` | Field | Code Division Name — the display name/description associated with the code division |
| `select_index` | Field | Selected Index — the currently selected option index in a dropdown/list component |
| `default_cd` | Field | Default/Initial Setting Code — a list of codes representing default or initial configuration values |
| `credit_kokan_cd` | Field | Credit Exchange Code — codes used for credit-related exchange operations |
| `default_cd_list` | Field | List of `X33VDataTypeStringBean` objects holding initial setting codes |
| `cd_div_cd_list_list` | Field | List of `X33VDataTypeStringBean` objects holding code type code values |
| `cd_div_nm_list_list` | Field | List of `X33VDataTypeStringBean` objects holding code type name values |
| `credit_kokan_cd_list` | Field | List of `X33VDataTypeStringBean` objects holding credit exchange codes |
| `X33VDataTypeStringBean` | Class | A view bean representing a single-string data type element within a list. Each element has its own `loadModelData` interface for sub-property access. |
| `loadModelData` | Method | A two-level key-based data access method that resolves a `(key, subkey)` pair to a data value. This is the standard data access pattern for view beans in this system. |
| `value` | Subkey | The actual data value of a property (e.g., the current code type code string) |
| `enable` | Subkey | The enabled/disabled state flag controlling whether a field is interactive |
| `state` | Subkey | The UI state flag (e.g., error state, hidden, disabled) of a display component |
| `*` | Subkey | Wildcard that requests the count/size of a list rather than a specific element |
| `key` | Parameter | Top-level item name identifying which data category to query |
| `subkey` | Parameter | Secondary attribute qualifier (value/enable/state or list index) within the selected category |
| `separaterPoint` | Field | Internal variable storing the position of "/" in a composite key string |
