# Business Logic — KKW00401SF01DBean.storeModelData() [109 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00401SF.KKW00401SF01DBean` |
| Layer | Utility / Data Binding Bean (Presentation Tier) |
| Module | `KKW00401SF` (Package: `eo.web.webview.KKW00401SF`) |

## 1. Role

### KKW00401SF01DBean.storeModelData()

This method is a **unified model-data binding router** that populates the bean's property state from a keyed, subkeyed value tuple. It acts as a centralized dispatcher for data received from the presentation layer (e.g., a web view or form submission), mapping human-readable Japanese item names and their associated subkey descriptors to the bean's internal setter methods. The method supports two categories of operations: **scalar property assignment** (setting individual attributes such as code type code, code type name, selected index, and default code — each with `value`, `enable`, and `state` subkeys) and **array-bound item assignment** (setting data on individual entries within typed list collections, such as the Code Type Code Value List and Code Type Name List). 

The design follows a **key-based dispatch pattern**: the `key` parameter identifies which logical item is being updated, while the `subkey` parameter determines the property facet (value, enabled flag, or state) to modify. For scalar items, this maps directly to setter methods on `KKW00401SF01DBean` itself. For list items, the method performs index parsing, bounds validation, type casting, and then delegates recursively to the list element's own `storeModelData()` method. This pattern enables a generic, reflection-free data binding mechanism that is both type-safe and extensible without requiring per-field setter logic at the call site.

