# Business Logic — KKW00846SF02DBean.storeModelData() [159 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA18001SF.KKW00846SF02DBean` |
| Layer | Utility (Data-binding Bean within the Webview layer) |
| Module | `KKA18001SF` (Package: `eo.web.webview.KKA18001SF`) |

## 1. Role

### KKW00846SF02DBean.storeModelData()

This method serves as the central **data-binding dispatcher** for the KKW00846 screen ("Security Option Registration" / セキュリティオプション登録). It receives a key-value pair along with metadata and maps them into the appropriate setter method on the bean instance, effectively hydrating the model layer from incoming form or API data. The method implements a **routing/dispatch pattern**: the incoming `key` parameter (which is a Japanese-labeled field name such as "選択区分" for Selection Classification or "利用開始年月" for Service Start Y/M) is compared against a series of hard-coded Japanese labels, and the `subkey` parameter (value / enable / state) determines which specific bean property to populate. This design allows callers to push heterogeneous property updates through a single entry point, decoupling the caller from knowing the exact bean field structure. Its role in the larger system is that of a **shared UI model updater** — it is the primary mechanism by which the screen's form data flows into the bean model, supporting both data display (state), editability (enabled), and actual values (value) for each UI-bound field.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData(key, subkey, in_value, isSetAsString)"])
    NULL_CHECK{key or subkey is null?}
    EARLY_RETURN(["Return early"])
    FIND_SLASH["Find separator point in key"]
    DISPATCH{Route by key}
    CHOICE_DIV["key = 選択区分 (Selection Classification)"]
    SUBKEY_V1{subkey = value / enable / state?}
    SET_CHOICE_DIV_VAL["setChoice_div_value(Boolean)"]
    SET_CHOICE_DIV_ENB["setChoice_div_enabled(Boolean)"]
    SET_CHOICE_DIV_ST["setChoice_div_state(String)"]
    USE_STAYMD_YM["key = 利用開始年月 (Service Start Y/M)"]
    SET_USE_STAYMD_VAL["setUse_staymd_value(String)"]
    SET_USE_STAYMD_ST["setUse_staymd_state(String)"]
    USE_STAYMD_YR["key = 利用開始日（年） (Service Start Year)"]
    SET_US_YR_VAL["setUse_staymd_year_value(String)"]
    SET_US_YR_ENB["setUse_staymd_year_enabled(Boolean)"]
    SET_US_YR_ST["setUse_staymd_year_state(String)"]
    USE_STAYMD_MO["key = 利用開始日（月） (Service Start Month)"]
    SET_US_MO_VAL["setUse_staymd_mon_value(String)"]
    SET_US_MO_ENB["setUse_staymd_mon_enabled(Boolean)"]
    SET_US_MO_ST["setUse_staymd_mon_state(String)"]
    USE_STAYMD_DY["key = 利用開始日（日） (Service Start Day)"]
    SET_US_DY_VAL["setUse_staymd_day_value(String)"]
    SET_US_DY_ENB["setUse_staymd_day_enabled(Boolean)"]
    SET_US_DY_ST["setUse_staymd_day_state(String)"]
    KAKIN_UM["key = 課金有無 (Billing Existence)"]
    SET_KAKIN_VAL["setKakin_um_value(String)"]
    SET_KAKIN_ENB["setKakin_um_enabled(Boolean)"]
    SET_KAKIN_ST["setKakin_um_state(String)"]
    OP_SVC_CD["key = オプションサービスコード (Option Service Code)"]
    SET_OP_SVC_VAL["setOp_svc_cd_value(String)"]
    SET_OP_SVC_ST["setOp_svc_cd_state(String)"]
    DISP_OP_SVC_NM["key = 表示用オプションサービスコード名称 (Display Option Service Code Name)"]
    SET_DISP_VAL["setDisp_op_svc_cd_nm_value(String)"]
    SET_DISP_ENB["setDisp_op_svc_cd_nm_enabled(Boolean)"]
    SET_DISP_ST["setDisp_op_svc_cd_nm_state(String)"]
    OP_SVC_KEI_STAT["key = オプションサービス契約ステータス (Option Service Contract Status)"]
    SET_OPSK_VAL["setOp_svc_kei_stat_value(String)"]
    SET_OPSK_ST["setOp_svc_kei_stat_state(String)"]
    SVC_STA_YMD["key = サービス開始年月日 (Service Start Y/M/D)"]
    SET_SVCSTA_VAL["setSvc_sta_ymd_value(String)"]
    SET_SVCSTA_ST["setSvc_sta_ymd_state(String)"]
    RSV_PSB_PRD["key = 予約可能期間 (Reservation Possible Period)"]
    SET_RSV_VAL["setRsv_psb_prd_value(String)"]
    SET_RSV_ST["setRsv_psb_prd_state(String)"]
    FIRST_PRC["key = 初回料金計算日 (First Charge Calculation Date)"]
    SET_FIRST_VAL["setFirst_prc_calc_ymd_value(String)"]
    SET_FIRST_ST["setFirst_prc_calc_ymd_state(String)"]
    ADD_DSL_CD["key = 登録解約コード (Registration/Cancel Code)"]
    SET_ADD_VAL["setAdd_dsl_cd_value(String)"]
    SET_ADD_ST["setAdd_dsl_cd_state(String)"]
    NO_MATCH["No matching key - no action"]
    END_NODE(["Return / Next"])

    START --> NULL_CHECK
    NULL_CHECK -->|true| EARLY_RETURN
    NULL_CHECK -->|false| FIND_SLASH
    FIND_SLASH --> DISPATCH
    DISPATCH -->|選択区分| CHOICE_DIV
    DISPATCH -->|利用開始年月| USE_STAYMD_YM
    DISPATCH -->|利用開始日（年）| USE_STAYMD_YR
    DISPATCH -->|利用開始日（月）| USE_STAYMD_MO
    DISPATCH -->|利用開始日（日）| USE_STAYMD_DY
    DISPATCH -->|課金有無| KAKIN_UM
    DISPATCH -->|オプションサービスコード| OP_SVC_CD
    DISPATCH -->|表示用オプションサービスコード名称| DISP_OP_SVC_NM
    DISPATCH -->|オプションサービス契約ステータス| OP_SVC_KEI_STAT
    DISPATCH -->|サービス開始年月日| SVC_STA_YMD
    DISPATCH -->|予約可能期間| RSV_PSB_PRD
    DISPATCH -->|初回料金計算日| FIRST_PRC
    DISPATCH -->|登録解約コード| ADD_DSL_CD
    DISPATCH -->|otherwise| NO_MATCH

    CHOICE_DIV --> SUBKEY_V1
    SUBKEY_V1 -->|value| SET_CHOICE_DIV_VAL
    SUBKEY_V1 -->|enable| SET_CHOICE_DIV_ENB
    SUBKEY_V1 -->|state| SET_CHOICE_DIV_ST
    SUBKEY_V1 -->|otherwise| NO_MATCH

    USE_STAYMD_YM --> SET_USE_STAYMD_VAL
    SET_USE_STAYMD_VAL --> END_NODE
    USE_STAYMD_YM --> SET_USE_STAYMD_ST
    SET_USE_STAYMD_ST --> END_NODE

    USE_STAYMD_YR --> SET_US_YR_VAL
    SET_US_YR_VAL --> END_NODE
    USE_STAYMD_YR --> SET_US_YR_ENB
    SET_US_YR_ENB --> END_NODE
    USE_STAYMD_YR --> SET_US_YR_ST
    SET_US_YR_ST --> END_NODE

    USE_STAYMD_MO --> SET_US_MO_VAL
    SET_US_MO_VAL --> END_NODE
    USE_STAYMD_MO --> SET_US_MO_ENB
    SET_US_MO_ENB --> END_NODE
    USE_STAYMD_MO --> SET_US_MO_ST
    SET_US_MO_ST --> END_NODE

    USE_STAYMD_DY --> SET_US_DY_VAL
    SET_US_DY_VAL --> END_NODE
    USE_STAYMD_DY --> SET_US_DY_ENB
    SET_US_DY_ENB --> END_NODE
    USE_STAYMD_DY --> SET_US_DY_ST
    SET_US_DY_ST --> END_NODE

    KAKIN_UM --> SET_KAKIN_VAL
    SET_KAKIN_VAL --> END_NODE
    KAKIN_UM --> SET_KAKIN_ENB
    SET_KAKIN_ENB --> END_NODE
    KAKIN_UM --> SET_KAKIN_ST
    SET_KAKIN_ST --> END_NODE

    OP_SVC_CD --> SET_OP_SVC_VAL
    SET_OP_SVC_VAL --> END_NODE
    OP_SVC_CD --> SET_OP_SVC_ST
    SET_OP_SVC_ST --> END_NODE

    DISP_OP_SVC_NM --> SET_DISP_VAL
    SET_DISP_VAL --> END_NODE
    DISP_OP_SVC_NM --> SET_DISP_ENB
    SET_DISP_ENB --> END_NODE
    DISP_OP_SVC_NM --> SET_DISP_ST
    SET_DISP_ST --> END_NODE

    OP_SVC_KEI_STAT --> SET_OPSK_VAL
    SET_OPSK_VAL --> END_NODE
    OP_SVC_KEI_STAT --> SET_OPSK_ST
    SET_OPSK_ST --> END_NODE

    SVC_STA_YMD --> SET_SVCSTA_VAL
    SET_SVCSTA_VAL --> END_NODE
    SVC_STA_YMD --> SET_SVCSTA_ST
    SET_SVCSTA_ST --> END_NODE

    RSV_PSB_PRD --> SET_RSV_VAL
    SET_RSV_VAL --> END_NODE
    RSV_PSB_PRD --> SET_RSV_ST
    SET_RSV_ST --> END_NODE

    FIRST_PRC --> SET_FIRST_VAL
    SET_FIRST_VAL --> END_NODE
    FIRST_PRC --> SET_FIRST_ST
    SET_FIRST_ST --> END_NODE

    ADD_DSL_CD --> SET_ADD_VAL
    SET_ADD_VAL --> END_NODE
    ADD_DSL_CD --> SET_ADD_ST
    SET_ADD_ST --> END_NODE

    NO_MATCH --> END_NODE
    SET_CHOICE_DIV_VAL --> END_NODE
    SET_CHOICE_DIV_ENB --> END_NODE
    SET_CHOICE_DIV_ST --> END_NODE
