# Business Logic — KKW01601SF01DBean.storeModelData() [142 LOC]

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

## 1. Role

### KKW01601SF01DBean.storeModelData()

This method serves as a **unified data-binding dispatcher** within a web view data bean (`KKW01601SF01DBean`). It accepts a composite `key` string and a `subkey` property name, then routes the incoming `in_value` to the correct setter on this bean or its child list elements. In business terms, it **binds model data to UI-ready bean properties** for code-type (classification codes) management — specifically the code type code (`cd_div_cd`), code type name (`cd_div_nm`), selection index (`select_index`), default setup codes (`default_cd`), and their respective list counterparts (`cd_div_cd_list`, `cd_div_nm_list`, `credit_kokan_cd`).

The method implements a **routing/dispatch pattern**: seven distinct key-based branches handle scalar fields (direct setter calls) and list-based fields (index-parsing with recursive delegation to child `X33VDataTypeStringBean` instances). Each scalar branch further dispatches by subkey — `value`, `enable`, and `state` — mapping to the corresponding value, enabled-flag, and state properties. This design allows screen controllers or AJAX handlers to set any property of this data bean through a single polymorphic method call, keyed by human-readable Japanese item names.

The `isSetAsString` parameter is declared but unused in the implementation, likely retained for future type-coercion support when Long-type items need String values set (as noted in the Javadoc). The method is a shared utility called by screen controllers across the `KKA15301SF` module to populate the view bean's model state, and it participates in no external CRUD operations itself — it is purely an in-memory data binding layer.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData key, subkey, in_value, isSetAsString"])
    CHECK_NULL[key, subkey null?]
    EARLY_RETURN([Return early])
    FIND_SLASH[FIND_SLASH <- key.indexOf /]
    BRANCH1[key equals コードタイプコード?]
    S1_VALUE[subkey equals value?]
    S1_ENABLE[subkey equals enable?]
    S1_STATE[subkey equals state?]
    SET_CD_CD_VALUE[setCd_div_cd_value in_value]
    SET_CD_CD_ENABLED[setCd_div_cd_enabled in_value]
    SET_CD_CD_STATE[setCd_div_cd_state in_value]

    BRANCH2[key equals コードタイプ名称?]
    S2_VALUE[subkey equals value?]
    S2_ENABLE[subkey equals enable?]
    S2_STATE[subkey equals state?]
    SET_CD_NM_VALUE[setCd_div_nm_value in_value]
    SET_CD_NM_ENABLED[setCd_div_nm_enabled in_value]
    SET_CD_NM_STATE[setCd_div_nm_state in_value]

    BRANCH3[key equals 選択インデックス?]
    S3_VALUE[subkey equals value?]
    S3_ENABLE[subkey equals enable?]
    S3_STATE[subkey equals state?]
    SET_SELECT_VALUE[setSelect_index_value in_value]
    SET_SELECT_ENABLED[setSelect_index_enabled in_value]
    SET_SELECT_STATE[setSelect_index_state in_value]

    BRANCH4[key equals 初期設定コード?]
    PARSE_INDEX_DEFAULT[parse index from key substring]
    DEFAULT_BOUNDS_CHECK[0 <= index < default_cd_list.size?]
    DEFAULT_RECURSE[default_cd_list index storeModelData subkey in_value]

    BRANCH5[key equals コードタイプコード値リスト?]
    PARSE_INDEX_CD_LIST[parse index from key substring]
    CD_LIST_BOUNDS[0 <= index < cd_div_cd_list_list.size?]
    CD_LIST_RECURSE[cd_div_cd_list_list index storeModelData subkey in_value]

    BRANCH6[key equals コードタイプ名称リスト?]
    PARSE_INDEX_NM_LIST[parse index from key substring]
    NM_LIST_BOUNDS[0 <= index < cd_div_nm_list_list.size?]
    NM_LIST_RECURSE[cd_div_nm_list_list index storeModelData subkey in_value]

    BRANCH7[key equals クレジット交換コード?]
    PARSE_INDEX_CREDIT[parse index from key substring]
    CREDIT_BOUNDS[0 <= index < credit_kokan_cd_list.size?]
    CREDIT_RECURSE[credit_kokan_cd_list index storeModelData subkey in_value]

    END_NODE(["Return void"])

    START --> CHECK_NULL -->|Yes| EARLY_RETURN --> END_NODE
    CHECK_NULL -->|No| FIND_SLASH --> BRANCH1
    BRANCH1 -->|Yes| S1_VALUE
    BRANCH1 -->|No| BRANCH2
    S1_VALUE -->|Yes| SET_CD_CD_VALUE --> END_NODE
    S1_VALUE -->|No| S1_ENABLE
    S1_ENABLE -->|Yes| SET_CD_CD_ENABLED --> END_NODE
    S1_ENABLE -->|No| S1_STATE
    S1_STATE -->|Yes| SET_CD_CD_STATE --> END_NODE
    S1_STATE -->|No| BRANCH2

    BRANCH2 -->|Yes| S2_VALUE
    BRANCH2 -->|No| BRANCH3
    S2_VALUE -->|Yes| SET_CD_NM_VALUE --> END_NODE
    S2_VALUE -->|No| S2_ENABLE
    S2_ENABLE -->|Yes| SET_CD_NM_ENABLED --> END_NODE
    S2_ENABLE -->|No| S2_STATE
    S2_STATE -->|Yes| SET_CD_NM_STATE --> END_NODE
    S2_STATE -->|No| BRANCH3

    BRANCH3 -->|Yes| S3_VALUE
    BRANCH3 -->|No| BRANCH4
    S3_VALUE -->|Yes| SET_SELECT_VALUE --> END_NODE
    S3_VALUE -->|No| S3_ENABLE
    S3_ENABLE -->|Yes| SET_SELECT_ENABLED --> END_NODE
    S3_ENABLE -->|No| S3_STATE
    S3_STATE -->|Yes| SET_SELECT_STATE --> END_NODE
    S3_STATE -->|No| BRANCH4

    BRANCH4 -->|Yes| PARSE_INDEX_DEFAULT
    BRANCH4 -->|No| BRANCH5
    PARSE_INDEX_DEFAULT --> DEFAULT_BOUNDS_CHECK
    DEFAULT_BOUNDS_CHECK -->|Valid| DEFAULT_RECURSE --> END_NODE
    DEFAULT_BOUNDS_CHECK -->|Invalid| END_NODE

    BRANCH5 -->|Yes| PARSE_INDEX_CD_LIST
    BRANCH5 -->|No| BRANCH6
    PARSE_INDEX_CD_LIST --> CD_LIST_BOUNDS
    CD_LIST_BOUNDS -->|Valid| CD_LIST_RECURSE --> END_NODE
    CD_LIST_BOUNDS -->|Invalid| END_NODE

    BRANCH6 -->|Yes| PARSE_INDEX_NM_LIST
    BRANCH6 -->|No| BRANCH7
    PARSE_INDEX_NM_LIST --> NM_LIST_BOUNDS
    NM_LIST_BOUNDS -->|Valid| NM_LIST_RECURSE --> END_NODE
    NM_LIST_BOUNDS -->|Invalid| END_NODE

    BRANCH7 -->|Yes| PARSE_INDEX_CREDIT
    BRANCH7 -->|No| END_NODE
    PARSE_INDEX_CREDIT --> CREDIT_BOUNDS
    CREDIT_BOUNDS -->|Valid| CREDIT_RECURSE --> END_NODE
    CREDIT_BOUNDS -->|Invalid| END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The item name (項目名) that identifies which property or list index to set. For scalar fields, it is a Japanese item name (e.g., `"コードタイプコード"` for code type code). For list-based fields, it carries a compound path like `"初期設定コード/0"` where the substring after `/` specifies the 0-based list index. |
