# Business Logic — KKW05501SF01DBean.loadModelData() [133 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW05501SF.KKW05501SF01DBean` |
| Layer | View (DBean / Data Bean — part of the X33V view framework) |
| Module | `KKW05501SF` (Package: `eo.web.webview.KKW05501SF`) |

## 1. Role

### KKW05501SF01DBean.loadModelData()

This method serves as the primary **data access dispatcher** for the KKW05501SF screen's data bean. It implements a **key-based routing pattern** that allows the presentation layer (JSF pages, JSP templates, or framework data binding) to retrieve typed model data through a unified string-key interface. The method supports seven distinct data categories: code type code (cd_div_cd) with value/enable/state attributes, code type name (cd_div_nm) with the same three attributes, select index with the same three attributes, and three indexed list types — initial setting code, code type code value list, and code type name list — each supporting both bulk-size queries (via asterisk wildcard) and individual element access. The method's role in the larger system is that of a **data bridge** between the view framework's data-binding protocol and the bean's internal properties, enabling template-driven data retrieval without requiring callers to know the internal field structure. It delegates element-level data loading to child X33VDataTypeStringBean instances within each list, establishing a hierarchical data model.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START([\"loadModelData key, subkey\"])
    CHECK_NULL{\"key == null or subkey == null?\"}
    RETURN_NULL_1[\"Return null\"]
    FIND_SLASH[\"Find '/' position in key\"]

    CHECK_CODE_TYPE{\"key equals \"コードタイプコード\"\"}
    CHECK_SUB_CD_VALUE{\"subkey equalsIgnoreCase \"value\"\"}
    CHECK_SUB_CD_ENABLE{\"subkey equalsIgnoreCase \"enable\"\"}
    CHECK_SUB_CD_STATE{\"subkey equalsIgnoreCase \"state\"\"}

    CHECK_CD_TYPE{\"key equals \"コードタイプ名称\"\"}
    CHECK_SUB_NM_VALUE{\"subkey equalsIgnoreCase \"value\"\"}
    CHECK_SUB_NM_ENABLE{\"subkey equalsIgnoreCase \"enable\"\"}
    CHECK_SUB_NM_STATE{\"subkey equalsIgnoreCase \"state\"\"}

    CHECK_IDX_TYPE{\"key equals \"選択インデックス\"\"}
    CHECK_SUB_IDX_VALUE{\"subkey equalsIgnoreCase \"value\"\"}
    CHECK_SUB_IDX_ENABLE{\"subkey equalsIgnoreCase \"enable\"\"}
    CHECK_SUB_IDX_STATE{\"subkey equalsIgnoreCase \"state\"\"}

    CHECK_INIT_KEY{\"key equals \"初期設定コード\"\"}
    SUBSTRING_KEY_INIT[\"key = key.substring(separaterPoint + 1)\"]
    CHECK_ASTERISK_INIT{\"key equals \"*\"\"}
    PARSE_INIT_INDEX[\"tmpIndexInt = Integer.valueOf key\"]
    CATCH_INIT[\"catch NumberFormatException\"]
    CHECK_INIT_RANGE{\"tmpIndex valid?\"}
    CAST_INIT[\"cast to X33VDataTypeStringBean and call loadModelData subkey\"]

    CHECK_CODE_LIST{\"key equals \"コードタイプコード値リスト\"\"}
    SUBSTRING_KEY_CL[\"key = key.substring(separaterPoint + 1)\"]
    CHECK_ASTERISK_CL{\"key equals \"*\"\"}
    PARSE_CL_INDEX[\"tmpIndexInt = Integer.valueOf key\"]
    CATCH_CL[\"catch NumberFormatException\"]
    CHECK_CL_RANGE{\"tmpIndex valid?\"}
    CAST_CL[\"cast to X33VDataTypeStringBean and call loadModelData subkey\"]

    CHECK_NM_LIST{\"key equals \"コードタイプ名称リスト\"\"}
    SUBSTRING_KEY_NM[\"key = key.substring(separaterPoint + 1)\"]
    CHECK_ASTERISK_NM{\"key equals \"*\"\"}
    PARSE_NM_INDEX[\"tmpIndexInt = Integer.valueOf key\"]
    CATCH_NM[\"catch NumberFormatException\"]
    CHECK_NM_RANGE{\"tmpIndex valid?\"}
    CAST_NM[\"cast to X33VDataTypeStringBean and call loadModelData subkey\"]

    RETURN_NOT_FOUND[\"Return null\"]
    END((\"End\"))

    START --> CHECK_NULL
    CHECK_NULL -->|true| RETURN_NULL_1
    CHECK_NULL -->|false| FIND_SLASH
    RETURN_NULL_1 --> END
    FIND_SLASH --> CHECK_CODE_TYPE

    CHECK_CODE_TYPE -->|true| CHECK_SUB_CD_VALUE
    CHECK_CODE_TYPE -->|false| CHECK_CD_TYPE
    CHECK_SUB_CD_VALUE -->|true| GET_CD_VALUE[\"getCd_div_cd_value\"]
    CHECK_SUB_CD_VALUE -->|false| CHECK_SUB_CD_ENABLE
    CHECK_SUB_CD_ENABLE -->|true| GET_CD_ENABLED[\"getCd_div_cd_enabled\"]
    CHECK_SUB_CD_ENABLE -->|false| CHECK_SUB_CD_STATE
    CHECK_SUB_CD_STATE -->|true| GET_CD_STATE[\"getCd_div_cd_state\"]
    CHECK_SUB_CD_STATE -->|false| END
    GET_CD_VALUE --> END
    GET_CD_ENABLED --> END
    GET_CD_STATE --> END

    CHECK_CD_TYPE -->|true| CHECK_SUB_NM_VALUE
    CHECK_CD_TYPE -->|false| CHECK_IDX_TYPE
    CHECK_SUB_NM_VALUE -->|true| GET_NM_VALUE[\"getCd_div_nm_value\"]
    CHECK_SUB_NM_VALUE -->|false| CHECK_SUB_NM_ENABLE
    CHECK_SUB_NM_ENABLE -->|true| GET_NM_ENABLED[\"getCd_div_nm_enabled\"]
    CHECK_SUB_NM_ENABLE -->|false| CHECK_SUB_NM_STATE
    CHECK_SUB_NM_STATE -->|true| GET_NM_STATE[\"getCd_div_nm_state\"]
    CHECK_SUB_NM_STATE -->|false| END
    GET_NM_VALUE --> END
    GET_NM_ENABLED --> END
    GET_NM_STATE --> END

    CHECK_IDX_TYPE -->|true| CHECK_SUB_IDX_VALUE
    CHECK_IDX_TYPE -->|false| CHECK_INIT_KEY
    CHECK_SUB_IDX_VALUE -->|true| GET_IDX_VALUE[\"getSelect_index_value\"]
    CHECK_SUB_IDX_VALUE -->|false| CHECK_SUB_IDX_ENABLE
    CHECK_SUB_IDX_ENABLE -->|true| GET_IDX_ENABLED[\"getSelect_index_enabled\"]
    CHECK_SUB_IDX_ENABLE -->|false| CHECK_SUB_IDX_STATE
    CHECK_SUB_IDX_STATE -->|true| GET_IDX_STATE[\"getSelect_index_state\"]
    CHECK_SUB_IDX_STATE -->|false| END
    GET_IDX_VALUE --> END
    GET_IDX_ENABLED --> END
    GET_IDX_STATE --> END

    CHECK_INIT_KEY -->|true| SUBSTRING_KEY_INIT
    CHECK_INIT_KEY -->|false| CHECK_CODE_LIST
    SUBSTRING_KEY_INIT --> CHECK_ASTERISK_INIT
    CHECK_ASTERISK_INIT -->|true| GET_INIT_SIZE[\"return default_cd_list.size\"]
    CHECK_ASTERISK_INIT -->|false| PARSE_INIT_INDEX
    GET_INIT_SIZE --> END
    PARSE_INIT_INDEX --> CATCH_INIT
    CATCH_INIT -->|true| RETURN_INIT_NULL[\"Return null\"]
    CATCH_INIT -->|false| CHECK_INIT_RANGE
    RETURN_INIT_NULL --> END
    CHECK_INIT_RANGE -->|true| RETURN_INIT_NULL_2[\"Return null\"]
    CHECK_INIT_RANGE -->|false| CAST_INIT
    RETURN_INIT_NULL_2 --> END
    CAST_INIT --> END

    CHECK_CODE_LIST -->|true| SUBSTRING_KEY_CL
    CHECK_CODE_LIST -->|false| CHECK_NM_LIST
    SUBSTRING_KEY_CL --> CHECK_ASTERISK_CL
    CHECK_ASTERISK_CL -->|true| GET_CL_SIZE[\"return cd_div_cd_list_list.size\"]
    CHECK_ASTERISK_CL -->|false| PARSE_CL_INDEX
    GET_CL_SIZE --> END
    PARSE_CL_INDEX --> CATCH_CL
    CATCH_CL -->|true| RETURN_CL_NULL[\"Return null\"]
    CATCH_CL -->|false| CHECK_CL_RANGE
    RETURN_CL_NULL --> END
    CHECK_CL_RANGE -->|true| RETURN_CL_NULL_2[\"Return null\"]
    CHECK_CL_RANGE -->|false| CAST_CL
    RETURN_CL_NULL_2 --> END
    CAST_CL --> END

    CHECK_NM_LIST -->|true| SUBSTRING_KEY_NM
    CHECK_NM_LIST -->|false| RETURN_NOT_FOUND
    SUBSTRING_KEY_NM --> CHECK_ASTERISK_NM
    CHECK_ASTERISK_NM -->|true| GET_NM_SIZE[\"return cd_div_nm_list_list.size\"]
    CHECK_ASTERISK_NM -->|false| PARSE_NM_INDEX
    GET_NM_SIZE --> END
    PARSE_NM_INDEX --> CATCH_NM
    CATCH_NM -->|true| RETURN_NM_NULL[\"Return null\"]
    CATCH_NM -->|false| CHECK_NM_RANGE
    RETURN_NM_NULL --> END
    CHECK_NM_RANGE -->|true| RETURN_NM_NULL_2[\"Return null\"]
    CHECK_NM_RANGE -->|false| CAST_NM
    RETURN_NM_NULL_2 --> END
    CAST_NM --> END
    RETURN_NOT_FOUND --> END
```

**Branch Summary:**

| # | Branch | Key Value | Subkey Matching | Action |
|---|--------|-----------|-----------------|--------|
| 1 | Code Type Code | `"コードタイプコード"` | `value` / `enable` / `state` | Delegate to `cd_div_cd_*` getter |
| 2 | Code Type Name | `"コードタイプ名称"` | `value` / `enable` / `state` | Delegate to `cd_div_nm_*` getter |
| 3 | Select Index | `"選択インデックス"` | `value` / `enable` / `state` | Delegate to `select_index_*` getter |
| 4 | Initial Setting Code | `"初期設定コード"` | Index or `"*"` | Access `default_cd_list` by index |
| 5 | Code Type Code Value List | `"コードタイプコード値リスト"` | Index or `"*"` | Access `cd_div_cd_list_list` by index |
| 6 | Code Type Name List | `"コードタイプ名称リスト"` | Index or `"*"` | Access `cd_div_nm_list_list` by index |
| 7 | No Match | Any other key | Any | Return `null` |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The data item identifier that selects which property category and element to retrieve. It serves as a route key mapping to one of seven internal data structures. Values include hardcoded Japanese strings such as `"コードタイプコード"` (Code Type Code), `"コードタイプ名称"` (Code Type Name), `"選択インデックス"` (Select Index), `"初期設定コード"` (Initial Setting Code), and `"コードタイプコード値リスト"` / `"コードタイプ名称リスト"` (list variants). For list-type keys, the portion after `/` is used as an index or `"*"` for count queries. |
| 2 | `subkey` | `String` | The attribute selector within a given key's category. For simple properties (categories 1-3), it specifies which attribute to return: `value` (the data value), `enable` (the editability flag), or `state` (the validation/display state). For list-type categories (4-6), it is forwarded to the child bean's `loadModelData` to access that element's internal properties. Case-insensitive comparison is used for the `value`/`enable`/`state` attributes. |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `cd_div_cd_value` | `String` | Code type code value — the current value of the code type code field |
| `cd_div_cd_enabled` | `Boolean` | Code type code enabled flag — whether the code type code field is editable |
| `cd_div_cd_state` | `String` | Code type code state — the validation/display state of the code type code |
| `cd_div_nm_value` | `String` | Code type name value — the current value of the code type name field |
| `cd_div_nm_enabled` | `Boolean` | Code type name enabled flag — whether the code type name field is editable |
| `cd_div_nm_state` | `String` | Code type name state — the validation/display state of the code type name |
| `select_index_value` | `String` | Select index value — the selected index value |
| `select_index_enabled` | `Boolean` | Select index enabled flag — whether the select index field is editable |
| `select_index_state` | `String` | Select index state — the validation/display state of the select index |
| `default_cd_list` | `X33VDataTypeList` | List of initial setting code items — contains `X33VDataTypeStringBean` elements for dynamically managed initial setting codes |
| `cd_div_cd_list_list` | `X33VDataTypeList` | List of code type code values — contains `X33VDataTypeStringBean` elements for dynamically managed code type code entries |
| `cd_div_nm_list_list` | `X33VDataTypeList` | List of code type name values — contains `X33VDataTypeStringBean` elements for dynamically managed code type name entries |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` in `JKKAdEditCC` |
| R | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` in `JKKAdEdit` |
| R | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` in `JKKTelnoInfoAddMapperCC` |
| R | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` in `JDKejbStringEdit` |
| R | `KKW05501SF01DBean.getCd_div_cd_enabled` | KKW05501SF01DBean | - | Calls `getCd_div_cd_enabled` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getCd_div_cd_state` | KKW05501SF01DBean | - | Calls `getCd_div_cd_state` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getCd_div_cd_value` | KKW05501SF01DBean | - | Calls `getCd_div_cd_value` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getCd_div_nm_enabled` | KKW05501SF01DBean | - | Calls `getCd_div_nm_enabled` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getCd_div_nm_state` | KKW05501SF01DBean | - | Calls `getCd_div_nm_state` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getCd_div_nm_value` | KKW05501SF01DBean | - | Calls `getCd_div_nm_value` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getSelect_index_enabled` | KKW05501SF01DBean | - | Calls `getSelect_index_enabled` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getSelect_index_state` | KKW05501SF01DBean | - | Calls `getSelect_index_state` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.getSelect_index_value` | KKW05501SF01DBean | - | Calls `getSelect_index_value` in `KKW05501SF01DBean` |
| R | `KKW05501SF01DBean.loadModelData` | KKW05501SF01DBean | - | Calls `loadModelData` in `KKW05501SF01DBean` |

### Detailed CRUD Analysis:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW05501SF01DBean.getCd_div_cd_value` | KKW05501SF01DBean | - | Reads the code type code value from the bean's `cd_div_cd_value` field |
| R | `KKW05501SF01DBean.getCd_div_cd_enabled` | KKW05501SF01DBean | - | Reads the editability flag for the code type code field |
| R | `KKW05501SF01DBean.getCd_div_cd_state` | KKW05501SF01DBean | - | Reads the validation/display state of the code type code field |
| R | `KKW05501SF01DBean.getCd_div_nm_value` | KKW05501SF01DBean | - | Reads the code type name value from the bean's `cd_div_nm_value` field |
| R | `KKW05501SF01DBean.getCd_div_nm_enabled` | KKW05501SF01DBean | - | Reads the editability flag for the code type name field |
| R | `KKW05501SF01DBean.getCd_div_nm_state` | KKW05501SF01DBean | - | Reads the validation/display state of the code type name field |
| R | `KKW05501SF01DBean.getSelect_index_value` | KKW05501SF01DBean | - | Reads the selected index value from the bean's `select_index_value` field |
| R | `KKW05501SF01DBean.getSelect_index_enabled` | KKW05501SF01DBean | - | Reads the editability flag for the select index field |
| R | `KKW05501SF01DBean.getSelect_index_state` | KKW05501SF01DBean | - | Reads the validation/display state of the select index field |
| R | `KKW05501SF01DBean.loadModelData` | KKW05501SF01DBean | - | Delegates to child `X33VDataTypeStringBean` within a list to load the requested subkey data |
| R | `String.indexOf` | java.lang.String | - | Locates the `/` delimiter position within the key string |
| R | `String.substring` | java.lang.String | - | Extracts the portion after `/` for list-type key routing |
| R | `String.equalsIgnoreCase` | java.lang.String | - | Performs case-insensitive comparison of the subkey attribute name |
| R | `List.size` | java.util.List | - | Returns the element count when `*` is passed as the index (bulk-size query) |
| R | `Integer.valueOf` | java.lang | - | Parses the key suffix as an integer index for list element access |

**Note:** This method performs exclusively **read (R)** operations. It is a pure data accessor — no insert, update, or delete operations occur. It reads from bean properties (in-memory fields) and delegates reads to child beans within the list structures. There are no SC (Service Component) calls, CBS (Common Business Service) invocations, or direct database accesses.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW05501SF (KKW05501SF01DBean overload) | `KKW05501SF01DBean.loadModelData(gamenId, key, subkey)` -> `loadModelData(key, subkey)` | `getCd_div_cd_value [R] cd_div_cd_value`, `getCd_div_cd_enabled [R] cd_div_cd_enabled`, `getCd_div_cd_state [R] cd_div_cd_state`, `getCd_div_nm_value [R] cd_div_nm_value`, `getCd_div_nm_enabled [R] cd_div_nm_enabled`, `getCd_div_nm_state [R] cd_div_nm_state`, `getSelect_index_value [R] select_index_value`, `getSelect_index_enabled [R] select_index_enabled`, `getSelect_index_state [R] select_index_state`, `child loadModelData [R] X33VDataTypeStringBean` |
| 2 | Screen:KKW05501SF (KKW05501SFBean) | `KKW05501SFBean.loadModelData(gamenId, key, subkey)` -> `KKW05501SF01DBean.loadModelData(key, subkey)` | Same as above — reads bean properties and delegates to child beans |

**Caller Details:**
- **KKW05501SF01DBean**: The same class has an overloaded `loadModelData(String gamenId, String key, String subkey)` method (at line 5056 of KKW05501SFBean.java context) that delegates to this two-parameter variant by passing through `key` and `subkey`.
- **KKW05501SFBean**: The parent bean class (line 5056) calls `KKW05501SF01DBean.loadModelData(key, subkey)` to delegate data loading for this specific sub-bean instance.

## 6. Per-Branch Detail Blocks

### Block 1 — IF (null check) (L243)

Guard clause: returns null if either key or subkey is null.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key == null || subkey == null)` // Return null if either parameter is null |
| 2 | RETURN | `return null;` |

### Block 2 — EXEC (compute slash position) (L248)

Extract the position of the `/` separator within the key string for later use by list-type key branches.

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/");` // Find position of '/' in key |

### Block 3 — ELSE-IF (Code Type Code — コードタイプコード) (L251)

Handle the code type code data type. Key: `"コードタイプコード"` (Code Type Code).
Subkey resolves three attributes: `value` (actual code value), `enable` (editability flag), `state` (display/validation state).

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("コードタイプコード"))` // Data type: Code Type Code |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` // Retrieve the actual code value |
| 3 | RETURN | `return getCd_div_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkey equals "enable" — return cd_div_cd_enabled getter result |
| 5 | RETURN | `return getCd_div_cd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkey equals "state" — return status |
| 7 | RETURN | `return getCd_div_cd_state();` |

### Block 4 — ELSE-IF (Code Type Name — コードタイプ名称) (L262)

Handle the code type name data type. Key: `"コードタイプ名称"` (Code Type Name).
Subkey resolves three attributes: `value`, `enable`, `state`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("コードタイプ名称"))` // Data type: Code Type Name |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` // Retrieve the actual code name value |
| 3 | RETURN | `return getCd_div_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkey equals "enable" — return cd_div_nm_enabled getter result |
| 5 | RETURN | `return getCd_div_nm_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkey equals "state" — return status |
| 7 | RETURN | `return getCd_div_nm_state();` |

### Block 5 — ELSE-IF (Select Index — 選択インデックス) (L273)

Handle the select index data type. Key: `"選択インデックス"` (Select Index).
Subkey resolves three attributes: `value`, `enable`, `state`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("選択インデックス"))` // Data type: Select Index |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` // Retrieve the select index value |
| 3 | RETURN | `return getSelect_index_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // subkey equals "enable" — return select_index_enable getter result |
| 5 | RETURN | `return getSelect_index_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // subkey equals "state" — return status |
| 7 | RETURN | `return getSelect_index_state();` |

### Block 6 — ELSE-IF (Initial Setting Code — 初期設定コード) (L284)

Handle the initial setting code list data type. Key: `"初期設定コード"` (Initial Setting Code).
The key is split on `/` — the portion after `/` is the index (or `*` for count).
Accesses the `default_cd_list` which is an `X33VDataTypeList` of `X33VDataTypeStringBean` elements.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("初期設定コード"))` // List item: Initial Setting Code |
| 2 | EXEC | `key = key.substring(separaterPoint + 1);` // Extract the element after '/' |
| 3 | IF | `if (key.equals("*"))` // Wildcard — return list element count |
| 4 | RETURN | `return Integer.valueOf(default_cd_list.size());` |
| 5 | SET | `Integer tmpIndexInt = null;` // Temporary holder for parsed index |
| 6 | TRY | `tmpIndexInt = Integer.valueOf(key);` // Parse key as integer index |
| 7 | CATCH | `catch (NumberFormatException e)` // Key is not a valid numeric string |
| 8 | RETURN | `return null;` |
| 9 | IF | `if (tmpIndexInt == null)` // Parsed value is null (should not happen after try) |
| 10 | RETURN | `return null;` |
| 11 | SET | `int tmpIndex = tmpIndexInt.intValue();` // Unbox to int |
| 12 | IF | `if (tmpIndex < 0 || tmpIndex >= default_cd_list.size())` // Index out of range — return null |
| 13 | RETURN | `return null;` |
| 14 | RETURN | `return ((X33VDataTypeStringBean) default_cd_list.get(tmpIndex)).loadModelData(subkey);` // Cast to child bean and delegate |

### Block 7 — ELSE-IF (Code Type Code Value List — コードタイプコード値リスト) (L304)

Handle the code type code value list. Key: `"コードタイプコード値リスト"` (Code Type Code Value List).
Same structure as Block 6 but accesses `cd_div_cd_list_list`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("コードタイプコード値リスト"))` // List item: Code Type Code Value List |
| 2 | EXEC | `key = key.substring(separaterPoint + 1);` // Extract the element after '/' |
| 3 | IF | `if (key.equals("*"))` // Wildcard — return list element count |
| 4 | RETURN | `return Integer.valueOf(cd_div_cd_list_list.size());` |
| 5 | SET | `Integer tmpIndexInt = null;` // Temporary holder for parsed index |
| 6 | TRY | `tmpIndexInt = Integer.valueOf(key);` // Parse key as integer index |
| 7 | CATCH | `catch (NumberFormatException e)` // Key is not a valid numeric string |
| 8 | RETURN | `return null;` |
| 9 | IF | `if (tmpIndexInt == null)` // Parsed value is null |
| 10 | RETURN | `return null;` |
| 11 | SET | `int tmpIndex = tmpIndexInt.intValue();` // Unbox to int |
| 12 | IF | `if (tmpIndex < 0 || tmpIndex >= cd_div_cd_list_list.size())` // Index out of range — return null |
| 13 | RETURN | `return null;` |
| 14 | RETURN | `return ((X33VDataTypeStringBean) cd_div_cd_list_list.get(tmpIndex)).loadModelData(subkey);` // Cast and delegate |

### Block 8 — ELSE-IF (Code Type Name List — コードタイプ名称リスト) (L331)

Handle the code type name value list. Key: `"コードタイプ名称リスト"` (Code Type Name List).
Same structure as Block 6 and Block 7 but accesses `cd_div_nm_list_list`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("コードタイプ名称リスト"))` // List item: Code Type Name List |
| 2 | EXEC | `key = key.substring(separaterPoint + 1);` // Extract the element after '/' |
| 3 | IF | `if (key.equals("*"))` // Wildcard — return list element count |
| 4 | RETURN | `return Integer.valueOf(cd_div_nm_list_list.size());` |
| 5 | SET | `Integer tmpIndexInt = null;` // Temporary holder for parsed index |
| 6 | TRY | `tmpIndexInt = Integer.valueOf(key);` // Parse key as integer index |
| 7 | CATCH | `catch (NumberFormatException e)` // Key is not a valid numeric string |
| 8 | RETURN | `return null;` |
| 9 | IF | `if (tmpIndexInt == null)` // Parsed value is null |
| 10 | RETURN | `return null;` |
| 11 | SET | `int tmpIndex = tmpIndexInt.intValue();` // Unbox to int |
| 12 | IF | `if (tmpIndex < 0 || tmpIndex >= cd_div_nm_list_list.size())` // Index out of range — return null |
| 13 | RETURN | `return null;` |
| 14 | RETURN | `return ((X33VDataTypeStringBean) cd_div_nm_list_list.get(tmpIndex)).loadModelData(subkey);` // Cast and delegate |

### Block 9 — ELSE (No Match) (L373)

No key matched any of the seven categories. Return null as the default.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null;` // No matching property found — return null |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `コードタイプコード` | Japanese Field | Code Type Code — identifier for a code type category in the system |
| `コードタイプ名称` | Japanese Field | Code Type Name — human-readable name associated with a code type |
| `選択インデックス` | Japanese Field | Select Index — index value for a selectable field |
| `初期設定コード` | Japanese Field | Initial Setting Code — pre-configured code values for initial screen state |
| `コードタイプコード値リスト` | Japanese Field | Code Type Code Value List — dynamic list of code type code value entries |
| `コードタイプ名称リスト` | Japanese Field | Code Type Name List — dynamic list of code type name entries |
| `cd_div_cd_value` | Field | Code division code value — the actual stored value of the code type code field |
| `cd_div_cd_enabled` | Field | Code division code enabled — boolean flag indicating if the code type code field is editable |
| `cd_div_cd_state` | Field | Code division code state — validation or display state of the code type code field |
| `cd_div_nm_value` | Field | Code division name value — the actual stored value of the code type name field |
| `cd_div_nm_enabled` | Field | Code division name enabled — boolean flag indicating if the code type name field is editable |
| `cd_div_nm_state` | Field | Code division name state — validation or display state of the code type name field |
| `select_index_value` | Field | Select index value — the currently selected index |
| `select_index_enabled` | Field | Select index enabled — boolean flag indicating if the select index field is editable |
| `select_index_state` | Field | Select index state — validation or display state of the select index field |
| `default_cd_list` | Field | Default code list — dynamically managed list of initial setting code data beans |
| `cd_div_cd_list_list` | Field | Code division code list list — dynamically managed list of code type code value data beans |
| `cd_div_nm_list_list` | Field | Code division name list list — dynamically managed list of code type name value data beans |
| `X33VDataTypeStringBean` | Class | Framework data type bean — generic string-typed data container used within list data structures |
| `X33VDataTypeList` | Class | Framework list data type — dynamic list container for typed data beans in the X33V view framework |
| `X33VDataTypeBeanInterface` | Interface | X33V data type bean interface — contract for beans that can load/unload model data via key-subkey |
| `X33VListedBeanInterface` | Interface | X33V listed bean interface — contract for beans containing listed/repeated data items |
| `subkey` parameter attribute: value | Business attribute | The actual data value of a field (e.g., the code itself, the name itself) |
| `subkey` parameter attribute: enable | Business attribute | Whether a field is currently editable/enabled on the screen |
| `subkey` parameter attribute: state | Business attribute | The current validation, error, or display state of a field (e.g., required, warning, error) |
| `*` (asterisk) | Convention | Special value meaning "return the count of elements" rather than a specific element |
| `key` | Concept | The route key that selects which internal property category to access |
| `separaterPoint` | Variable | Position of the `/` character in the key string, used to split list-type keys from their index |
| `tmpIndex` | Variable | Parsed integer index used to access a specific element within a list |
| `X33V` | Framework | Fujitsu Futurity X33V — the web application framework providing the bean infrastructure |
| `KKW05501SF` | Module | Screen module identifier — a K-Opticom screen module for service contract management |
| `DBean` | Suffix | Data Bean — the bean class responsible for data binding and data access for a screen |

---