```

**Processing Summary:**

1. **Null-guard check**: If `key` or `subkey` is null, the method returns immediately (no processing). (L677)
2. **Separator detection**: The method finds the position of "/" in the key string (L680). Note: this value is stored but never used further in this method — it appears to be a vestigial line.
3. **Key-based dispatch**: The method branches on the `key` parameter via a chain of `if-else if` statements, each comparing against a Japanese-labeled field name. There are 15 distinct key branches:
   - 選択区分 (Selection Classification) — subkey branches: value/enable/state
   - 利用開始年月 (Service Start Y/M) — subkey branches: value/state
   - 利用開始日（年） (Service Start Year) — subkey branches: value/enable/state
   - 利用開始日（月） (Service Start Month) — subkey branches: value/enable/state
   - 利用開始日（日） (Service Start Day) — subkey branches: value/enable/state
   - 課金有無 (Billing Existence) — subkey branches: value/enable/state
   - オプションサービスコード (Option Service Code) — subkey branches: value/state
   - 表示用オプションサービスコード名称 (Display Option Service Code Name) — subkey branches: value/enable/state
   - オプションサービス契約ステータス (Option Service Contract Status) — subkey branches: value/state
   - サービス開始年月日 (Service Start Y/M/D) — subkey branches: value/state
   - 予約可能期間 (Reservation Possible Period) — subkey branches: value/state
   - 初回料金計算日 (First Charge Calculation Date) — subkey branches: value/state
   - 登録解約コード (Registration/Cancel Code) — subkey branches: value/state
4. **Subkey-based routing**: For each key branch, the subkey is compared (case-insensitive via `equalsIgnoreCase`) to determine which setter method to invoke.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The business field name (in Japanese) that identifies which property group to update. Examples: "選択区分" (Selection Classification), "利用開始年月" (Service Start Year/Month), "オプションサービスコード" (Option Service Code). Each key maps to a cluster of related bean properties. |
| 2 | `subkey` | `String` | A sub-label indicating which aspect of the field to set. Valid values (case-insensitive): `value` (the actual data value), `enable` (whether the field is editable), `state` (the UI display state such as visible/hidden or read-only). |
| 3 | `in_value` | `Object` | The data value to store. Type depends on the target property: `Boolean` for `enable` subkeys, `String` for `state` and `value` subkeys. The caller is responsible for casting or passing the correct type. |
| 4 | `isSetAsString` | `boolean` | Flag indicating whether a Long-type item's Value property should be set as a String type value. Long型項目ValueプロパティへString型値の設定を行う場合true. This parameter is accepted but not used within this method body — it is passed for API compatibility with callers. |

**Instance fields written to by this method (via setters):**

| Field | Setter Method | Data Type |
|-------|---------------|-----------|
| `choice_div` | `setChoice_div_value(Boolean)` | Boolean |
| `choice_div_enabled` | `setChoice_div_enabled(Boolean)` | Boolean |
| `choice_div_state` | `setChoice_div_state(String)` | String |
| `use_staymd` | `setUse_staymd_value(String)` | String |
| `use_staymd_state` | `setUse_staymd_state(String)` | String |
| `use_staymd_year` | `setUse_staymd_year_value(String)` | String |
| `use_staymd_year_enabled` | `setUse_staymd_year_enabled(Boolean)` | Boolean |
| `use_staymd_year_state` | `setUse_staymd_year_state(String)` | String |
| `use_staymd_mon` | `setUse_staymd_mon_value(String)` | String |
| `use_staymd_mon_enabled` | `setUse_staymd_mon_enabled(Boolean)` | Boolean |
| `use_staymd_mon_state` | `setUse_staymd_mon_state(String)` | String |
| `use_staymd_day` | `setUse_staymd_day_value(String)` | String |
| `use_staymd_day_enabled` | `setUse_staymd_day_enabled(Boolean)` | Boolean |
| `use_staymd_day_state` | `setUse_staymd_day_state(String)` | String |
| `kakin_um` | `setKakin_um_value(String)` | String |
| `kakin_um_enabled` | `setKakin_um_enabled(Boolean)` | Boolean |
| `kakin_um_state` | `setKakin_um_state(String)` | String |
| `op_svc_cd` | `setOp_svc_cd_value(String)` | String |
| `op_svc_cd_state` | `setOp_svc_cd_state(String)` | String |
| `disp_op_svc_cd_nm` | `setDisp_op_svc_cd_nm_value(String)` | String |
| `disp_op_svc_cd_nm_enabled` | `setDisp_op_svc_cd_nm_enabled(Boolean)` | Boolean |
| `disp_op_svc_cd_nm_state` | `setDisp_op_svc_cd_nm_state(String)` | String |
| `op_svc_kei_stat` | `setOp_svc_kei_stat_value(String)` | String |
| `op_svc_kei_stat_state` | `setOp_svc_kei_stat_state(String)` | String |
| `svc_sta_ymd` | `setSvc_sta_ymd_value(String)` | String |
| `svc_sta_ymd_state` | `setSvc_sta_ymd_state(String)` | String |
| `rsv_psb_prd` | `setRsv_psb_prd_value(String)` | String |
| `rsv_psb_prd_state` | `setRsv_psb_prd_state(String)` | String |
| `first_prc_calc_ymd` | `setFirst_prc_calc_ymd_value(String)` | String |
| `first_prc_calc_ymd_state` | `setFirst_prc_calc_ymd_state(String)` | String |
| `add_dsl_cd` | `setAdd_dsl_cd_value(String)` | String |
| `add_dsl_cd_state` | `setAdd_dsl_cd_state(String)` | String |

## 4. CRUD Operations / Called Services

This method performs **only Update (U)** operations — it calls setter methods to update the bean's internal state. No external service component (SC), business service (CBS), database, or entity is accessed directly.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `KKW00846SF02DBean.setChoice_div_value` | KKW00846SF02DBean | - | Sets the Boolean value for Selection Classification property |
| U | `KKW00846SF02DBean.setChoice_div_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Selection Classification property |
| U | `KKW00846SF02DBean.setChoice_div_state` | KKW00846SF02DBean | - | Sets the display state for Selection Classification property |
| U | `KKW00846SF02DBean.setUse_staymd_value` | KKW00846SF02DBean | - | Sets the value for Service Start Year/Month property |
| U | `KKW00846SF02DBean.setUse_staymd_state` | KKW00846SF02DBean | - | Sets the display state for Service Start Year/Month property |
| U | `KKW00846SF02DBean.setUse_staymd_year_value` | KKW00846SF02DBean | - | Sets the value for Service Start Year property |
| U | `KKW00846SF02DBean.setUse_staymd_year_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Service Start Year property |
| U | `KKW00846SF02DBean.setUse_staymd_year_state` | KKW00846SF02DBean | - | Sets the display state for Service Start Year property |
| U | `KKW00846SF02DBean.setUse_staymd_mon_value` | KKW00846SF02DBean | - | Sets the value for Service Start Month property |
| U | `KKW00846SF02DBean.setUse_staymd_mon_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Service Start Month property |
| U | `KKW00846SF02DBean.setUse_staymd_mon_state` | KKW00846SF02DBean | - | Sets the display state for Service Start Month property |
| U | `KKW00846SF02DBean.setUse_staymd_day_value` | KKW00846SF02DBean | - | Sets the value for Service Start Day property |
| U | `KKW00846SF02DBean.setUse_staymd_day_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Service Start Day property |
| U | `KKW00846SF02DBean.setUse_staymd_day_state` | KKW00846SF02DBean | - | Sets the display state for Service Start Day property |
| U | `KKW00846SF02DBean.setKakin_um_value` | KKW00846SF02DBean | - | Sets the value for Billing Existence property |
| U | `KKW00846SF02DBean.setKakin_um_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Billing Existence property |
| U | `KKW00846SF02DBean.setKakin_um_state` | KKW00846SF02DBean | - | Sets the display state for Billing Existence property |
| U | `KKW00846SF02DBean.setOp_svc_cd_value` | KKW00846SF02DBean | - | Sets the value for Option Service Code property |
| U | `KKW00846SF02DBean.setOp_svc_cd_state` | KKW00846SF02DBean | - | Sets the display state for Option Service Code property |
| U | `KKW00846SF02DBean.setDisp_op_svc_cd_nm_value` | KKW00846SF02DBean | - | Sets the value for Display Option Service Code Name property |
| U | `KKW00846SF02DBean.setDisp_op_svc_cd_nm_enabled` | KKW00846SF02DBean | - | Sets the enabled flag for Display Option Service Code Name property |
| U | `KKW00846SF02DBean.setDisp_op_svc_cd_nm_state` | KKW00846SF02DBean | - | Sets the display state for Display Option Service Code Name property |
| U | `KKW00846SF02DBean.setOp_svc_kei_stat_value` | KKW00846SF02DBean | - | Sets the value for Option Service Contract Status property |
| U | `KKW00846SF02DBean.setOp_svc_kei_stat_state` | KKW00846SF02DBean | - | Sets the display state for Option Service Contract Status property |
| U | `KKW00846SF02DBean.setSvc_sta_ymd_value` | KKW00846SF02DBean | - | Sets the value for Service Start Y/M/D property |
| U | `KKW00846SF02DBean.setSvc_sta_ymd_state` | KKW00846SF02DBean | - | Sets the display state for Service Start Y/M/D property |
| U | `KKW00846SF02DBean.setRsv_psb_prd_value` | KKW00846SF02DBean | - | Sets the value for Reservation Possible Period property |
| U | `KKW00846SF02DBean.setRsv_psb_prd_state` | KKW00846SF02DBean | - | Sets the display state for Reservation Possible Period property |
| U | `KKW00846SF02DBean.setFirst_prc_calc_ymd_value` | KKW00846SF02DBean | - | Sets the value for First Charge Calculation Date property |
| U | `KKW00846SF02DBean.setFirst_prc_calc_ymd_state` | KKW00846SF02DBean | - | Sets the display state for First Charge Calculation Date property |
| U | `KKW00846SF02DBean.setAdd_dsl_cd_value` | KKW00846SF02DBean | - | Sets the value for Registration/Cancel Code property |
| U | `KKW00846SF02DBean.setAdd_dsl_cd_state` | KKW00846SF02DBean | - | Sets the display state for Registration/Cancel Code property |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | KKW00846SF02DBean (self-call) | `KKW00846SF02DBean.storeModelData` | Sets all 33+ bean properties via setters |
| 2 | KKW00846SF02DBean (self-call) | `KKW00846SF02DBean.storeModelData` | Sets all 33+ bean properties via setters |