| 2 | `subkey` | `String` | The property name within the target item. For scalar fields, it is `"value"`, `"enable"`, or `"state"` — controlling which of the three sub-properties (data value, enabled flag, display state) gets updated. For list fields, it is forwarded recursively to child bean `storeModelData` calls. |
| 3 | `in_value` | `Object` | The data to store. Cast to `(String)` for scalar values, `(Boolean)` for enable flags, and forwarded as-is to child beans for list elements. Represents UI-bound values such as code type codes, descriptive names, or configuration flags. |
| 4 | `isSetAsString` | `boolean` | Flag indicating whether a String-type value should be set into a Long-type item's Value property (Long型項目ValueプロパティへString型値の設定を行う場合true). **Note: this parameter is declared but not used in the current implementation.** |

**Instance fields / external state read:**

| Field | Type | Usage |
|-------|------|-------|
| `cd_div_cd_value` | `String` | Set via `setCd_div_cd_value` — the code type code data value |
| `cd_div_cd_enabled` | `Boolean` | Set via `setCd_div_cd_enabled` — whether the code type code field is enabled |
| `cd_div_cd_state` | `String` | Set via `setCd_div_cd_state` — display state of the code type code |
| `cd_div_nm_value` | `String` | Set via `setCd_div_nm_value` — the code type name data value |
| `cd_div_nm_enabled` | `Boolean` | Set via `setCd_div_nm_enabled` — whether the code type name field is enabled |
| `cd_div_nm_state` | `String` | Set via `setCd_div_nm_state` — display state of the code type name |
| `select_index_value` | `String` | Set via `setSelect_index_value` — the selected index value |
| `select_index_enabled` | `Boolean` | Set via `setSelect_index_enabled` — whether the select index is enabled |
| `select_index_state` | `String` | Set via `setSelect_index_state` — display state of the select index |
| `default_cd_list` | `ArrayList<X33VDataTypeStringBean>` | List of default setup code beans; accessed by parsed index for recursive `storeModelData` |
| `cd_div_cd_list_list` | `ArrayList<X33VDataTypeStringBean>` | List of code type code value beans; accessed by parsed index for recursive `storeModelData` |
| `cd_div_nm_list_list` | `ArrayList<X33VDataTypeStringBean>` | List of code type name beans; accessed by parsed index for recursive `storeModelData` |
| `credit_kokan_cd_list` | `ArrayList<X33VDataTypeStringBean>` | List of credit exchange code beans; accessed by parsed index for recursive `storeModelData` |