In the larger system, this method serves as the **primary data ingestion point** for this data bean. Screen controllers or form handlers invoke it with structured key/subkey/value tuples rather than calling individual setters, which decouples the presentation layer from the bean's internal property naming conventions.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData key, subkey, in_value, isSetAsString"])

    START --> CHECK_NULL["Check: key == null || subkey == null"]
    CHECK_NULL --> |Yes| RETURN["Return (early exit)"]
    CHECK_NULL --> |No| FIND_SEP["Find separator index in key (indexOf '/')]"]

    FIND_SEP --> BRANCH1["IF: key equals 'コードタイプコード' (Code Type Code)"]

    BRANCH1 --> |Yes| B1_SUB["Subkey branch"]
    BRANCH1 --> |No| BRANCH2["IF: key equals 'コードタイプ名称' (Code Type Name)"]

    BRANCH2 --> |Yes| B2_SUB["Subkey branch"]
    BRANCH2 --> |No| BRANCH3["IF: key equals '選択インデックス' (Selected Index)"]

    BRANCH3 --> |Yes| B3_SUB["Subkey branch"]
    BRANCH3 --> |No| BRANCH4["IF: key equals '初期設定コード' (Default Code)"]

    BRANCH4 --> |Yes| B4_SUB["Subkey branch"]
    BRANCH4 --> |No| BRANCH5["IF: key equals 'コードタイプコード値リスト' (Code Type Code Value List)"]

    BRANCH5 --> |Yes| B5_PROCESS["Parse index from key"]
    BRANCH5 --> |No| BRANCH6["IF: key equals 'コードタイプ名称リスト' (Code Type Name List)"]

    BRANCH6 --> |Yes| B6_PROCESS["Parse index from key"]
    BRANCH6 --> |No| END_NODE(["Return / Next"])

    B1_SUB --> B1V["IF subkey equals 'value'"]
    B1V --> |Yes| B1V_EXEC["SET: setCd_div_cd_value(in_value)"]
    B1V --> |No| B1E["IF subkey equals 'enable'"]
    B1E --> |Yes| B1E_EXEC["SET: setCd_div_cd_enabled(in_value)"]
    B1E --> |No| B1S["IF subkey equals 'state'"]
    B1S --> |Yes| B1S_EXEC["SET: setCd_div_cd_state(in_value)"]
    B1S --> |No| END_NODE
    B1V_EXEC --> END_NODE
    B1E_EXEC --> END_NODE
    B1S_EXEC --> END_NODE

    B2_SUB --> B2V["IF subkey equals 'value'"]
    B2V --> |Yes| B2V_EXEC["SET: setCd_div_nm_value(in_value)"]
    B2V --> |No| B2E["IF subkey equals 'enable'"]
    B2E --> |Yes| B2E_EXEC["SET: setCd_div_nm_enabled(in_value)"]
    B2E --> |No| B2S["IF subkey equals 'state'"]
    B2S --> |Yes| B2S_EXEC["SET: setCd_div_nm_state(in_value)"]
    B2S --> |No| END_NODE
    B2V_EXEC --> END_NODE
    B2E_EXEC --> END_NODE
    B2S_EXEC --> END_NODE

    B3_SUB --> B3V["IF subkey equals 'value'"]
    B3V --> |Yes| B3V_EXEC["SET: setSelect_index_value(in_value)"]
    B3V --> |No| B3E["IF subkey equals 'enable'"]
    B3E --> |Yes| B3E_EXEC["SET: setSelect_index_enabled(in_value)"]
    B3E --> |No| B3S["IF subkey equals 'state'"]
    B3S --> |Yes| B3S_EXEC["SET: setSelect_index_state(in_value)"]
    B3S --> |No| END_NODE
    B3V_EXEC --> END_NODE
    B3E_EXEC --> END_NODE
    B3S_EXEC --> END_NODE

    B4_SUB --> B4V["IF subkey equals 'value'"]
    B4V --> |Yes| B4V_EXEC["SET: setDefault_cd_value(in_value)"]
    B4V --> |No| B4E["IF subkey equals 'enable'"]
    B4E --> |Yes| B4E_EXEC["SET: setDefault_cd_enabled(in_value)"]
    B4E --> |No| B4S["IF subkey equals 'state'"]
    B4S --> |Yes| B4S_EXEC["SET: setDefault_cd_state(in_value)"]
    B4S --> |No| END_NODE
    B4V_EXEC --> END_NODE
    B4E_EXEC --> END_NODE
    B4S_EXEC --> END_NODE

    B5_PROCESS --> B5_INTPARSE["Integer.valueOf(key) try/catch"]
    B5_INTPARSE --> B5_VALID["IF tmpIndexInt != null"]
    B5_VALID --> |No| END_NODE
    B5_VALID --> |Yes| B5_RANGE["IF tmpIndex >= 0 AND tmpIndex < cd_div_cd_list_list.size()"]
    B5_RANGE --> |No| END_NODE
    B5_RANGE --> |Yes| B5_RECURSE["CALL: cd_div_cd_list_list.get(tmpIndex).storeModelData(subkey, in_value)"]
    B5_RECURSE --> END_NODE

    B6_PROCESS --> B6_INTPARSE["Integer.valueOf(key) try/catch"]
    B6_INTPARSE --> B6_VALID["IF tmpIndexInt != null"]
    B6_VALID --> |No| END_NODE
    B6_VALID --> |Yes| B6_RANGE["IF tmpIndex >= 0 AND tmpIndex < cd_div_nm_list_list.size()"]
    B6_RANGE --> |No| END_NODE
    B6_RANGE --> |Yes| B6_RECURSE["CALL: cd_div_nm_list_list.get(tmpIndex).storeModelData(subkey, in_value)"]
    B6_RECURSE --> END_NODE
