# Business Logic — KKW00130SF02DBean.storeModelData() [267 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00130SF.KKW00130SF02DBean` |
| Layer | View / Data Bean (Controller layer — X33V web framework bean) |
| Module | `KKW00130SF` (Package: `eo.web.webview.KKW00130SF`) |

## 1. Role

### KKW00130SF02DBean.storeModelData()

This method is a centralized data-binding router for the KKW00130SF screen's data bean. Its purpose is to accept a key/subkey pair and an arbitrary typed value, then dispatch the value to the correct setter on the bean based on the business field identified by the key. It follows a routing/dispatch pattern: the `key` parameter carries the Japanese display name of a field (e.g., "電話番号" for Phone Number, "番ポ" for Banpo/Order Cancellation, "契約状態" for Contract Status), and the `subkey` parameter identifies which property of that field to populate — one of three meta-properties: `"value"` (the actual data), `"enable"` (whether the field is user-editable), or `"state"` (a UI display state string, e.g., "READONLY", "HIDDEN"). The method handles 20 distinct business fields, each mapped to a set of strongly-typed setter methods on the bean.

The method operates entirely within the view layer as a data-binding utility. It is not a service component (SC) or a business logic component (CBS) — it is a pure bean helper that bridges data received from the X33V view framework (via `X33VDataTypeBeanInterface.loadModelData` calls on the server side) to the bean's internal state. When the "番ポ廃止依頼制御コード" (Banpo Cancellation Request Control Code) key is encountered, the method additionally supports a hierarchical path-parsing mechanism: it splits the key by "/" delimiters to extract a list index, then recursively delegates to the `storeModelData` method of a child `X33VDataTypeBeanInterface` from the `bmp_haishi_req_ctrl_cd_list`, enabling dynamic list-based data binding for variable-length banpo control code entries.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> COND1{"key == null         or subkey == null?"}

    COND1 -->|Yes| EARLY_RET(["Return / No Operation"])
    COND1 -->|No| FIND_SEP["key = key.indexOf('/')"]

    FIND_SEP --> KEY_CHECK{"key equals         a known field name?"}

    KEY_CHECK -->|"電話番号"| TELNO["set rslt_telno         value/enable/state"]
    KEY_CHECK -->|"番ポ"| BMP["set rslt_bmp         value/enable/state"]
    KEY_CHECK -->|"契約状態"| KEI_STAT["set rslt_kei_stat         value/state"]
    KEY_CHECK -->|"サービス開始年月日"| SVC_STAY["set rslt_svc_staymd         value/state"]
    KEY_CHECK -->|"サービス終了年月日"| SVC_END["set rslt_svc_endymd         value/state"]
    KEY_CHECK -->|"VR型"| VA_MODEL["set rslt_va_model         value/state"]
    KEY_CHECK -->|"ポート番号"| PORT_NO["set rslt_port_no         value/state"]
    KEY_CHECK -->|"番号案内"| NO_GUIDE["set rslt_no_guide         value/state"]
    KEY_CHECK -->|"トーク有無"| TOKI_UM["set rslt_toki_um         value/state"]
    KEY_CHECK -->|"サービス契約内容番号"| SVC_UCWK_NO["set rslt_svc_kei_ucwk_no         value/state"]
    KEY_CHECK -->|"サービス契約内容ステータス"| SVC_UCWK_STAT["set rslt_svc_kei_ucwk_stat         value/state"]
    KEY_CHECK -->|"申請明細番号"| MSKM_DTL["set rslt_mskm_dtl_no         value/state"]
    KEY_CHECK -->|"料金コースコード"| PCRSCD["set rslt_pcrs_cd         value/state"]
    KEY_CHECK -->|"料金プランコード"| PPLANCd["set rslt_pplan_cd         value/state"]
    KEY_CHECK -->|"表示用サービス契約内容ステータス"| DSP_STAT["set dsp_svc_kei_ucwk_stat         value/state"]
    KEY_CHECK -->|"表示用サービス契約内容ステータス名称"| DSP_STATNM["set dsp_svc_kei_ucwk_stat_nm         value/state"]
    KEY_CHECK -->|"屋内機器種別コード"| TAKNKIKI["set taknkiki_sbt_cd         value/state"]
    KEY_CHECK -->|"機器提供サービス名"| KKT_SVC["set kktk_svc_nm         value/state"]
    KEY_CHECK -->|"番ポ廃止依頼制御コード"| BANPO_CTRL["parse key path,         parse index,         recursive storeModelData"]
    KEY_CHECK -->|No match| END_NODE(["Return / No Operation"])

    END_NODE(["End"])
    EARLY_RET --> END_NODE
    TELNO --> END_NODE
    BMP --> END_NODE
    KEI_STAT --> END_NODE
    SVC_STAY --> END_NODE
    SVC_END --> END_NODE
    VA_MODEL --> END_NODE
    PORT_NO --> END_NODE
    NO_GUIDE --> END_NODE
    TOKI_UM --> END_NODE
    SVC_UCWK_NO --> END_NODE
    SVC_UCWK_STAT --> END_NODE
    MSKM_DTL --> END_NODE
    PCRSCD --> END_NODE
    PPLANCd --> END_NODE
    DSP_STAT --> END_NODE
    DSP_STATNM --> END_NODE
    TAKNKIKI --> END_NODE
    KKT_SVC --> END_NODE
    BANPO_CTRL --> END_NODE