## 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` |
| - | `KKW01601SF01DBean.setCd_div_cd_enabled` | KKW01601SF01DBean | - | Calls `setCd_div_cd_enabled` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setCd_div_cd_state` | KKW01601SF01DBean | - | Calls `setCd_div_cd_state` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setCd_div_cd_value` | KKW01601SF01DBean | - | Calls `setCd_div_cd_value` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setCd_div_nm_enabled` | KKW01601SF01DBean | - | Calls `setCd_div_nm_enabled` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setCd_div_nm_state` | KKW01601SF01DBean | - | Calls `setCd_div_nm_state` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setCd_div_nm_value` | KKW01601SF01DBean | - | Calls `setCd_div_nm_value` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setSelect_index_enabled` | KKW01601SF01DBean | - | Calls `setSelect_index_enabled` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setSelect_index_state` | KKW01601SF01DBean | - | Calls `setSelect_index_state` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.setSelect_index_value` | KKW01601SF01DBean | - | Calls `setSelect_index_value` in `KKW01601SF01DBean` |
| - | `KKW01601SF01DBean.storeModelData` | KKW01601SF01DBean | - | Calls `storeModelData` in `KKW01601SF01DBean` (recursive) |

### Detailed analysis of called methods:

This method performs **no external CRUD operations** against database tables or remote services. All called methods are either:

| Method Call | Type | Business Description |
|-------------|------|---------------------|
| `setCd_div_cd_value(String)` | U (Update) | Sets the code type code data value on this bean |
| `setCd_div_cd_enabled(Boolean)` | U (Update) | Sets whether the code type code field is enabled |
| `setCd_div_cd_state(String)` | U (Update) | Sets the display state of the code type code |
| `setCd_div_nm_value(String)` | U (Update) | Sets the code type name data value on this bean |
| `setCd_div_nm_enabled(Boolean)` | U (Update) | Sets whether the code type name field is enabled |
| `setCd_div_nm_state(String)` | U (Update) | Sets the display state of the code type name |
| `setSelect_index_value(String)` | U (Update) | Sets the selected index value |
| `setSelect_index_enabled(Boolean)` | U (Update) | Sets whether the select index is enabled |
| `setSelect_index_state(String)` | U (Update) | Sets the display state of the select index |
| `default_cd_list.get(index).storeModelData(subkey, in_value)` | U (Update) | Recursively delegates to child `X33VDataTypeStringBean` for default setup code list |
| `cd_div_cd_list_list.get(index).storeModelData(subkey, in_value)` | U (Update) | Recursively delegates to child bean for code type code value list |
| `cd_div_nm_list_list.get(index).storeModelData(subkey, in_value)` | U (Update) | Recursively delegates to child bean for code type name list |
| `credit_kokan_cd_list.get(index).storeModelData(subkey, in_value)` | U (Update) | Recursively delegates to child bean for credit exchange code list |

All operations are **in-memory updates** to bean properties — no database access, no entity persistence, no SC/CBS calls.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | KKW01601SF01DBean | `KKW01601SF01DBean.storeModelData` -> `KKW01601SF01DBean.storeModelData` (recursive) | `storeModelData` [U] in-memory bean property |
| 2 | KKW01601SF01DBean | `KKW01601SF01DBean.storeModelData` -> `setCd_div_cd_value` | `setCd_div_cd_value` [U] `cd_div_cd` field |
| 3 | KKW01601SF01DBean | `KKW01601SF01DBean.storeModelData` -> `setCd_div_nm_value` | `setCd_div_nm_value` [U] `cd_div_nm` field |
| 4 | KKW01601SF01DBean | `KKW01601SF01DBean.storeModelData` -> `setSelect_index_value` | `setSelect_index_value` [U] `select_index` field |

**Terminal operations from this method:**

| Method | Type | Entity/Target | Description |
|--------|------|---------------|-------------|
| `storeModelData` | U | in-memory bean | Recursive self-call on child `X33VDataTypeStringBean` list items |
| `setCd_div_cd_value` | U | `cd_div_cd` field | Sets code type code value |
| `setCd_div_cd_enabled` | U | `cd_div_cd_enabled` field | Sets code type code enabled flag |
| `setCd_div_cd_state` | U | `cd_div_cd_state` field | Sets code type code state |
| `setCd_div_nm_value` | U | `cd_div_nm` field | Sets code type name value |
| `setCd_div_nm_enabled` | U | `cd_div_nm_enabled` field | Sets code type name enabled flag |
| `setCd_div_nm_state` | U | `cd_div_nm_state` field | Sets code type name state |
| `setSelect_index_value` | U | `select_index` field | Sets selection index value |
| `setSelect_index_enabled` | U | `select_index_enabled` field | Sets selection index enabled flag |
| `setSelect_index_state` | U | `select_index_state` field | Sets selection index state |

No screen/batch entry points found within 8 hops. Direct callers: methods within `KKW01601SF01DBean` itself.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null guard) (L464)