**Note:** The pre-computed caller data shows 2 callers, both self-calls within `KKW00846SF02DBean`. This method is a utility dispatch method called internally during the screen's data population flow. No external screens or batches are found within 8 hops. The terminal operations are all local setter calls to the bean's own fields — no external SC/CBS, database, or entity is accessed.

## 6. Per-Branch Detail Blocks

**Block 1** — IF (null-guard) `(key == null || subkey == null)` (L677)

> If either key or subkey is null, processing is halted and the method returns immediately. (key,subkeyがnullの場合、処理を中止)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return;` |

**Block 2** — EXEC (separator detection) (L680)

> Finds the position of "/" character within the key string. The result is stored but unused — vestigial code.

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

**Block 3** — IF-ELSE chain (key-based dispatch: "選択区分" / Selection Classification) (L683)

> Handles the Selection Classification field (項目ID: choice_div). This is a Boolean-type field that determines whether a selection option is active.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("選択区分")` |

**Block 3.1** — ELSE IF (subkey = value) (L685)

> Sets the Boolean value for the Selection Classification property.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setChoice_div_value((Boolean)in_value)` |

**Block 3.2** — ELSE IF (subkey = enable) (L688)

> Sets the enabled flag. subkeyが"enable"の場合、choice_div_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setChoice_div_enabled((Boolean)in_value)` |