```

**Processing summary:**

1. **Null guard:** If either `key` or `subkey` is `null`, the method returns immediately — no processing occurs.
2. **Separator extraction:** Computes the first "/" position in `key` (used later by the recursive banpo-control-code branch).
3. **Key dispatch:** The method branches on the value of `key` using a long chain of `if`/`else-if` statements, each comparing against a hardcoded Japanese field name. There are 20 active dispatch branches:

| Branch | Key (Japanese) | Item ID | Subkey handling |
|--------|---------------|---------|-----------------|
| 1 | 電話番号 (Phone Number) | rslt_telno | value -> String, enable -> Boolean, state -> String |
| 2 | 番ポ (Banpo/Order Cancellation) | rslt_bmp | value -> String, enable -> Boolean, state -> String |
| 3 | 契約状態 (Contract Status) | rslt_kei_stat | value -> String, state -> String |
| 4 | サービス開始年月日 (Service Start Date) | rslt_svc_staymd | value -> String, state -> String |
| 5 | サービス終了年月日 (Service End Date) | rslt_svc_endymd | value -> String, state -> String |
| 6 | VR型 (VR Type) | rslt_va_model | value -> String, state -> String |
| 7 | ポート番号 (Port Number) | rslt_port_no | value -> String, state -> String |
| 8 | 番号案内 (Number Guide) | rslt_no_guide | value -> String, state -> String |
| 9 | トーク有無 (Token Existence) | rslt_toki_um | value -> String, state -> String |
| 10 | サービス契約内容番号 (Service Contract Detail No.) | rslt_svc_kei_ucwk_no | value -> String, state -> String |
| 11 | サービス契約内容ステータス (Service Contract Detail Status) | rslt_svc_kei_ucwk_stat | value -> String, state -> String |
| 12 | 申請明細番号 (Application Detail No.) | rslt_mskm_dtl_no | value -> String, state -> String |
| 13 | 料金コースコード (Fee Course Code) | rslt_pcrs_cd | value -> String, state -> String |
| 14 | 料金プランコード (Fee Plan Code) | rslt_pplan_cd | value -> String, state -> String |
| 15 | 表示用サービス契約内容ステータス (Display Service Contract Detail Status) | dsp_svc_kei_ucwk_stat | value -> String, state -> String |
| 16 | 表示用サービス契約内容ステータス名称 (Display Service Contract Detail Status Name) | dsp_svc_kei_ucwk_stat_nm | value -> String, state -> String |
| 17 | 屋内機器種別コード (Indoor Device Type Code) | taknkiki_sbt_cd | value -> String, state -> String |
| 18 | 機器提供サービス名 (Equipment Provision Service Name) | kktk_svc_nm | value -> String, state -> String |
| 19 | 番ポ廃止依頼制御コード (Banpo Cancellation Request Control Code) | (recursive list) | Parses path/index, delegates to child bean |
| 20 | (no match) | - | Returns without action |

4. **Subkey routing (for branches 1-18):** Within each key branch, the method further checks the `subkey` case-insensitively against `"value"`, `"enable"`, or `"state"`, calling the appropriate typed setter.
5. **Recursive banpo branch (branch 19):** This branch parses a path-delimited key string (e.g., `"プリリスト/0/プラン名"`), extracts an index, validates it against the `bmp_haishi_req_ctrl_cd_list`, then recursively calls `storeModelData` on the child bean.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The business field identifier — a Japanese-display name corresponding to a specific screen field (e.g., "電話番号" for phone number, "番ポ" for banpo cancellation, "契約状態" for contract status). For the banpo control code list, it carries a path-formatted string (e.g., `"プリリスト/0/プラン名"`) that encodes a list index and nested field name. |
| 2 | `subkey` | `String` | A meta-property selector indicating which aspect of the field to set: `"value"` for the actual data value, `"enable"` for editability flag, or `"state"` for UI state (e.g., display/hide/readonly). Case-insensitive comparison. |
| 3 | `in_value` | `Object` | The data to store. Cast to the appropriate type at runtime: `String` for value/state fields, `Boolean` for enable fields. May also be `null`. |
| 4 | `isSetAsString` | `boolean` | Unused in this method. Per Javadoc: set to `true` when setting a String value into a Long-type item's Value property. This method does not implement this logic — it simply casts `in_value` as-is. |

**Instance fields read:**
| Field | Type | Usage |
|-------|------|-------|
| `bmp_haishi_req_ctrl_cd_list` | `X33VDataTypeList` | Used only in the banpo control code recursive branch to store child bean instances and validate list indices. |

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `JKKAdEditCC.substring` | JKKAdEditCC | - | Calls `substring` utility for string parsing |
| U | `JKKAdEdit.substring` | JKKAdEdit | - | Calls `substring` utility for string parsing |
| U | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Calls `substring` utility for string parsing |
| U | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Calls `substring` utility for string parsing |
| U | `KKW00130SF02DBean.setRslt_telno_value` | KKW00130SF02DBean | - | Sets phone number value |
| U | `KKW00130SF02DBean.setRslt_telno_enabled` | KKW00130SF02DBean | - | Sets phone number enabled flag |
| U | `KKW00130SF02DBean.setRslt_telno_state` | KKW00130SF02DBean | - | Sets phone number state |
| U | `KKW00130SF02DBean.setRslt_bmp_value` | KKW00130SF02DBean | - | Sets banpo (order cancellation) value |
| U | `KKW00130SF02DBean.setRslt_bmp_enabled` | KKW00130SF02DBean | - | Sets banpo enabled flag |
| U | `KKW00130SF02DBean.setRslt_bmp_state` | KKW00130SF02DBean | - | Sets banpo state |
| U | `KKW00130SF02DBean.setRslt_kei_stat_value` | KKW00130SF02DBean | - | Sets contract status value |
| U | `KKW00130SF02DBean.setRslt_kei_stat_enabled` | KKW00130SF02DBean | - | Sets contract status enabled flag |
| U | `KKW00130SF02DBean.setRslt_kei_stat_state` | KKW00130SF02DBean | - | Sets contract status state |
| U | `KKW00130SF02DBean.setRslt_svc_staymd_value` | KKW00130SF02DBean | - | Sets service start date value |
| U | `KKW00130SF02DBean.setRslt_svc_staymd_enabled` | KKW00130SF02DBean | - | Sets service start date enabled flag |
| U | `KKW00130SF02DBean.setRslt_svc_staymd_state` | KKW00130SF02DBean | - | Sets service start date state |
| U | `KKW00130SF02DBean.setRslt_svc_endymd_value` | KKW00130SF02DBean | - | Sets service end date value |
| U | `KKW00130SF02DBean.setRslt_svc_endymd_enabled` | KKW00130SF02DBean | - | Sets service end date enabled flag |
| U | `KKW00130SF02DBean.setRslt_svc_endymd_state` | KKW00130SF02DBean | - | Sets service end date state |
| U | `KKW00130SF02DBean.setRslt_va_model_value` | KKW00130SF02DBean | - | Sets VR type value |
| U | `KKW00130SF02DBean.setRslt_va_model_enabled` | KKW00130SF02DBean | - | Sets VR type enabled flag |
| U | `KKW00130SF02DBean.setRslt_va_model_state` | KKW00130SF02DBean | - | Sets VR type state |
| U | `KKW00130SF02DBean.setRslt_port_no_value` | KKW00130SF02DBean | - | Sets port number value |
| U | `KKW00130SF02DBean.setRslt_port_no_enabled` | KKW00130SF02DBean | - | Sets port number enabled flag |
| U | `KKW00130SF02DBean.setRslt_port_no_state` | KKW00130SF02DBean | - | Sets port number state |
| U | `KKW00130SF02DBean.setRslt_no_guide_value` | KKW00130SF02DBean | - | Sets number guide value |
| U | `KKW00130SF02DBean.setRslt_no_guide_enabled` | KKW00130SF02DBean | - | Sets number guide enabled flag |
| U | `KKW00130SF02DBean.setRslt_no_guide_state` | KKW00130SF02DBean | - | Sets number guide state |
| U | `KKW00130SF02DBean.setRslt_toki_um_value` | KKW00130SF02DBean | - | Sets token existence value |
| U | `KKW00130SF02DBean.setRslt_toki_um_enabled` | KKW00130SF02DBean | - | Sets token existence enabled flag |
| U | `KKW00130SF02DBean.setRslt_toki_um_state` | KKW00130SF02DBean | - | Sets token existence state |
| U | `KKW00130SF02DBean.setRslt_svc_kei_ucwk_no_value` | KKW00130SF02DBean | - | Sets service contract detail number value |
| U | `KKW00130SF02DBean.setRslt_svc_kei_ucwk_no_state` | KKW00130SF02DBean | - | Sets service contract detail number state |
| U | `KKW00130SF02DBean.setRslt_svc_kei_ucwk_stat_value` | KKW00130SF02DBean | - | Sets service contract detail status value |
| U | `KKW00130SF02DBean.setRslt_svc_kei_ucwk_stat_state` | KKW00130SF02DBean | - | Sets service contract detail status state |
| U | `KKW00130SF02DBean.setRslt_mskm_dtl_no_value` | KKW00130SF02DBean | - | Sets application detail number value |
| U | `KKW00130SF02DBean.setRslt_mskm_dtl_no_state` | KKW00130SF02DBean | - | Sets application detail number state |
| U | `KKW00130SF02DBean.setRslt_pcrs_cd_value` | KKW00130SF02DBean | - | Sets fee course code value |
| U | `KKW00130SF02DBean.setRslt_pcrs_cd_state` | KKW00130SF02DBean | - | Sets fee course code state |
| U | `KKW00130SF02DBean.setRslt_pplan_cd_value` | KKW00130SF02DBean | - | Sets fee plan code value |
| U | `KKW00130SF02DBean.setRslt_pplan_cd_state` | KKW00130SF02DBean | - | Sets fee plan code state |
| U | `KKW00130SF02DBean.setDsp_svc_kei_ucwk_stat_value` | KKW00130SF02DBean | - | Sets display service contract detail status value |
| U | `KKW00130SF02DBean.setDsp_svc_kei_ucwk_stat_state` | KKW00130SF02DBean | - | Sets display service contract detail status state |
| U | `KKW00130SF02DBean.setDsp_svc_kei_ucwk_stat_nm_value` | KKW00130SF02DBean | - | Sets display service contract detail status name value |
| U | `KKW00130SF02DBean.setDsp_svc_kei_ucwk_stat_nm_state` | KKW00130SF02DBean | - | Sets display service contract detail status name state |
| U | `KKW00130SF02DBean.setTaknkiki_sbt_cd_value` | KKW00130SF02DBean | - | Sets indoor device type code value |
| U | `KKW00130SF02DBean.setTaknkiki_sbt_cd_state` | KKW00130SF02DBean | - | Sets indoor device type code state |
| U | `KKW00130SF02DBean.setKktk_svc_nm_value` | KKW00130SF02DBean | - | Sets equipment provision service name value |
| U | `KKW00130SF02DBean.setKktk_svc_nm_state` | KKW00130SF02DBean | - | Sets equipment provision service name state |

**Notes:** This method performs no database reads or writes directly. It is a pure in-memory data routing utility. All listed operations are **Update (U)** — they set the internal state of the bean's fields. String utility methods (`substring` from `JKKAdEditCC`, `JKKAdEdit`, `JKKTelnoInfoAddMapperCC`, `JDKejbStringEdit`) are used internally in the banpo control code path for string parsing.

## 5. Dependency Trace

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

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 | `KKW00130SF02DBean.storeModelData()` | (self — overloaded call within same class) | `storeModelData` [-] |
| 2 | `KKW00130SF02DBean.storeModelData()` | (self — overloaded call within same class) | `storeModelData` [-] |

**Notes:** The direct callers are all within the same `KKW00130SF02DBean` class — likely an overloaded `storeModelData` method (without the `isSetAsString` parameter) that delegates to this implementation. No external screen or CBS entry point was found within 8 hops. The method is a leaf-level data-binding utility, not an entry point into broader business workflows.

**Terminal operations reachable from this method:**

| Terminal | Type | Description |
|----------|------|-------------|
| `storeModelData` | - | Recursive delegation to child bean for banpo control code list |
| `substring` | - | String parsing in banpo control code path |
| `setRslt_telno_value` | U | Sets phone number value |
| `setRslt_telno_enabled` | U | Sets phone number enabled flag |
| `setRslt_telno_state` | U | Sets phone number state |
| `setRslt_bmp_value` | U | Sets banpo value |
| `setRslt_bmp_enabled` | U | Sets banpo enabled flag |
| `setRslt_bmp_state` | U | Sets banpo state |
| `setRslt_kei_stat_value` | U | Sets contract status value |
| `setRslt_kei_stat_enabled` | U | Sets contract status enabled flag |
| `setRslt_kei_stat_state` | U | Sets contract status state |
| `setRslt_svc_staymd_value` | U | Sets service start date value |
| `setRslt_svc_staymd_enabled` | U | Sets service start date enabled flag |
| `setRslt_svc_staymd_state` | U | Sets service start date state |
| `setRslt_svc_endymd_value` | U | Sets service end date value |
| `setRslt_svc_endymd_enabled` | U | Sets service end date enabled flag |
| `setRslt_svc_endymd_state` | U | Sets service end date state |
| `setRslt_va_model_value` | U | Sets VR type value |
| `setRslt_va_model_enabled` | U | Sets VR type enabled flag |
| `setRslt_va_model_state` | U | Sets VR type state |
| `setRslt_port_no_value` | U | Sets port number value |
| `setRslt_port_no_enabled` | U | Sets port number enabled flag |
| `setRslt_port_no_state` | U | Sets port number state |
| `setRslt_no_guide_value` | U | Sets number guide value |
| `setRslt_no_guide_enabled` | U | Sets number guide enabled flag |
| `setRslt_no_guide_state` | U | Sets number guide state |
| `setRslt_toki_um_value` | U | Sets token existence value |
| `setRslt_toki_um_enabled` | U | Sets token existence enabled flag |
| `setRslt_toki_um_state` | U | Sets token existence state |
| `setRslt_svc_kei_ucwk_no_value` | U | Sets service contract detail number value |
| `setRslt_svc_kei_ucwk_no_state` | U | Sets service contract detail number state |
| `setRslt_svc_kei_ucwk_stat_value` | U | Sets service contract detail status value |
| `setRslt_svc_kei_ucwk_stat_state` | U | Sets service contract detail status state |
| `setRslt_mskm_dtl_no_value` | U | Sets application detail number value |
| `setRslt_mskm_dtl_no_state` | U | Sets application detail number state |
| `setRslt_pcrs_cd_value` | U | Sets fee course code value |
| `setRslt_pcrs_cd_state` | U | Sets fee course code state |
| `setRslt_pplan_cd_value` | U | Sets fee plan code value |
| `setRslt_pplan_cd_state` | U | Sets fee plan code state |
| `setDsp_svc_kei_ucwk_stat_value` | U | Sets display service contract detail status value |
| `setDsp_svc_kei_ucwk_stat_state` | U | Sets display service contract detail status state |
| `setDsp_svc_kei_ucwk_stat_nm_value` | U | Sets display service contract detail status name value |
| `setDsp_svc_kei_ucwk_stat_nm_state` | U | Sets display service contract detail status name state |
| `setTaknkiki_sbt_cd_value` | U | Sets indoor device type code value |
| `setTaknkiki_sbt_cd_state` | U | Sets indoor device type code state |
| `setKktk_svc_nm_value` | U | Sets equipment provision service name value |
| `setKktk_svc_nm_state` | U | Sets equipment provision service name state |

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] Null guard (L1040)

> Guard clause: if key or subkey is null, return immediately without any processing.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(key == null || subkey == null)` |
| 2 | RETURN | `return;` |

