# Business Logic — FUW00943SF02DBean.storeModelData() [104 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW00943SF.FUW00943SF02DBean` |
| Layer | Utility / Data Bean (Service Component helper) |
| Module | `FUW00943SF` (Package: `eo.web.webview.FUW00943SF`) |

## 1. Role

### FUW00943SF02DBean.storeModelData()

This method is a **model-data storage dispatcher** for the FUW00943SF screen module, responsible for routing incoming key/value pairs into the correct property setter on the bean. It acts as a **centralized facade** that receives flat string-based property identifiers (like "アンケート内容" / "Questionnaire Content") and sub-keys (like "value", "enable", "state") and dispatches them to the appropriate strongly-typed setter method. This design pattern implements the **routing/dispatch** pattern, where the method inspects the `key` parameter to determine which property group the data belongs to, then inspects the `subkey` to determine which attribute of that property is being set (the value itself, its enabled/visible state, or its enabled flag).

The method handles **five distinct business data categories** for survey/questionnaire-related screen fields: (1) Questionnaire Content (アンケート内容), (2) Questionnaire Type (アンケート種類), (3) Questionnaire Number (アンケート番号), (4) Display Order for Questionnaire Content (表示順序（アンケート内容）), and (5) Radio Button Selection Value (ラジオボタン選択値). Additionally, it supports a **recursive delegation** mechanism for the Questionnaire Answer List (アンケート回答リスト), where it parses a nested path like "プランリスト/0/プラン名" to delegate data storage to the corresponding child bean in the list. Each property follows a consistent three-attribute convention: `value` (the data value), `enable` (the enabled/disabled flag), and `state` (the visible/hidden state).