**Block 3.3** — ELSE IF (subkey = state) (L691)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setChoice_div_state((String)in_value)` |

**Block 4** — ELSE IF (key-based dispatch: "利用開始年月" / Service Start Y/M) (L696)

> Handles the Service Start Year/Month field (項目ID: use_staymd). This is a String-type field.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("利用開始年月")` |

**Block 4.1** — ELSE IF (subkey = value) (L698)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_value((String)in_value)` |

**Block 4.2** — ELSE IF (subkey = state) (L701)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_state((String)in_value)` |

**Block 5** — ELSE IF (key-based dispatch: "利用開始日（年）" / Service Start Year) (L706)

> Handles the Service Start Year field (項目ID: use_staymd_year). String-type field with enable support.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("利用開始日（年）")` |

**Block 5.1** — ELSE IF (subkey = value) (L708)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_year_value((String)in_value)` |

**Block 5.2** — ELSE IF (subkey = enable) (L711)

> Sets the enabled flag. subkeyが"enable"の場合、use_staymd_year_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_year_enabled((Boolean)in_value)` |

**Block 5.3** — ELSE IF (subkey = state) (L714)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_year_state((String)in_value)` |

**Block 6** — ELSE IF (key-based dispatch: "利用開始日（月）" / Service Start Month) (L719)