---

**Block 2** — [SET] Separator extraction (L1044)

> Find the first "/" character position in key. This value is stored but not used by any branch except Block 19 (banpo control code).

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

---

**Block 3** — [IF/ELSE-IF/ELSE] Key dispatch: 電話番号 (Phone Number) (L1048)

> Sets the phone number field properties. This is Item ID: rslt_telno. Only this field supports the "enable" subkey setter with Boolean cast.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(key.equals("電話番号"))` |

**Block 3.1** — [IF] subkey == "value" (L1050)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_telno_value((String)in_value);` // Cast in_value to String and set phone number value |

**Block 3.2** — [ELSE-IF] subkey == "enable" (L1052)

> When subkey is "enable", set the enabled flag (Boolean).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_telno_enabled((Boolean)in_value);` // Cast in_value to Boolean and set phone number enabled flag |

**Block 3.3** — [ELSE-IF] subkey == "state" (L1054)

> When subkey is "state", set the UI state.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_telno_state((String)in_value);` // Cast in_value to String and set phone number state |

---

**Block 4** — [ELSE-IF] Key dispatch: 番ポ (Banpo/Order Cancellation) (L1060)

> Sets the banpo (order cancellation) field properties. Item ID: rslt_bmp. This is the second field supporting "enable" subkey with Boolean cast.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("番ポ"))` |

**Block 4.1** — [IF] subkey == "value" (L1062)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_bmp_value((String)in_value);` |