Null-check guard: if either `key` or `subkey` is null, processing stops immediately.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key == null || subkey == null` // 項目名・サブキーがnullの場合、処理を中止 (If item name or subkey is null, abort processing) |
| 2 | RETURN | `return;` // Early exit |

**Block 2** — SET (parse separator) (L468)

Extract the position of `/` in `key` for potential index parsing in list-based branches.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Find first slash in key |

**Block 3** — IF-ELSE-IF (コードタイプコード — scalar branch 1) (L471)

Route to code type code (`cd_div_cd`) properties. The item ID for this field is `cd_div_cd`.
Branches by subkey: `value` sets the data value, `enable` sets the enabled flag, `state` sets the display state.
Comment: データタイプがStringの項目"コードタイプコード"(項目ID:cd_div_cd) — Item whose data type is String "Code Type Code" (Item ID: cd_div_cd)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("コードタイプコード")` // コードタイプコード (Code Type Code) |
| 2 | IF-ELSE | `subkey.equalsIgnoreCase("value")` |
| 3 | CALL | `setCd_div_cd_value((String)in_value)` // Set the code type code data value |
| 4 | IF-ELSE | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、cd_div_cd_enabledのsetterを実行する (If subkey is "enable", execute cd_div_cd_enabled setter) |
| 5 | CALL | `setCd_div_cd_enabled((Boolean)in_value)` // Cast to Boolean and set enabled flag |
| 6 | IF-ELSE | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す (If subkey is "state", return status) |
| 7 | CALL | `setCd_div_cd_state((String)in_value)` // Cast to String and set state |

**Block 4** — IF-ELSE-IF (コードタイプ名称 — scalar branch 2) (L484)

Route to code type name (`cd_div_nm`) properties. Same three subkey dispatch: `value`, `enable`, `state`.
Comment: データタイプがStringの項目"コードタイプ名称"(項目ID:cd_div_nm) — Item whose data type is String "Code Type Name" (Item ID: cd_div_nm)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("コードタイプ名称")` // コードタイプ名称 (Code Type Name) |
| 2 | IF-ELSE | `subkey.equalsIgnoreCase("value")` |
| 3 | CALL | `setCd_div_nm_value((String)in_value)` // Set the code type name data value |
| 4 | IF-ELSE | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、cd_div_nm_enabledのsetterを実行する (If subkey is "enable", execute cd_div_nm_enabled setter) |
| 5 | CALL | `setCd_div_nm_enabled((Boolean)in_value)` // Cast to Boolean and set enabled flag |
| 6 | IF-ELSE | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す (If subkey is "state", return status) |
| 7 | CALL | `setCd_div_nm_state((String)in_value)` // Cast to String and set state |

**Block 5** — IF-ELSE-IF (選択インデックス — scalar branch 3) (L497)

Route to selection index (`select_index`) properties. Three subkey dispatch: `value`, `enable`, `state`.
Comment: データタイプがStringの項目"選択インデックス"(項目ID:select_index) — Item whose data type is String "Selection Index" (Item ID: select_index)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("選択インデックス")` // 選択インデックス (Selection Index) |
| 2 | IF-ELSE | `subkey.equalsIgnoreCase("value")` |
| 3 | CALL | `setSelect_index_value((String)in_value)` // Set the selection index value |
| 4 | IF-ELSE | `subkey.equalsIgnoreCase("enable")` // subkeyが"enable"の場合、select_index_enabledのsetterを実行する (If subkey is "enable", execute select_index_enabled setter) |
| 5 | CALL | `setSelect_index_enabled((Boolean)in_value)` // Cast to Boolean and set enabled flag |
| 6 | IF-ELSE | `subkey.equalsIgnoreCase("state")` // subkeyが"state"の場合、ステータスを返す (If subkey is "state", return status) |
| 7 | CALL | `setSelect_index_state((String)in_value)` // Cast to String and set state |

**Block 6** — IF-ELSE-IF (初期設定コード — list branch 1) (L510)