The method plays a critical role in the screen's **data binding layer**, serving as the single entry point for storing model data from the presentation layer into the bean's internal state. It is a shared utility called by many screen entry points within the FUW00943SF module, enabling uniform data population across all survey-type form fields.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> CHECK_NULL["key == null || subkey == null"]
    CHECK_NULL -->|Yes| RETURN_NULL["return"]
    CHECK_NULL -->|No| FIND_SLASH["key.indexOf('/') -> separaterPoint"]

    FIND_SLASH --> CHK_ENQ_CONTENT["key equals 'アンケート内容'"]
    CHK_ENQ_CONTENT -->|Yes| SUBKEY_ENQ_SUB{"subkey"}
    SUBKEY_ENQ_SUB -->|"value"| SET_ENQ_VAL["setEnquete_content_value(in_value)"]
    SUBKEY_ENQ_SUB -->|"enable"| SET_ENQ_ENB["setEnquete_content_enabled(in_value)"]
    SUBKEY_ENQ_SUB -->|"state"| SET_ENQ_STT["setEnquete_content_state(in_value)"]
    SUBKEY_ENQ_SUB -->|other| NEXT_CHK

    CHK_ENQ_TYPE["key equals 'アンケート種類'"]
    SUBKEY_ENQ_TYPE{"subkey"}
    SUBKEY_ENQ_TYPE -->|"value"| SET_ECS_VAL["setEnquete_chk_sbt_value(in_value)"]
    SUBKEY_ENQ_TYPE -->|"enable"| SET_ECS_ENB["setEnquete_chk_sbt_enabled(in_value)"]
    SUBKEY_ENQ_TYPE -->|"state"| SET_ECS_STT["setEnquete_chk_sbt_state(in_value)"]
    SUBKEY_ENQ_TYPE -->|other| NEXT_CHK

    CHK_ENQ_NO["key equals 'アンケート番号'"]
    SUBKEY_ENQ_NO{"subkey"}
    SUBKEY_ENQ_NO -->|"value"| SET_ECN_VAL["setEnquete_content_no_value(in_value)"]
    SUBKEY_ENQ_NO -->|"enable"| SET_ECN_ENB["setEnquete_content_no_enabled(in_value)"]
    SUBKEY_ENQ_NO -->|"state"| SET_ECN_STT["setEnquete_content_no_state(in_value)"]
    SUBKEY_ENQ_NO -->|other| NEXT_CHK

    CHK_DISP_ORD["key equals '表示順序（アンケート内容）'"]
    SUBKEY_DISP_ORD{"subkey"}
    SUBKEY_DISP_ORD -->|"value"| SET_DJC_VAL["setDsp_jun_content_value(in_value)"]
    SUBKEY_DISP_ORD -->|"enable"| SET_DJC_ENB["setDsp_jun_content_enabled(in_value)"]
    SUBKEY_DISP_ORD -->|"state"| SET_DJC_STT["setDsp_jun_content_state(in_value)"]
    SUBKEY_DISP_ORD -->|other| NEXT_CHK

    CHK_RADIO["key equals 'ラジオボタン選択値'"]
    SUBKEY_RADIO{"subkey"}
    SUBKEY_RADIO -->|"value"| SET_RV_VAL["setRadio_value_value(in_value)"]
    SUBKEY_RADIO -->|"enable"| SET_RV_ENB["setRadio_value_enabled(in_value)"]
    SUBKEY_RADIO -->|"state"| SET_RV_STT["setRadio_value_state(in_value)"]
    SUBKEY_RADIO -->|other| NEXT_CHK

    CHK_ANS_LIST["key equals 'アンケート回答リスト'"]
    CHK_ANS_LIST -->|Yes| REC_PATH["Parse nested key: extract index and inner key from path"]
    REC_PATH --> TRY_PARSE["Integer.valueOf(index)"]
    TRY_PARSE -->|Success| CHK_IDX_RANGE{"tmpIndex in valid range"}
    CHK_IDX_RANGE -->|Yes| RECURSE["storeModelData() on enquete_answer_list_list[index]"]
    CHK_IDX_RANGE -->|No| NEXT_CHK
    TRY_PARSE -->|NumberFormatException| NEXT_CHK

    CHK_ANS_LIST -->|No| NEXT_CHK["End / No match"]
    NEXT_CHK --> END_NODE(["Return (void)"])
    SET_ENQ_VAL --> END_NODE
    SET_ENQ_ENB --> END_NODE
    SET_ENQ_STT --> END_NODE
    SET_ECS_VAL --> END_NODE
    SET_ECS_ENB --> END_NODE
    SET_ECS_STT --> END_NODE
    SET_ECN_VAL --> END_NODE
    SET_ECN_ENB --> END_NODE
    SET_ECN_STT --> END_NODE
    SET_DJC_VAL --> END_NODE
    SET_DJC_ENB --> END_NODE
    SET_DJC_STT --> END_NODE
    SET_RV_VAL --> END_NODE
    SET_RV_ENB --> END_NODE
    SET_RV_STT --> END_NODE
    RECURSE --> END_NODE
    RETURN_NULL --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The business property identifier (項目名) that specifies which survey/questionnaire field is being populated. Valid values are: "アンケート内容" (Questionnaire Content), "アンケート種類" (Questionnaire Type), "アンケート番号" (Questionnaire Number), "表示順序（アンケート内容）" (Display Order for Questionnaire Content), "ラジオボタン選択値" (Radio Button Selection Value), or "アンケート回答リスト" (Questionnaire Answer List — triggers recursive delegation to nested child beans). For the answer list, the key follows a nested path format like "プランリスト/0/プラン名" (Plan List/0/Plan Name). |
| 2 | `subkey` | `String` | The attribute sub-key (サブキー) specifying which aspect of the property to set. Valid values are "value" (sets the data value), "enable" (sets the enabled/disabled flag), or "state" (sets the visible/hidden state). Case-insensitive comparison is used. |
| 3 | `in_value` | `Object` | The data payload (データ) to store. Its type depends on the subkey: `String` for value and state attributes, `Boolean` for enable attributes. For the answer list recursive case, the same object is passed through to the child bean's storeModelData. |
| 4 | `isSetAsString` | `boolean` | Flag (フラグ) indicating whether to set a String-type value into a Long-type item's Value property. If true, the value is treated as a string representation of a Long. This method does not directly use this flag in the current logic path, but it is forwarded in recursive calls to answer list children. |