**Block 4.2** — [ELSE-IF] subkey == "enable" (L1064)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_bmp_enabled((Boolean)in_value);` |

**Block 4.3** — [ELSE-IF] subkey == "state" (L1066)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_bmp_state((String)in_value);` |

---

**Block 5** — [ELSE-IF] Key dispatch: 契約状態 (Contract Status) (L1072)

> Sets the contract status field. Item ID: rslt_kei_stat. Supports "value" and "state" only (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("契約状態"))` |

**Block 5.1** — [IF] subkey == "value" (L1074)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_kei_stat_value((String)in_value);` |

**Block 5.2** — [ELSE-IF] subkey == "enable" (L1076)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_kei_stat_enabled((Boolean)in_value);` |

**Block 5.3** — [ELSE-IF] subkey == "state" (L1078)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_kei_stat_state((String)in_value);` |

---

**Block 6** — [ELSE-IF] Key dispatch: サービス開始年月日 (Service Start Date) (L1084)

> Sets the service start date field. Item ID: rslt_svc_staymd.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("サービス開始年月日"))` |

**Block 6.1** — [IF] subkey == "value" (L1086)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_svc_staymd_value((String)in_value);` |

**Block 6.2** — [ELSE-IF] subkey == "enable" (L1088)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_svc_staymd_enabled((Boolean)in_value);` |

**Block 6.3** — [ELSE-IF] subkey == "state" (L1090)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_svc_staymd_state((String)in_value);` |