```

**Branch descriptions:**

1. **Null guard (L406):** Early exit if `key` or `subkey` is null — prevents NullPointerException in subsequent string operations.
2. **Scalar items — Code Type Code (L413):** Handles subkeys `value` (code value), `enable` (enabled flag), and `state` (display state) for the Code Type Code field.
3. **Scalar items — Code Type Name (L429):** Same three subkey pattern for the Code Type Name field.
4. **Scalar items — Selected Index (L445):** Same three subkey pattern for the Selected Index field.
5. **Scalar items — Default Code (L461):** Same three subkey pattern for the Default Code field.
6. **Array items — Code Type Code Value List (L477):** Parses an index from the key string (e.g., "cd_div_cd_list/0"), validates bounds against the list size, casts the list element to `X33VDataTypeStringBean`, and delegates recursively.
7. **Array items — Code Type Name List (L500):** Same index parsing, validation, and delegation pattern as the Code Type Code Value List.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The human-readable item name identifier that determines which logical field on the bean should receive the data. Valid values are Japanese labels: `コードタイプコード` (Code Type Code, internal ID: `cd_div_cd`), `コードタイプ名称` (Code Type Name, ID: `cd_div_nm`), `選択インデックス` (Selected Index, ID: `select_index`), `初期設定コード` (Default Code, ID: `default_cd`), `コードタイプコード値リスト` (Code Type Code Value List, ID: `cd_div_cd_list`), and `コードタイプ名称リスト` (Code Type Name List, ID: `cd_div_nm_list`). For list items, the key also encodes an array index as a suffix (e.g., `"コードタイプコード値リスト/0"` extracts index `0`). |
| 2 | `subkey` | `String` | The property facet within the identified item to update. Accepts three values (case-insensitive): `value` (the actual data value), `enable` (boolean enabled/disabled flag), or `state` (display state descriptor). Determines which setter method is invoked. |
| 3 | `in_value` | `Object` | The data payload to assign. Its effective type depends on the subkey: for `value` subkeys it is `String` (cast explicitly), for `enable` it is `Boolean`, and for `state` it is `String`. For list items, it is passed through to the nested `X33VDataTypeStringBean.storeModelData()` call. |
| 4 | `isSetAsString` | `boolean` | Flag indicating whether a `Long`-typed property value should be set as a `String` (true) — based on Javadoc: "Long型項目ValueプロパティへString型値の設定を行う場合true" (true when setting a String-type value to a Long-type item's Value property). In this method's current control flow, the flag is accepted as a parameter but not actively used; it is forwarded through to recursive calls on list-element beans. |

**Instance fields read by this method:**

| Field | Type | Usage |
|-------|------|-------|
| `cd_div_cd_list_list` | `ArrayList` | Accessed for list-based assignment (block 5); elements are cast to `X33VDataTypeStringBean` |
| `cd_div_nm_list_list` | `ArrayList` | Accessed for list-based assignment (block 6); elements are cast to `X33VDataTypeStringBean` |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `KKW00401SF01DBean.setCd_div_cd_value` | KKW00401SF01DBean | - | Sets the code type code value property (scalar item update) |
| - | `KKW00401SF01DBean.setCd_div_cd_enabled` | KKW00401SF01DBean | - | Sets the enabled flag for the code type code field (scalar item update) |
| - | `KKW00401SF01DBean.setCd_div_cd_state` | KKW00401SF01DBean | - | Sets the display state for the code type code field (scalar item update) |
| - | `KKW00401SF01DBean.setCd_div_nm_value` | KKW00401SF01DBean | - | Sets the code type name value property (scalar item update) |
| - | `KKW00401SF01DBean.setCd_div_nm_enabled` | KKW00401SF01DBean | - | Sets the enabled flag for the code type name field (scalar item update) |
| - | `KKW00401SF01DBean.setCd_div_nm_state` | KKW00401SF01DBean | - | Sets the display state for the code type name field (scalar item update) |
| - | `KKW00401SF01DBean.setSelect_index_value` | KKW00401SF01DBean | - | Sets the selected index value (scalar item update) |
| - | `KKW00401SF01DBean.setSelect_index_enabled` | KKW00401SF01DBean | - | Sets the enabled flag for the selected index (scalar item update) |
| - | `KKW00401SF01DBean.setSelect_index_state` | KKW00401SF01DBean | - | Sets the display state for the selected index (scalar item update) |
| - | `KKW00401SF01DBean.setDefault_cd_value` | KKW00401SF01DBean | - | Sets the default code value (scalar item update) |
| - | `KKW00401SF01DBean.setDefault_cd_enabled` | KKW00401SF01DBean | - | Sets the enabled flag for the default code (scalar item update) |
| - | `KKW00401SF01DBean.setDefault_cd_state` | KKW00401SF01DBean | - | Sets the display state for the default code (scalar item update) |
| - | `X33VDataTypeStringBean.storeModelData` | X33VDataTypeStringBean | - | Recursively delegates to list element for Code Type Code Value List and Code Type Name List array-bound data binding |
| - | `Integer.valueOf` | — | - | Parses the array index from the key string in list-type item branches |

This method performs **no direct database or SC/CBS operations**. It is a pure presentation-layer data binding utility that manipulates bean property state. All called methods are setter invocations on the bean itself or recursive delegation to list-element beans.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-], `storeModelData` [-]

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0004 (inferred) | `KKW00401SF01DBean.storeModelData(key, subkey, in_value, isSetAsString)` | `setCd_div_cd_value[U] property` |
| 2 | Screen:KKSV0004 (inferred) | `KKW00401SF01DBean.storeModelData(key, subkey, in_value, isSetAsString)` | `setCd_div_nm_value[U] property` |
| 3 | Screen:KKSV0004 (inferred) | `KKW00401SF01DBean.storeModelData(key, subkey, in_value, isSetAsString)` | `setSelect_index_value[U] property` |
| 4 | Screen:KKSV0004 (inferred) | `KKW00401SF01DBean.storeModelData(key, subkey, in_value, isSetAsString)` | `setDefault_cd_value[U] property` |
| 5 | Screen:KKSV0004 (inferred) | `KKW00401SF01DBean.storeModelData` -> `X33VDataTypeStringBean.storeModelData(subkey, in_value)` | `recursive[U] list element binding` |

**Note:** The pre-computed caller graph shows only self-references to `KKW00401SF01DBean.storeModelData()`. The screen entry point is inferred from the module naming convention (`KKW00401SF` maps to screen `KKSV0004`). This method is primarily called programmatically by screen controllers during form initialization or data commit operations.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `(null guard: key == null || subkey == null)` (L406)

> Early exit guard: if either the item name key or the subkey is null, the method returns immediately. This prevents NullPointerException on the subsequent `key.indexOf("/")` call and avoids processing invalid data tuples.

| # | Type | Code |
|---|------|------|
| 1 | CHECK | `key == null \|\| subkey == null` // Null guard — abort if input is incomplete |
| 2 | RETURN | `return;` // Early exit on null input (Japanese comment: "key, subkeyがnullの場合、処理を中止") |

**Block 2** — [SET] `(separator index extraction)` (L410)

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Extract position of the first "/" separator for list-item key parsing (Japanese: "項目ごとに処理を入れる" — "Handle processing per item") |

**Block 3** — [IF-ELSE IF chain] `(Scalar item: コードタイプコード — Code Type Code)` (L413)

> Routes to the Code Type Code scalar properties. The key literal is "コードタイプコード" (Code Type Code, internal ID: `cd_div_cd`). Each subkey branch maps to a distinct setter.

**Block 3.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L414)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_cd_value((String)in_value)` // Assign code type code value (Japanese: data type is String, item ID: cd_div_cd) |