**Instance fields read:**
| Field | Type | Business Description |
|-------|------|---------------------|
| `enquete_answer_list_list` | `ArrayList` | The list of nested Questionnaire Answer List beans (アンケート回答リスト), each implementing `X33VDataTypeBeanInterface`. Used during recursive delegation when the key is "アンケート回答リスト". |

## 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` utility in `JKKAdEditCC` for string splitting during nested key parsing |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` utility in `JKKAdEdit` for string splitting |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` utility in `JKKTelnoInfoAddMapperCC` |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` utility in `JDKejbStringEdit` |
| - | `FUW00943SF02DBean.setDsp_jun_content_enabled` | FUW00943SF02DBean | - | Sets display order enabled flag (表示順序有効フラグ) |
| - | `FUW00943SF02DBean.setDsp_jun_content_state` | FUW00943SF02DBean | - | Sets display order visibility state (表示順序表示状態) |
| - | `FUW00943SF02DBean.setDsp_jun_content_value` | FUW00943SF02DBean | - | Sets display order value for questionnaire content (表示順序値) |
| - | `FUW00943SF02DBean.setEnquete_chk_sbt_enabled` | FUW00943SF02DBean | - | Sets questionnaire type enabled flag (アンケート種類有効フラグ) |
| - | `FUW00943SF02DBean.setEnquete_chk_sbt_state` | FUW00943SF02DBean | - | Sets questionnaire type visibility state (アンケート種類表示状態) |
| - | `FUW00943SF02DBean.setEnquete_chk_sbt_value` | FUW00943SF02DBean | - | Sets questionnaire type value (アンケート種類値) |
| - | `FUW00943SF02DBean.setEnquete_content_enabled` | FUW00943SF02DBean | - | Sets questionnaire content enabled flag (アンケート内容有効フラグ) |
| - | `FUW00943SF02DBean.setEnquete_content_no_enabled` | FUW00943SF02DBean | - | Sets questionnaire number enabled flag (アンケート番号有効フラグ) |
| - | `FUW00943SF02DBean.setEnquete_content_no_state` | FUW00943SF02DBean | - | Sets questionnaire number visibility state (アンケート番号表示状態) |
| - | `FUW00943SF02DBean.setEnquete_content_no_value` | FUW00943SF02DBean | - | Sets questionnaire number value (アンケート番号値) |
| - | `FUW00943SF02DBean.setEnquete_content_state` | FUW00943SF02DBean | - | Sets questionnaire content visibility state (アンケート内容表示状態) |
| - | `FUW00943SF02DBean.setEnquete_content_value` | FUW00943SF02DBean | - | Sets questionnaire content value (アンケート内容値) |
| - | `FUW00943SF02DBean.setRadio_value_enabled` | FUW00943SF02DBean | - | Sets radio button selection enabled flag (ラジオボタン選択値有効フラグ) |
| - | `FUW00943SF02DBean.setRadio_value_state` | FUW00943SF02DBean | - | Sets radio button selection visibility state (ラジオボタン選択値表示状態) |
| - | `FUW00943SF02DBean.setRadio_value_value` | FUW00943SF02DBean | - | Sets radio button selection value (ラジオボタン選択値) |
| - | `FUW00943SF02DBean.storeModelData` | FUW00943SF02DBean | - | Recursive delegation to child bean's storeModelData for nested answer list items |

This method performs **no direct database or SC-level operations**. All called methods are local bean property setters (U — Update internal state) or string manipulation utilities. No entity or database table is directly accessed.

## 5. Dependency Trace

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:FUW00943SF02DBean | `FUW00943SF02DBean.storeModelData` (self-referential — stored in caller graph) | `storeModelData [-]`, `substring [-]`, `setRadio_value_state [-]`, `setRadio_value_enabled [-]`, `setRadio_value_value [-]`, `setDsp_jun_content_state [-]`, `setDsp_jun_content_enabled [-]` |

**Terminal operations summary:** This method has no SC (Service Component) or database-level terminal operations. All terminal operations are bean-level property setters (Update internal state) and string manipulation calls (no side effects). The method is purely a data-binding dispatch layer with no persistence impact.

## 6. Per-Branch Detail Blocks

**Block 1** — IF `(key == null || subkey == null)` (L429)