---

**Block 7** — [ELSE-IF] Key dispatch: サービス終了年月日 (Service End Date) (L1096)

> Sets the service end date field. Item ID: rslt_svc_endymd.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("サービス終了年月日"))` |

**Block 7.1** — [IF] subkey == "value" (L1098)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_svc_endymd_value((String)in_value);` |

**Block 7.2** — [ELSE-IF] subkey == "enable" (L1100)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_svc_endymd_enabled((Boolean)in_value);` |

**Block 7.3** — [ELSE-IF] subkey == "state" (L1102)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_svc_endymd_state((String)in_value);` |

---

**Block 8** — [ELSE-IF] Key dispatch: VR型 (VR Type) (L1108)

> Sets the VR (Virtual Reality / VR format) type field. Item ID: rslt_va_model.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("VR型"))` |

**Block 8.1** — [IF] subkey == "value" (L1110)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_va_model_value((String)in_value);` |

**Block 8.2** — [ELSE-IF] subkey == "enable" (L1112)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_va_model_enabled((Boolean)in_value);` |

**Block 8.3** — [ELSE-IF] subkey == "state" (L1114)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_va_model_state((String)in_value);` |

---

**Block 9** — [ELSE-IF] Key dispatch: ポート番号 (Port Number) (L1120)

> Sets the port number field. Item ID: rslt_port_no. Supports value, enable, and state.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("ポート番号"))` |

**Block 9.1** — [IF] subkey == "value" (L1122)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_port_no_value((String)in_value);` |