> Handles the Service Start Month field (項目ID: use_staymd_mon). String-type field with enable support.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("利用開始日（月）")` |

**Block 6.1** — ELSE IF (subkey = value) (L721)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_mon_value((String)in_value)` |

**Block 6.2** — ELSE IF (subkey = enable) (L724)

> Sets the enabled flag. subkeyが"enable"の場合、use_staymd_mon_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_mon_enabled((Boolean)in_value)` |

**Block 6.3** — ELSE IF (subkey = state) (L727)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_mon_state((String)in_value)` |

**Block 7** — ELSE IF (key-based dispatch: "利用開始日（日）" / Service Start Day) (L732)

> Handles the Service Start Day field (項目ID: use_staymd_day). String-type field with enable support.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("利用開始日（日）")` |

**Block 7.1** — ELSE IF (subkey = value) (L734)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_day_value((String)in_value)` |

**Block 7.2** — ELSE IF (subkey = enable) (L737)

> Sets the enabled flag. subkeyが"enable"の場合、use_staymd_day_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_day_enabled((Boolean)in_value)` |

**Block 7.3** — ELSE IF (subkey = state) (L740)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setUse_staymd_day_state((String)in_value)` |

**Block 8** — ELSE IF (key-based dispatch: "課金有無" / Billing Existence) (L745)