**Block 3.2** — [ELSE IF] `(subkey.equalsIgnoreCase("enable"))` (L417)

> If subkey is "enable", set the enabled flag on cd_div_cd (Japanese comment: "subkeyが"enable"の場合、cd_div_cd_enabledのsetterを実行する" — "When subkey is 'enable', execute the cd_div_cd_enabled setter").

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_cd_enabled((Boolean)in_value)` |

**Block 3.3** — [ELSE IF] `(subkey.equalsIgnoreCase("state"))` (L420)

> If subkey is "state", set the display state (Japanese comment: "subkeyが"state"の場合、ステータスを返す" — "When subkey is 'state', return the status").

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_cd_state((String)in_value)` |

**Block 4** — [ELSE IF] `(key.equals("コードタイプ名称") // Code Type Name)` (L426)

> Routes to the Code Type Name scalar properties. Internal ID: `cd_div_nm`. Same three subkey pattern (value/enable/state) as Block 3.

**Block 4.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L427)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_nm_value((String)in_value)` |

**Block 4.2** — [ELSE IF] `(subkey.equalsIgnoreCase("enable"))` (L430)

> Japanese comment: "subkeyが"enable"の場合、cd_div_nm_enabledのsetterを実行する" (When subkey is 'enable', execute the cd_div_nm_enabled setter).

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_nm_enabled((Boolean)in_value)` |