Handle the initial setup code list (`default_cd_list`). The key carries a compound path like `"初期設定コード/0"` — the substring after `/` is parsed as an integer index, validated against the list bounds, and the `storeModelData` method is recursively called on the child `X33VDataTypeStringBean` at that index.
Comment: 配列項目 "初期設定コード"(String型、項目ID:default_cd) — Array item "Initial Setup Code" (String type, Item ID: default_cd)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("初期設定コード")` // 初期設定コード (Initial Setup Code) |
| 2 | SET | `key = key.substring(separaterPoint + 1)` // keyの次の要素を取得 ("default_cd/0"から最初の"/"より後を取る) — Get next element after "/" |
| 3 | SET | `tmpIndexInt = null` // Initialize to null |
| 4 | TRY-CATCH | `tmpIndexInt = Integer.valueOf(key)` // インデックス値が数値文字列でない場合は、ここでnullを返す (If index value is not a numeric string, return null here) |
| 5 | CATCH | `catch (NumberFormatException e) { tmpIndexInt = null; }` // Index parsing failed |
| 6 | IF | `tmpIndexInt != null` // インデックス値が数値文字列の場合 (If index value is a numeric string) |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < default_cd_list.size()` // インデックス値がリスト個数-1以下の場合 (If index value is less than or equal to list size minus 1) |
| 9 | CALL | `((X33VDataTypeStringBean)default_cd_list.get(tmpIndex)).storeModelData(subkey, in_value)` // キャスト部分は、項目定義型に応じてX33VDataTypeStringBean, X33VDataTypeLongBean, X33VDataTypeBooleanBeanのうち1つを指定 (Depending on the item definition type, specify one of X33VDataTypeStringBean, X33VDataTypeLongBean, X33VDataTypeBooleanBean) |

**Block 7** — IF-ELSE-IF (コードタイプコード値リスト — list branch 2) (L537)

Handle the code type code value list (`cd_div_cd_list_list`). Same compound-path index parsing and recursive delegation pattern.
Comment: 配列項目 "コードタイプコード値リスト"(String型、項目ID:cd_div_cd_list) — Array item "Code Type Code Value List" (String type, Item ID: cd_div_cd_list)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("コードタイプコード値リスト")` // コードタイプコード値リスト (Code Type Code Value List) |
| 2 | SET | `key = key.substring(separaterPoint + 1)` // keyの次の要素を取得 ("cd_div_cd_list/0"から最初の"/"より後を取る) — Get next element after "/" |
| 3 | SET | `tmpIndexInt = null` |
| 4 | TRY-CATCH | `tmpIndexInt = Integer.valueOf(key)` // インデックス値が数値文字列でない場合は、ここでnullを返す |
| 5 | CATCH | `catch (NumberFormatException e) { tmpIndexInt = null; }` |
| 6 | IF | `tmpIndexInt != null` // インデックス値が数値文字列の場合 |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < cd_div_cd_list_list.size()` // インデックス値がリスト個数-1以下の場合 |
| 9 | CALL | `((X33VDataTypeStringBean)cd_div_cd_list_list.get(tmpIndex)).storeModelData(subkey, in_value)` // 同様のキャストディスパッチ — Same cast dispatch as block 6 |

**Block 8** — IF-ELSE-IF (コードタイプ名称リスト — list branch 3) (L564)

Handle the code type name list (`cd_div_nm_list_list`). Same compound-path index parsing and recursive delegation.
Comment: 配列項目 "コードタイプ名称リスト"(String型、項目ID:cd_div_nm_list) — Array item "Code Type Name List" (String type, Item ID: cd_div_nm_list)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("コードタイプ名称リスト")` // コードタイプ名称リスト (Code Type Name List) |
| 2 | SET | `key = key.substring(separaterPoint + 1)` // keyの次の要素を取得 ("cd_div_nm_list/0"から最初の"/"より後を取る) |
| 3 | SET | `tmpIndexInt = null` |
| 4 | TRY-CATCH | `tmpIndexInt = Integer.valueOf(key)` // インデックス値が数値文字列でない場合は、ここでnullを返す |
| 5 | CATCH | `catch (NumberFormatException e) { tmpIndexInt = null; }` |
| 6 | IF | `tmpIndexInt != null` // インデックス値が数値文字列の場合 |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < cd_div_nm_list_list.size()` // インデックス値がリスト個数-1以下の場合 |
| 9 | CALL | `((X33VDataTypeStringBean)cd_div_nm_list_list.get(tmpIndex)).storeModelData(subkey, in_value)` // 同様のキャストディスパッチ — Same cast dispatch |