> Early exit: if the key or subkey is null, processing is aborted immediately. This prevents NullPointerException and is a guard clause for invalid input.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `key.indexOf("/")` — Find the first slash position in key, stored in `separaterPoint` [L431] |
| 2 | RETURN | `return` — Exit method, no further processing [L430] |

---

**Block 2** — IF `key.equals("アンケート内容")` [L434]
> Branch: Data type is "Questionnaire Content" (アンケート内容) — item ID: enquete_content. This block handles setting the three attributes of the questionnaire content field: value, enable, and state.

**Block 2.1** — IF `subkey.equalsIgnoreCase("value")` (L435)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "value" |
| 2 | CALL | `setEnquete_content_value((String)in_value)` — Sets the questionnaire content data value [L436] |

**Block 2.2** — IF `subkey.equalsIgnoreCase("enable")` (L438)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "enable" |
| 2 | CALL | `setEnquete_content_enabled((Boolean)in_value)` — Sets the questionnaire content enabled flag. Comment: サブキーが"enable"の場合、enquete_content_enabledのsetterを実行する (If subkey is "enable", execute the enquete_content_enabled setter) [L439] |

**Block 2.3** — IF `subkey.equalsIgnoreCase("state")` (L441)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "state" |
| 2 | CALL | `setEnquete_content_state((String)in_value)` — Sets the questionnaire content visibility state. Comment: サブキーが"state"の場合、ステータスを返す (If subkey is "state", return the status) [L442] |

---

**Block 3** — ELSE-IF `key.equals("アンケート種類")` [L447]
> Branch: Data type is "Questionnaire Type" (アンケート種類) — item ID: enquete_chk_sbt. This block handles the three attributes (value, enable, state) of the questionnaire type field.

**Block 3.1** — IF `subkey.equalsIgnoreCase("value")` (L448)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setEnquete_chk_sbt_value((String)in_value)` — Sets the questionnaire type value [L449] |

**Block 3.2** — IF `subkey.equalsIgnoreCase("enable")` (L451)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "enable" |
| 2 | CALL | `setEnquete_chk_sbt_enabled((Boolean)in_value)` — Sets the questionnaire type enabled flag. Comment: サブキーが"enable"の場合、enquete_chk_sbt_enabledのsetterを実行する (If subkey is "enable", execute the enquete_chk_sbt_enabled setter) [L452] |

**Block 3.3** — IF `subkey.equalsIgnoreCase("state")` (L454)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "state" |
| 2 | CALL | `setEnquete_chk_sbt_state((String)in_value)` — Sets the questionnaire type visibility state. Comment: サブキーが"state"の場合、ステータスを返す (If subkey is "state", return the status) [L455] |

---

**Block 4** — ELSE-IF `key.equals("アンケート番号")` [L460]
> Branch: Data type is "Questionnaire Number" (アンケート番号) — item ID: enquete_content_no. This block handles the three attributes (value, enable, state) of the questionnaire number field.

**Block 4.1** — IF `subkey.equalsIgnoreCase("value")` (L461)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setEnquete_content_no_value((String)in_value)` — Sets the questionnaire number value [L462] |

**Block 4.2** — IF `subkey.equalsIgnoreCase("enable")` (L464)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "enable" |
| 2 | CALL | `setEnquete_content_no_enabled((Boolean)in_value)` — Sets the questionnaire number enabled flag. Comment: サブキーが"enable"の場合、enquete_content_no_enabledのsetterを実行する (If subkey is "enable", execute the enquete_content_no_enabled setter) [L465] |

**Block 4.3** — IF `subkey.equalsIgnoreCase("state")` (L467)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "state" |
| 2 | CALL | `setEnquete_content_no_state((String)in_value)` — Sets the questionnaire number visibility state. Comment: サブキーが"state"の場合、ステータスを返す (If subkey is "state", return the status) [L468] |

---

**Block 5** — ELSE-IF `key.equals("表示順序（アンケート内容）")` [L473]
> Branch: Data type is "Display Order for Questionnaire Content" (表示順序（アンケート内容）) — item ID: dsp_jun_content. This block handles the three attributes (value, enable, state) for display ordering.