> Handles the Billing Existence field (項目ID: kakin_um). String-type field with enable support. Determines whether billing is applicable.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("課金有無")` |

**Block 8.1** — ELSE IF (subkey = value) (L747)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setKakin_um_value((String)in_value)` |

**Block 8.2** — ELSE IF (subkey = enable) (L750)

> Sets the enabled flag. subkeyが"enable"の場合、kakin_um_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setKakin_um_enabled((Boolean)in_value)` |

**Block 8.3** — ELSE IF (subkey = state) (L753)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setKakin_um_state((String)in_value)` |

**Block 9** — ELSE IF (key-based dispatch: "オプションサービスコード" / Option Service Code) (L758)

> Handles the Option Service Code field (項目ID: op_svc_cd). String-type field (no enable). Identifies the option service being configured.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("オプションサービスコード")` |

**Block 9.1** — ELSE IF (subkey = value) (L760)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setOp_svc_cd_value((String)in_value)` |

**Block 9.2** — ELSE IF (subkey = state) (L763)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setOp_svc_cd_state((String)in_value)` |

**Block 10** — ELSE IF (key-based dispatch: "表示用オプションサービスコード名称" / Display Option Service Code Name) (L768)

> Handles the Display Option Service Code Name field (項目ID: disp_op_svc_cd_nm). String-type field with enable support. The human-readable name of the option service code shown on the UI.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("表示用オプションサービスコード名称")` |