**Block 4.3** — [ELSE IF] `(subkey.equalsIgnoreCase("state"))` (L433)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setCd_div_nm_state((String)in_value)` |

**Block 5** — [ELSE IF] `(key.equals("選択インデックス") // Selected Index)` (L439)

> Routes to the Selected Index scalar properties. Internal ID: `select_index`. Same three subkey pattern.

**Block 5.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L440)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setSelect_index_value((String)in_value)` |

**Block 5.2** — [ELSE IF] `(subkey.equalsIgnoreCase("enable"))` (L443)

> Japanese comment: "subkeyが"enable"の場合、select_index_enabledのsetterを実行する" (When subkey is 'enable', execute the select_index_enabled setter).

| # | Type | Code |
|---|------|------|
| 1 | SET | `setSelect_index_enabled((Boolean)in_value)` |

**Block 5.3** — [ELSE IF] `(subkey.equalsIgnoreCase("state"))` (L446)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setSelect_index_state((String)in_value)` |

**Block 6** — [ELSE IF] `(key.equals("初期設定コード") // Default Code)` (L452)

> Routes to the Default Code scalar properties. Internal ID: `default_cd`. Same three subkey pattern.

**Block 6.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L453)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setDefault_cd_value((String)in_value)` |

**Block 6.2** — [ELSE IF] `(subkey.equalsIgnoreCase("enable"))` (L456)

> Japanese comment: "subkeyが"enable"の場合、default_cd_enabledのsetterを実行する" (When subkey is 'enable', execute the default_cd_enabled setter).

| # | Type | Code |
|---|------|------|
| 1 | SET | `setDefault_cd_enabled((Boolean)in_value)` |

**Block 6.3** — [ELSE IF] `(subkey.equalsIgnoreCase("state"))` (L459)

| # | Type | Code |
|---|------|------|
| 1 | SET | `setDefault_cd_state((String)in_value)` |

**Block 7** — [ELSE IF] `(key.equals("コードタイプコード値リスト") // Code Type Code Value List)` (L476)

> Handles list-bound data for Code Type Code entries. The key format is `"コードタイプコード値リスト/<index>"` (e.g., `"コードタイプコード値リスト/0"`). Parses the index, validates bounds, and delegates to the list element's `storeModelData`.

**Block 7.1** — [SET] `(extract index suffix from key)` (L478)

> Japanese comment: "keyの次の要素を取得" (Get the next element of key), `("cd_div_cd_list/0"から最初の"/"より後を取得)` (Extract the part after the first "/" from "cd_div_cd_list/0").

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` // Extract index suffix (e.g., "0" from "cd_div_cd_list/0") |
| 2 | SET | `tmpIndexInt = null` // Initialize parsing target |

**Block 7.2** — [TRY-CATCH] `(parse index as Integer)` (L480–L487)

> Japanese comment: "インデックス値が数値文字列でない場合は、ここでnullを返す" (If the index value is not a numeric string, return null here).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `tmpIndexInt = Integer.valueOf(key)` // Attempt to parse the key suffix as integer |
| 2 | CATCH | `catch(NumberFormatException e)` // Non-numeric index — skip list processing |
| 3 | SET | `tmpIndexInt = null` // Reset to null on parse failure |

**Block 7.3** — [IF] `(tmpIndexInt != null // index parsed successfully)` (L489)

> Only proceed if the index was successfully parsed as an integer.

**Block 7.3.1** — [SET] `(convert Integer to int)` (L490)

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpIndex = tmpIndexInt.intValue()` |

**Block 7.3.2** — [IF] `(tmpIndex >= 0 && tmpIndex < cd_div_cd_list_list.size())` (L491)

> Japanese comment: "インデックス値がリスト個数-1以下の場合" (If the index value is <= list size minus 1).

**Block 7.3.2.1** — [CALL] `(delegate to list element)` (L492)

> Japanese comments: "キャスト部分は、項目定義型にあわせX33VDataTypeStringBean, X33VDataTypeLongBean, X33VDataTypeBooleanBeanのうちの1つを指定" (For the cast portion, specify one of X33VDataTypeStringBean, X33VDataTypeLongBean, or X33VDataTypeBooleanBean according to the item definition type) and "X33VDataTypeLongBeanではsubkeyと入力値およびisSetAsStringフラグを引数に指定" (For X33VDataTypeLongBean, pass subkey, input value, and isSetAsString flag as arguments). Note: the actual code casts to `X33VDataTypeStringBean`, though the comment mentions that other bean types exist for different item definitions.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(X33VDataTypeStringBean)cd_div_cd_list_list.get(tmpIndex)` |
| 2 | CALL | `.storeModelData(subkey, in_value)` // Recursive delegation to list element |

**Block 8** — [ELSE IF] `(key.equals("コードタイプ名称リスト") // Code Type Name List)` (L499)

> Handles list-bound data for Code Type Name entries. The key format is `"コードタイプ名称リスト/<index>"` (e.g., `"コードタイプ名称リスト/0"`). Same parsing, validation, and delegation pattern as Block 7, operating on `cd_div_nm_list_list`.

**Block 8.1** — [SET] `(extract index suffix from key)` (L501)

> Japanese comment: "keyの次の要素を取得" (Get the next element of key), `("cd_div_nm_list/0"から最初の"/"より後を取得)` (Extract the part after the first "/" from "cd_div_nm_list/0").

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = key.substring(separaterPoint + 1)` |
| 2 | SET | `tmpIndexInt = null` |

**Block 8.2** — [TRY-CATCH] `(parse index as Integer)` (L503–L510)

> Same pattern as Block 7.2.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `tmpIndexInt = Integer.valueOf(key)` |
| 2 | CATCH | `catch(NumberFormatException e)` |
| 3 | SET | `tmpIndexInt = null` |

**Block 8.3** — [IF] `(tmpIndexInt != null)` (L509)

**Block 8.3.1** — [SET] `(convert to int)` (L510)

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpIndex = tmpIndexInt.intValue()` |

**Block 8.3.2** — [IF] `(tmpIndex >= 0 && tmpIndex < cd_div_nm_list_list.size())` (L511)

**Block 8.3.2.1** — [CALL] `(delegate to list element)` (L512)

> Same delegation pattern as Block 7.3.2.1 but for the Code Type Name list.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(X33VDataTypeStringBean)cd_div_nm_list_list.get(tmpIndex)` |
| 2 | CALL | `.storeModelData(subkey, in_value)` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `コードタイプコード` (Code Type Code) | Field | Code Type Code — the primary classification code for a code type, internal ID: `cd_div_cd` |
| `コードタイプ名称` (Code Type Name) | Field | Code Type Name — the human-readable label for a code type, internal ID: `cd_div_nm` |
| `選択インデックス` (Selected Index) | Field | Selected Index — the index of a selected option in a dropdown or list, internal ID: `select_index` |
| `初期設定コード` (Default Code) | Field | Default Code — the default/fallback code value, internal ID: `default_cd` |
| `コードタイプコード値リスト` | Field | Code Type Code Value List — an array/collection of code type code entries, internal ID: `cd_div_cd_list` |
| `コードタイプ名称リスト` | Field | Code Type Name List — an array/collection of code type name entries, internal ID: `cd_div_nm_list` |
| `value` | Subkey | The actual data value being set for a property |
| `enable` | Subkey | Boolean flag controlling whether the property is enabled/disabled for user interaction |
| `state` | Subkey | Display state descriptor (e.g., normal, disabled, error) for UI rendering |
| `cd_div_cd` | Internal ID | Field identifier for Code Type Code — division/diversity code value |
| `cd_div_nm` | Internal ID | Field identifier for Code Type Name — division/diversity code name |
| `select_index` | Internal ID | Field identifier for Selected Index |
| `default_cd` | Internal ID | Field identifier for Default Code |
| `X33VDataTypeStringBean` | Class | A typed data bean for String-type form items; used as the element type for list collections |
| `X33VDataTypeLongBean` | Class | A typed data bean for Long-type form items (not used in current code but referenced in comments) |
| `X33VDataTypeBooleanBean` | Class | A typed data bean for Boolean-type form items (not used in current code but referenced in comments) |
| `storeModelData` | Method | Unified data-binding method that routes key/subkey/value tuples to appropriate bean setters |
| `isSetAsString` | Parameter | Flag indicating whether to treat a value as String when assigning to a Long-typed property |