**Block 9.2** — [ELSE-IF] subkey == "enable" (L1124)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_port_no_enabled((Boolean)in_value);` |

**Block 9.3** — [ELSE-IF] subkey == "state" (L1126)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_port_no_state((String)in_value);` |

---

**Block 10** — [ELSE-IF] Key dispatch: 番号案内 (Number Guide) (L1132)

> Sets the number guide field. Item ID: rslt_no_guide. Supports value, enable, and state.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("番号案内"))` |

**Block 10.1** — [IF] subkey == "value" (L1134)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_no_guide_value((String)in_value);` |

**Block 10.2** — [ELSE-IF] subkey == "enable" (L1136)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_no_guide_enabled((Boolean)in_value);` |

**Block 10.3** — [ELSE-IF] subkey == "state" (L1138)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_no_guide_state((String)in_value);` |

---

**Block 11** — [ELSE-IF] Key dispatch: トーク有無 (Token Existence) (L1144)

> Sets the token existence (toki = トーク, um = 有無) field. Item ID: rslt_toki_um. Supports value, enable, and state.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("トーク有無"))` |

**Block 11.1** — [IF] subkey == "value" (L1146)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_toki_um_value((String)in_value);` |

**Block 11.2** — [ELSE-IF] subkey == "enable" (L1148)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("enable"))` |
| 2 | CALL | `setRslt_toki_um_enabled((Boolean)in_value);` |

**Block 11.3** — [ELSE-IF] subkey == "state" (L1150)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_toki_um_state((String)in_value);` |

---

**Block 12** — [ELSE-IF] Key dispatch: サービス契約内容番号 (Service Contract Detail Number) (L1182)

> Sets the service contract detail number field. Item ID: rslt_svc_kei_ucwk_no. Supports "value" and "state" only (no "enable" branch).

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("サービス契約内容番号"))` |

**Block 12.1** — [IF] subkey == "value" (L1184)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_svc_kei_ucwk_no_value((String)in_value);` |

**Block 12.2** — [ELSE-IF] subkey == "state" (L1186)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_svc_kei_ucwk_no_state((String)in_value);` |

---

**Block 13** — [ELSE-IF] Key dispatch: サービス契約内容ステータス (Service Contract Detail Status) (L1192)

> Sets the service contract detail status field. Item ID: rslt_svc_kei_ucwk_stat. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("サービス契約内容ステータス"))` |

**Block 13.1** — [IF] subkey == "value" (L1194)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_svc_kei_ucwk_stat_value((String)in_value);` |

**Block 13.2** — [ELSE-IF] subkey == "state" (L1196)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_svc_kei_ucwk_stat_state((String)in_value);` |

---

**Block 14** — [ELSE-IF] Key dispatch: 申請明細番号 (Application Detail Number) (L1202)

> Sets the application detail number field. Item ID: rslt_mskm_dtl_no. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("申請明細番号"))` |

**Block 14.1** — [IF] subkey == "value" (L1204)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_mskm_dtl_no_value((String)in_value);` |

**Block 14.2** — [ELSE-IF] subkey == "state" (L1206)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_mskm_dtl_no_state((String)in_value);` |

---

**Block 15** — [ELSE-IF] Key dispatch: 料金コースコード (Fee Course Code) (L1212)

> Sets the fee course code field. Item ID: rslt_pcrs_cd. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("料金コースコード"))` |

**Block 15.1** — [IF] subkey == "value" (L1214)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_pcrs_cd_value((String)in_value);` |

**Block 15.2** — [ELSE-IF] subkey == "state" (L1216)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_pcrs_cd_state((String)in_value);` |

---

**Block 16** — [ELSE-IF] Key dispatch: 料金プランコード (Fee Plan Code) (L1221)

> Sets the fee plan code field. Item ID: rslt_pplan_cd. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("料金プランコード"))` |

**Block 16.1** — [IF] subkey == "value" (L1223)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setRslt_pplan_cd_value((String)in_value);` |