**Block 10.1** — ELSE IF (subkey = value) (L770)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setDisp_op_svc_cd_nm_value((String)in_value)` |

**Block 10.2** — ELSE IF (subkey = enable) (L773)

> Sets the enabled flag. subkeyが"enable"の場合、disp_op_svc_cd_nm_enabledのsetterを実行する。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setDisp_op_svc_cd_nm_enabled((Boolean)in_value)` |

**Block 10.3** — ELSE IF (subkey = state) (L776)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setDisp_op_svc_cd_nm_state((String)in_value)` |

**Block 11** — ELSE IF (key-based dispatch: "オプションサービス契約ステータス" / Option Service Contract Status) (L781)

> Handles the Option Service Contract Status field (項目ID: op_svc_kei_stat). String-type field (no enable). Indicates the contract status of the option service.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("オプションサービス契約ステータス")` |

**Block 11.1** — ELSE IF (subkey = value) (L783)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setOp_svc_kei_stat_value((String)in_value)` |

**Block 11.2** — ELSE IF (subkey = state) (L786)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setOp_svc_kei_stat_state((String)in_value)` |

**Block 12** — ELSE IF (key-based dispatch: "サービス開始年月日" / Service Start Y/M/D) (L791)

> Handles the Service Start Y/M/D field (項目ID: svc_sta_ymd). String-type field (no enable). The full date when the service starts.

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

**Block 12.1** — ELSE IF (subkey = value) (L793)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setSvc_sta_ymd_value((String)in_value)` |

**Block 12.2** — ELSE IF (subkey = state) (L796)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setSvc_sta_ymd_state((String)in_value)` |

**Block 13** — ELSE IF (key-based dispatch: "予約可能期間" / Reservation Possible Period) (L801)

> Handles the Reservation Possible Period field (項目ID: rsv_psb_prd). String-type field (no enable). The period during which reservation is possible.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("予約可能期間")` |

**Block 13.1** — ELSE IF (subkey = value) (L803)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setRsv_psb_prd_value((String)in_value)` |

**Block 13.2** — ELSE IF (subkey = state) (L806)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setRsv_psb_prd_state((String)in_value)` |

**Block 14** — ELSE IF (key-based dispatch: "初回料金計算日" / First Charge Calculation Date) (L811)

> Handles the First Charge Calculation Date field (項目ID: first_prc_calc_ymd). String-type field (no enable). The date when the first charge calculation is performed.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("初回料金計算日")` |