**Block 5.1** — IF `subkey.equalsIgnoreCase("value")` (L474)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setDsp_jun_content_value((String)in_value)` — Sets the display order value [L475] |

**Block 5.2** — IF `subkey.equalsIgnoreCase("enable")` (L477)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "enable" |
| 2 | CALL | `setDsp_jun_content_enabled((Boolean)in_value)` — Sets the display order enabled flag. Comment: サブキーが"enable"の場合、dsp_jun_content_enabledのsetterを実行する (If subkey is "enable", execute the dsp_jun_content_enabled setter) [L478] |

**Block 5.3** — IF `subkey.equalsIgnoreCase("state")` (L480)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "state" |
| 2 | CALL | `setDsp_jun_content_state((String)in_value)` — Sets the display order visibility state. Comment: サブキーが"state"の場合、ステータスを返す (If subkey is "state", return the status) [L481] |

---

**Block 6** — ELSE-IF `key.equals("ラジオボタン選択値")` [L486]
> Branch: Data type is "Radio Button Selection Value" (ラジオボタン選択値) — item ID: radio_value. This block handles the three attributes (value, enable, state) of the radio button selection field.

**Block 6.1** — IF `subkey.equalsIgnoreCase("value")` (L487)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setRadio_value_value((String)in_value)` — Sets the radio button selection value [L488] |

**Block 6.2** — IF `subkey.equalsIgnoreCase("enable")` (L490)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "enable" |
| 2 | CALL | `setRadio_value_enabled((Boolean)in_value)` — Sets the radio button selection enabled flag. Comment: サブキーが"enable"の場合、radio_value_enabledのsetterを実行する (If subkey is "enable", execute the radio_value_enabled setter) [L491] |

**Block 6.3** — IF `subkey.equalsIgnoreCase("state")` (L493)

| # | Type | Code |
|---|------|------|
| 1 | SET | `subkey` compared (case-insensitive) to "state" |
| 2 | CALL | `setRadio_value_state((String)in_value)` — Sets the radio button selection visibility state. Comment: サブキーが"state"の場合、ステータスを返す (If subkey is "state", return the status) [L494] |

---

**Block 7** — ELSE-IF `key.equals("アンケート回答リスト")` [L498]
> Branch: Data type is "Questionnaire Answer List" (アンケート回答リスト) — item ID: enquete_answer_list. This is the most complex branch, handling recursive delegation to nested child beans. The key follows a nested path format such as "プランリスト/0/プラン名" (Plan List/0/Plan Name).

**Block 7.1** — SET `keyRemain` (L501)

| # | Type | Code |
|---|------|------|
| 1 | SET | `keyRemain = key.substring(separaterPoint + 1)` — Extract the portion after the first "/" from the key. For a path like "プランリスト/0/プラン名", extracts "0/プラン名". Comment: パス形式から最初の"/"より後を取得 (Get the portion after the first "/" from the path format) [L502] |

**Block 7.2** — SET `separaterPoint` (L503)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `separaterPoint = keyRemain.indexOf("/")` — Search for the next separator "/" in the remaining string. Comment: 次の区切り符号を検索する (Search for the next delimiter) [L503] |

**Block 7.3** — IF `separaterPoint > 0` (L504)
> Guard: Ensure the separator was properly found (positive index means valid nested path).

**Block 7.3.1** — SET `key` (L505)

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = keyRemain.substring(0, separaterPoint)` — Extract the index portion (e.g., "0" from "0/プラン名"). Comment: 項目名を生成する (Generate the item name) [L505] |

**Block 7.3.2** — SET `tmpIndexInt` (L507)

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpIndexInt = null` — Initialize as null, will be set via Integer.valueOf() |
| 2 | EXEC | `tmpIndexInt = Integer.valueOf(key)` — Attempt to parse the extracted key as an integer. Comment: 次の要素を取得 (Get the next element) [L510] |