**Block 9** — IF-ELSE-IF (クレジット交換コード — list branch 4) (L591)

Handle the credit exchange code list (`credit_kokan_cd_list`). Same compound-path index parsing and recursive delegation.
Comment: 配列項目 "クレジット交換コード"(String型、項目ID:credit_kokan_cd) — Array item "Credit Exchange Code" (String type, Item ID: credit_kokan_cd)

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("クレジット交換コード")` // クレジット交換コード (Credit Exchange Code) |
| 2 | SET | `key = key.substring(separaterPoint + 1)` // keyの次の要素を取得 ("credit_kokan_cd/0"から最初の"/"より後を取る) |
| 3 | SET | `tmpIndexInt = null` |
| 4 | TRY-CATCH | `tmpIndexInt = Integer.valueOf(key)` // インデックス値が数値文字列でない場合は、ここでnullを返す |
| 5 | CATCH | `catch (NumberFormatException e) { tmpIndexInt = null; }` |
| 6 | IF | `tmpIndexInt != null` // インデックス値が数値文字列の場合 |
| 7 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 8 | IF | `tmpIndex >= 0 && tmpIndex < credit_kokan_cd_list.size()` // インデックス値がリスト個数-1以下の場合 |
| 9 | CALL | `((X33VDataTypeStringBean)credit_kokan_cd_list.get(tmpIndex)).storeModelData(subkey, in_value)` // 同様のキャストディスパッチ — Same cast dispatch |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `コードタイプコード` | Field | Code Type Code — the classification code that categorizes a data type or entity |
| `cd_div_cd` | Field | Code Division Code — internal item ID for the code type code property |
| `コードタイプ名称` | Field | Code Type Name — the descriptive human-readable name for a code type classification |
| `cd_div_nm` | Field | Code Division Name — internal item ID for the code type name property |
| `選択インデックス` | Field | Selection Index — the selected index value for dropdown/list selection UI elements |
| `select_index` | Field | Internal item ID for the selection index property |
| `初期設定コード` | Field | Initial Setup Code — the code for initial/default configuration settings; stored in a list |
| `default_cd` | Field | Internal item ID for the default setup code list |
| `cd_div_cd_list` | Field | Internal item ID for the code type code value list |
| `cd_div_nm_list` | Field | Internal item ID for the code type name list |
| `クレジット交換コード` | Field | Credit Exchange Code — codes related to credit exchange/swap operations; stored in a list |
| `credit_kokan_cd` | Field | Internal item ID for the credit exchange code list |
| `X33VDataTypeStringBean` | Type | A view-layer data type bean for String-type fields; supports its own `storeModelData` for nested property binding |
| `X33VDataTypeLongBean` | Type | A view-layer data type bean for Long-type fields |
| `X33VDataTypeBooleanBean` | Type | A view-layer data type bean for Boolean-type fields |
| `value` | Subkey | Property subkey for the data value of a field |
| `enable` | Subkey | Property subkey for the enabled/disabled flag of a UI field |
| `state` | Subkey | Property subkey for the display state of a UI field |
| `isSetAsString` | Parameter | Flag for setting String values into Long-type item properties (not currently used in implementation) |
| KKW01601SF01DBean | Class | Web view data bean for the KKA15301SF module — manages UI-bound model data for code type classification |
| KKA15301SF | Module | Screen/module identifier in the telecom order management system |