**Block 14.1** — ELSE IF (subkey = value) (L813)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setFirst_prc_calc_ymd_value((String)in_value)` |

**Block 14.2** — ELSE IF (subkey = state) (L816)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setFirst_prc_calc_ymd_state((String)in_value)` |

**Block 15** — ELSE IF (key-based dispatch: "登録解約コード" / Registration/Cancel Code) (L821)

> Handles the Registration/Cancel Code field (項目ID: add_dsl_cd). String-type field (no enable). The code indicating registration or cancellation action.

| # | Type | Code |
|---|------|------|
| 1 | IF | `key.equals("登録解約コード")` |

**Block 15.1** — ELSE IF (subkey = value) (L823)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setAdd_dsl_cd_value((String)in_value)` |

**Block 15.2** — ELSE IF (subkey = state) (L826)

> Sets the display state. subkeyが"state"の場合、ステータスを返す。

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setAdd_dsl_cd_state((String)in_value)` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| 選択区分 (sentaku kubun) | Field | Selection Classification — a Boolean toggle field (項目ID: choice_div) that determines whether a selection option is active/inactive |
| 利用開始年月 (riyou kaishi nengetsu) | Field | Service Start Year/Month — a String field (項目ID: use_staymd) indicating the month and year the service begins |
| 利用開始日（年）(riyou kaishi hi (nen)) | Field | Service Start Year — a String field (項目ID: use_staymd_year) indicating the year the service begins |
| 利用開始日（月）(riyou kaishi hi (tsuki)) | Field | Service Start Month — a String field (項目ID: use_staymd_mon) indicating the month the service begins |
| 利用開始日（日）(riyou kaishi hi (hi)) | Field | Service Start Day — a String field (項目ID: use_staymd_day) indicating the day the service begins |
| 課金有無 (kakin uchu) | Field | Billing Existence — a String field (項目ID: kakin_um) indicating whether billing is applicable (yes/no) |
| オプションサービスコード (opushon saabisu koude) | Field | Option Service Code — a String field (項目ID: op_svc_cd) identifying the specific option service |
| 表示用オプションサービスコード名称 (hyouyou-youse opushon saabisu koude meishou) | Field | Display Option Service Code Name — a String field (項目ID: disp_op_svc_cd_nm) containing the human-readable name of the option service code as shown on the UI |
| オプションサービス契約ステータス (opushon saabisu keiyaku suteetasu) | Field | Option Service Contract Status — a String field (項目ID: op_svc_kei_stat) indicating the current contract status of the option service |
| サービス開始年月日 (saabisu kaishi nengetsunichi) | Field | Service Start Y/M/D — a String field (項目ID: svc_sta_ymd) representing the full service start date (year, month, day) |
| 予約可能期間 (yoyaku kanou kikan) | Field | Reservation Possible Period — a String field (項目ID: rsv_psb_prd) specifying the period during which a reservation can be made |
| 初回料金計算日 (shokai ryōkin keisan hi) | Field | First Charge Calculation Date — a String field (項目ID: first_prc_calc_ymd) indicating when the first charge calculation is performed |
| 登録解約コード (tōroku kaiyaku koude) | Field | Registration/Cancel Code — a String field (項目ID: add_dsl_cd) indicating registration or cancellation action code |
| value | Subkey | Property aspect — stores the actual data value for the field |
| enable | Subkey | Property aspect — stores whether the field is editable/enabled on the UI |
| state | Subkey | Property aspect — stores the UI display state (e.g., visible, hidden, read-only) |
| セキュリティオプション登録 | Screen Name | Security Option Registration — the screen (KKW00846) where this bean is used |
| KKW00846SF | Screen Code | Screen module identifier for the Security Option Registration screen |
| 項目 (kōmoku) | Term | Item / field — refers to a UI-bound data field on the screen |
| isSetAsString | Parameter | When true, indicates that a Long-type item's Value property should be set as a String type value. Long型項目ValueプロパティへString型値の設定を行う場合true |
| KKW00846SFConst | Class | Constants class for the KKW00846SF screen module (used for shared constant values across the screen's components) |