**Block 7.3.3** — CATCH `NumberFormatException` (L512)

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpIndexInt = null` — If parsing fails, reset to null. Comment: インデックス値が数値文字列でない場合は、ここで再設定 (If the index value is not a numeric string, reset here) [L515] |

**Block 7.3.4** — IF `tmpIndexInt != null` (L516)
> Guard: Only proceed if the index was successfully parsed as an integer.

**Block 7.3.4.1** — SET `tmpIndex` (L517)

| # | Type | Code |
|---|------|------|
| 1 | SET | `tmpIndex = tmpIndexInt.intValue()` — Convert Integer to int primitive. Comment: インデックス値が数値文字列の場合 (If the index value is a numeric string) [L518] |

**Block 7.3.4.2** — IF `tmpIndex >= 0 && tmpIndex < enquete_answer_list_list.size()` (L519)
> Guard: Verify the index is within bounds of the answer list. Comment: インデックス値がリスト個数-1以下の場合 (If the index value is less than the list count - 1) [L520]

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = keyRemain.substring(separaterPoint + 1)` — Extract the inner key (e.g., "プラン名" from "0/プラン名"). Comment: 項目名を生成し、データタイプバージョンのstoreModelDataの戻り値を返す (Generate the item name and return the value from the data-type version's storeModelData) [L522] |
| 2 | SET | Cast `enquete_answer_list_list.get(tmpIndex)` to `X33VDataTypeBeanInterface` — Get the child bean at the index |
| 3 | CALL | `((X33VDataTypeBeanInterface)enquete_answer_list_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` — Recursively delegate to the child bean. Comment: データタイプバージョンでは項目名、subkey、入力値およびisSetAsStringフラグを引数に指定 (In the data-type version, specify the item name, subkey, input value, and isSetAsString flag as arguments) [L523] |

---

**Block 8** — ELSE-IF (no match) [Implicit]

> If none of the above key conditions match, the method falls through to the end without performing any action. This is a silent no-op — no exception is thrown, and no data is stored. This allows the method to safely handle unrecognized keys without side effects.

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| アンケート内容 | Field | Questionnaire Content — The main content/value field for a survey question. Internal item ID: `enquete_content`. |
| アンケート種類 | Field | Questionnaire Type — The type/category of a survey question (e.g., multiple choice, text input). Internal item ID: `enquete_chk_sbt`. |
| アンケート番号 | Field | Questionnaire Number — The sequential number/identifier of a survey question. Internal item ID: `enquete_content_no`. |
| 表示順序（アンケート内容） | Field | Display Order for Questionnaire Content — Controls the display ordering of questionnaire content items. Internal item ID: `dsp_jun_content`. |
| ラジオボタン選択値 | Field | Radio Button Selection Value — The selected value of a radio button group in the survey form. Internal item ID: `radio_value`. |
| アンケート回答リスト | Field | Questionnaire Answer List — A nested list of survey answer beans, each containing sub-questions. Internal item ID: `enquete_answer_list`. Enables recursive delegation to child beans. |
| item ID | Field | Internal identifier suffix used in setter method names (e.g., `enquete_content` from "アンケート内容"). Used as a naming convention to map Japanese field names to camelCase setter methods. |
| value | Subkey | The actual data value for a property. Type is `String` for value/state subkeys. |
| enable | Subkey | The enabled/disabled flag for a property. Type is `Boolean`. Controls whether the field is interactive. |
| state | Subkey | The visibility/display state for a property. Type is `String`. Controls whether the field is visible to the user. |
| X33VDataTypeBeanInterface | Interface | The interface implemented by child beans in the `enquete_answer_list_list`. Each child bean delegates its own storeModelData to handle nested property paths. |
| plan name | Field | プラン名 — Plan name, used as an example in the nested key path "プランリスト/0/プラン名" (Plan List/0/Plan Name). |
| plan list | Field | プランリスト — Plan list, the container for nested questionnaire answer items. |
| separaterPoint | Field | Temporary variable holding the index of the "/" separator in the key string, used to parse nested paths. |
| keyRemain | Field | Temporary variable holding the substring of `key` after the first "/" separator. |
| isSetAsString | Parameter | String-type setting flag — When true, indicates that a String-type value should be set into a Long-type item's Value property. |
| subkey | Parameter | Sub-key (サブキー) — The attribute selector within a property group (value/enable/state). |
| in_value | Parameter | Input data (データ) — The value to store, cast to the appropriate type based on the subkey. |