**Block 16.2** — [ELSE-IF] subkey == "state" (L1225)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setRslt_pplan_cd_state((String)in_value);` |

---

**Block 17** — [ELSE-IF] Key dispatch: 表示用サービス契約内容ステータス (Display Service Contract Detail Status) (L1230)

> Sets the display service contract detail status field. Item ID: dsp_svc_kei_ucwk_stat. Added in OT-2013-0000311. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("表示用サービス契約内容ステータス"))` |

**Block 17.1** — [IF] subkey == "value" (L1232)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setDsp_svc_kei_ucwk_stat_value((String)in_value);` |

**Block 17.2** — [ELSE-IF] subkey == "state" (L1234)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setDsp_svc_kei_ucwk_stat_state((String)in_value);` |

---

**Block 18** — [ELSE-IF] Key dispatch: 表示用サービス契約内容ステータス名称 (Display Service Contract Detail Status Name) (L1239)

> Sets the display service contract detail status name field. Item ID: dsp_svc_kei_ucwk_stat_nm. Added in OT-2013-0000311. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("表示用サービス契約内容ステータス名称"))` |

**Block 18.1** — [IF] subkey == "value" (L1241)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setDsp_svc_kei_ucwk_stat_nm_value((String)in_value);` |

**Block 18.2** — [ELSE-IF] subkey == "state" (L1243)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setDsp_svc_kei_ucwk_stat_nm_state((String)in_value);` |

---

**Block 19** — [ELSE-IF] Key dispatch: 屋内機器種別コード (Indoor Device Type Code) (L1251)

> Sets the indoor device type code field. Item ID: taknkiki_sbt_cd. Added in ANK-1857-00-00. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("屋内機器種別コード"))` |

**Block 19.1** — [IF] subkey == "value" (L1253)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setTaknkiki_sbt_cd_value((String)in_value);` |

**Block 19.2** — [ELSE-IF] subkey == "state" (L1255)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setTaknkiki_sbt_cd_state((String)in_value);` |

---

**Block 20** — [ELSE-IF] Key dispatch: 機器提供サービス名 (Equipment Provision Service Name) (L1260)

> Sets the equipment provision service name field. Item ID: kktk_svc_nm. Added in ANK-1857-00-00. Supports "value" and "state" only.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("機器提供サービス名"))` |

**Block 20.1** — [IF] subkey == "value" (L1262)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `if(subkey.equalsIgnoreCase("value"))` |
| 2 | CALL | `setKktk_svc_nm_value((String)in_value);` |

**Block 20.2** — [ELSE-IF] subkey == "state" (L1264)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(subkey.equalsIgnoreCase("state"))` |
| 2 | CALL | `setKktk_svc_nm_state((String)in_value);` |

---

**Block 21** — [ELSE-IF] Key dispatch: 番ポ廃止依頼制御コード (Banpo Cancellation Request Control Code) — Recursive List Handling (L1270)

> This is the most complex branch. It handles variable-length banpo control code entries. The key is expected in path format (e.g., "プリリスト/0/プラン名"). It parses the path to extract a list index and a nested field key, then delegates to the child bean's `storeModelData` method. This supports dynamic list binding for an arbitrary number of banpo control code entries.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `else if(key.equals("番ポ廃止依頼制御コード"))` |
| 2 | SET | `String keyRemain = key.substring(separaterPoint + 1);` // Extract substring after first "/" (e.g., from "プリリスト/0/プラン名" get "0/プラン名") |
| 3 | SET | `separaterPoint = keyRemain.indexOf("/");` // Search for next delimiter |
| 4 | IF | `if(separaterPoint > 0)` // Valid delimiter found |

**Block 21.1** — [SET] Extract and parse index (L1277)

| # | Type | Code |
|---|------|------|
| 1 | SET | `Integer tmpIndexInt = null;` // Initialize index variable |
| 2 | SET | `key = keyRemain.substring(0, separaterPoint);` // Extract index portion (e.g., "0") |
| 3 | TRY | `tmpIndexInt = Integer.valueOf(key);` // Try to parse as integer |
| 4 | CATCH | `catch(NumberFormatException e) { tmpIndexInt = null; }` // If not numeric, reset to null |

**Block 21.2** — [IF] Index is valid and in range (L1284)

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(tmpIndexInt != null)` // Index is a valid integer |

**Block 21.2.1** — [IF] Index within list bounds (L1285)

| # | Type | Code |
|---|------|------|
| 1 | SET | `int tmpIndex = tmpIndexInt.intValue();` |
| 2 | IF | `if(tmpIndex >= 0 && tmpIndex < bmp_haishi_req_ctrl_cd_list.size())` // Index within list bounds |

**Block 21.2.1.1** — [SET + CALL] Recursive delegation (L1288)

> Generate the nested field key and recursively call storeModelData on the child bean to handle the nested field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `key = keyRemain.substring(separaterPoint + 1);` // Extract nested field name (e.g., "プラン名") |
| 2 | CALL | `((X33VDataTypeBeanInterface)bmp_haishi_req_ctrl_cd_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString);` // Delegate to child bean's storeModelData |

---

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| 電話番号 (rslt_telno) | Field | Phone Number — the customer's phone number for the service contract |
| 番ポ (rslt_bmp) | Field | Banpo (番止依頼 — Order Cancellation Request) — indicates whether an order cancellation request has been made |
| 契約状態 (rslt_kei_stat) | Field | Contract Status — the current status of the service contract (e.g., active, terminated, suspended) |
| サービス開始年月日 (rslt_svc_staymd) | Field | Service Start Date/Time — the date and time when the service begins |
| サービス終了年月日 (rslt_svc_endymd) | Field | Service End Date/Time — the date and time when the service terminates |
| VR型 (rslt_va_model) | Field | VR Type — the virtual reality / VR format type for the service (likely relates to VR-based service delivery) |
| ポート番号 (rslt_port_no) | Field | Port Number — the network port number assigned to the service (e.g., for FTTH fiber optic connections) |
| 番号案内 (rslt_no_guide) | Field | Number Guide — guide/information about the phone number (e.g., number portability guidance) |
| トーク有無 (rslt_toki_um) | Field | Token Existence (トーク = トークン, 有無 = existence/non-existence) — whether a token is present/assigned for the service |
| 移転トーク開始年月日 (rslt_toki_sta_ymd) | Field | Transfer Token Start Date (commented out) — the date when a transferred token becomes active |
| 移転トーク終了年月日 (rslt_toki_end_ymd) | Field | Transfer Token End Date (commented out) — the date when a transferred token expires |
| サービス契約内容番号 (rslt_svc_kei_ucwk_no) | Field | Service Contract Detail Number — an internal tracking ID for service contract line items |
| サービス契約内容ステータス (rslt_svc_kei_ucwk_stat) | Field | Service Contract Detail Status — the status of a service contract detail item |
| 申請明細番号 (rslt_mskm_dtl_no) | Field | Application Detail Number — the detail line number for a service application |
| 料金コースコード (rslt_pcrs_cd) | Field | Fee Course Code — the pricing course/code for the service (e.g., basic, premium tiers) |
| 料金プランコード (rslt_pplan_cd) | Field | Fee Plan Code — the specific pricing plan identifier for the service |
| 表示用サービス契約内容ステータス (dsp_svc_kei_ucwk_stat) | Field | Display Service Contract Detail Status — a display-oriented copy of the service contract detail status (added in OT-2013-0000311) |
| 表示用サービス契約内容ステータス名称 (dsp_svc_kei_ucwk_stat_nm) | Field | Display Service Contract Detail Status Name — display-oriented status name for the service contract detail |
| 屋内機器種別コード (taknkiki_sbt_cd) | Field | Indoor Device Type Code — the type code of indoor equipment (e.g., ONU, router) provided with the service (added in ANK-1857-00-00) |
| 機器提供サービス名 (kktk_svc_nm) | Field | Equipment Provision Service Name — the name of the equipment provisioning service (added in ANK-1857-00-00) |
| 番ポ廃止依頼制御コード (bmp_haishi_req_ctrl_cd) | Field | Banpo Cancellation Request Control Code — a control code that governs banpo cancellation request behavior; supports list-based dynamic binding |
| rslt | Prefix | Result — the prefix used for result fields in the bean (e.g., rslt_telno = result phone number) |
| dsp | Prefix | Display — the prefix for display-oriented fields (e.g., dsp_svc_kei_ucwk_stat = display service contract detail status) |
| kktk | Prefix | Equipment/Device — the prefix for equipment-related fields (e.g., kktk_svc_nm = equipment provision service name) |
| taknkiki | Prefix | Indoor device — short for屋内機器, the prefix for indoor device type fields |
| X33V | Framework | Fujitsu Futurity X33V — a Java web framework for enterprise web applications, providing view bean interfaces |
| X33VDataTypeBeanInterface | Interface | The X33V interface for typed data beans that support load/save model data operations |
| X33VDataTypeList | Class | A list container for X33V typed data bean instances |
| X33VListedBeanInterface | Interface | The X33V interface for beans that contain list data |
| enable | Subkey | Controls whether a field is user-editable (true = editable, false = read-only) |
| state | Subkey | Controls UI display state of a field (e.g., "READONLY", "HIDDEN", "REQUIRED") |
| value | Subkey | Contains the actual business data value of the field |
| KKW00130SF | Module | The screen module for FTTH (Fiber To The Home) service contract detail inquiry/registration |
| K-Opticom | Company | K-Opticom — the telecommunications company operating the fiber optic service |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband internet service |
| banpo (番ポ) | Business term | Banpo (番止依頼) — order cancellation/mutation request in telecom operations |
| OT | Ticket prefix | Operation Ticket — an internal change request/ticket identifier |
| ANK | Ticket prefix | ANK — an internal project/change request ticket identifier |
