# Business Logic — KKW22101SF03DBean.storeModelData() [115 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW22101SF.KKW22101SF03DBean` |
| Layer | Service Component / Data Bean (View DTO layer) |
| Module | `KKW22101SF` (Package: `eo.web.webview.KKW22101SF`) |

## 1. Role

### KKW22101SF03DBean.storeModelData()

This method serves as the **central data dispatching hub** for the EOsmartlink integrated quote and order screen (KKW22101SF03). It receives loosely-typed data from the view layer and routes it into the correct strongly-typed bean property based on a key/subkey convention. The key identifies one of eight **Smartlink field groups** — such as service contract number, terminal model, installment billing start month, terminal purchase method, settlement amounts, or installment sales form code — while the subkey identifies the property dimension to populate: **value** (the actual data value), **enable** (a boolean controlling UI editability), or **state** (a string encoding the component's visual state, e.g., "display" or "input"). This implements a **routing/dispatch design pattern** that decouples the view from the bean, allowing the screen to set any number of fields through a single generic method call, which is essential for dynamic table-based screens that render rows of Smartlink data. The method acts as a **data sink** for the view-model binding process during screen initialization and data refresh, ensuring that all Smartlink-related UI components receive their correct property values from the backing model.

## 2. Processing Pattern (Detailed Business Logic)

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

    START --> CHECK_NULL["Check: key==null || subkey==null"]
    CHECK_NULL -->|null| EARLY_RETURN["Return (no-op)"]
    CHECK_NULL -->|not null| FIND_SEP["Find separator: key.indexOf('/')"]

    FIND_SEP --> BRANCH_1["Check: key equals SMTLNK_KKTK_SVC_KEI_NO_03"]
    BRANCH_1 -->|match| SvcKeiNo["Handle svc_kei_no"]
    BRANCH_1 -->|no match| BRANCH_2["Check: key equals SMTLNK_KIKI_MODEL_03"]
    BRANCH_2 -->|match| Model["Handle kiki_model"]
    BRANCH_2 -->|no match| BRANCH_3["Check: key equals SMTLNK_KAP_KISAN_YM_03"]
    BRANCH_3 -->|match| Kisan["Handle kap_kisan_ym"]
    BRANCH_3 -->|no match| BRANCH_4["Check: key equals SMTLNK_TNMT_BUY_WAY_03"]
    BRANCH_4 -->|match| BuyWay["Handle tnmt_buy_way"]
    BRANCH_4 -->|no match| BRANCH_5["Check: key equals SMTLNK_SSN_KIN_ALL_AMNT_03"]
    BRANCH_5 -->|match| AllAmnt["Handle ssn_kin_all_amnt"]
    BRANCH_5 -->|no match| BRANCH_6["Check: key equals SMTLNK_SSN_KIN_GTGK_03"]
    BRANCH_6 -->|match| GTGK["Handle ssn_kin_gtgk"]
    BRANCH_6 -->|no match| BRANCH_7["Check: key equals SMTLNK_SSN_KIN_ZAN_GETU_03"]
    BRANCH_7 -->|match| ZanGetu["Handle ssn_kin_zan_getu"]
    BRANCH_7 -->|no match| BRANCH_8["Check: key equals SMTLNK_KAP_HAMBAI_FORM_CD_03"]
    BRANCH_8 -->|match| Hambai["Handle kap_hambai_form_cd"]
    BRANCH_8 -->|no match| END_NODE["End (no match, no-op)"]

    SvcKeiNo --> SvcCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    SvcCheckValue -->|yes| SvcSetValue["setSmtlnk_kktk_svc_kei_no_value(in_value)"]
    SvcCheckValue -->|no| SvcCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    SvcCheckEnable -->|yes| SvcSetEnable["setSmtlnk_kktk_svc_kei_no_enabled(in_value)"]
    SvcCheckEnable -->|no| SvcCheckState["Check: subkey.equalsIgnoreCase('state')"]
    SvcCheckState -->|yes| SvcSetState["setSmtlnk_kktk_svc_kei_no_state(in_value)"]
    SvcCheckState -->|no| END_NODE
    SvcSetValue --> END_NODE
    SvcSetEnable --> END_NODE
    SvcSetState --> END_NODE

    Model --> ModCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    ModCheckValue -->|yes| ModSetValue["setSmtlnk_kiki_model_value(in_value)"]
    ModCheckValue -->|no| ModCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    ModCheckEnable -->|yes| ModSetEnable["setSmtlnk_kiki_model_enabled(in_value)"]
    ModCheckEnable -->|no| ModCheckState["Check: subkey.equalsIgnoreCase('state')"]
    ModCheckState -->|yes| ModSetState["setSmtlnk_kiki_model_state(in_value)"]
    ModCheckState -->|no| END_NODE
    ModSetValue --> END_NODE
    ModSetEnable --> END_NODE
    ModSetState --> END_NODE

    Kisan --> KisCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    KisCheckValue -->|yes| KisSetValue["setSmtlnk_kap_kisan_ym_value(in_value)"]
    KisCheckValue -->|no| KisCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    KisCheckEnable -->|yes| KisSetEnable["setSmtlnk_kap_kisan_ym_enabled(in_value)"]
    KisCheckEnable -->|no| KisCheckState["Check: subkey.equalsIgnoreCase('state')"]
    KisCheckState -->|yes| KisSetState["setSmtlnk_kap_kisan_ym_state(in_value)"]
    KisCheckState -->|no| END_NODE
    KisSetValue --> END_NODE
    KisSetEnable --> END_NODE
    KisSetState --> END_NODE

    BuyWay --> BwCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    BwCheckValue -->|yes| BwSetValue["setSmtlnk_tnmt_buy_way_value(in_value)"]
    BwCheckValue -->|no| BwCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    BwCheckEnable -->|yes| BwSetEnable["setSmtlnk_tnmt_buy_way_enabled(in_value)"]
    BwCheckEnable -->|no| BwCheckState["Check: subkey.equalsIgnoreCase('state')"]
    BwCheckState -->|yes| BwSetState["setSmtlnk_tnmt_buy_way_state(in_value)"]
    BwCheckState -->|no| END_NODE
    BwSetValue --> END_NODE
    BwSetEnable --> END_NODE
    BwSetState --> END_NODE

    AllAmnt --> AaCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    AaCheckValue -->|yes| AaSetValue["setSmtlnk_ssn_kin_all_amnt_value(in_value)"]
    AaCheckValue -->|no| AaCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    AaCheckEnable -->|yes| AaSetEnable["setSmtlnk_ssn_kin_all_amnt_enabled(in_value)"]
    AaCheckEnable -->|no| AaCheckState["Check: subkey.equalsIgnoreCase('state')"]
    AaCheckState -->|yes| AaSetState["setSmtlnk_ssn_kin_all_amnt_state(in_value)"]
    AaCheckState -->|no| END_NODE
    AaSetValue --> END_NODE
    AaSetEnable --> END_NODE
    AaSetState --> END_NODE

    GTGK --> GtCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    GtCheckValue -->|yes| GtSetValue["setSmtlnk_ssn_kin_gtgk_value(in_value)"]
    GtCheckValue -->|no| GtCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    GtCheckEnable -->|yes| GtSetEnable["setSmtlnk_ssn_kin_gtgk_enabled(in_value)"]
    GtCheckEnable -->|no| GtCheckState["Check: subkey.equalsIgnoreCase('state')"]
    GtCheckState -->|yes| GtSetState["setSmtlnk_ssn_kin_gtgk_state(in_value)"]
    GtCheckState -->|no| END_NODE
    GtSetValue --> END_NODE
    GtSetEnable --> END_NODE
    GtSetState --> END_NODE

    ZanGetu --> ZnCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    ZnCheckValue -->|yes| ZnSetValue["setSmtlnk_ssn_kin_zan_getu_value(in_value)"]
    ZnCheckValue -->|no| ZnCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    ZnCheckEnable -->|yes| ZnSetEnable["setSmtlnk_ssn_kin_zan_getu_enabled(in_value)"]
    ZnCheckEnable -->|no| ZnCheckState["Check: subkey.equalsIgnoreCase('state')"]
    ZnCheckState -->|yes| ZnSetState["setSmtlnk_ssn_kin_zan_getu_state(in_value)"]
    ZnCheckState -->|no| END_NODE
    ZnSetValue --> END_NODE
    ZnSetEnable --> END_NODE
    ZnSetState --> END_NODE

    Hambai --> HbCheckValue["Check: subkey.equalsIgnoreCase('value')"]
    HbCheckValue -->|yes| HbSetValue["setSmtlnk_kap_hambai_form_cd_value(in_value)"]
    HbCheckValue -->|no| HbCheckEnable["Check: subkey.equalsIgnoreCase('enable')"]
    HbCheckEnable -->|yes| HbSetEnable["setSmtlnk_kap_hambai_form_cd_enabled(in_value)"]
    HbCheckEnable -->|no| HbCheckState["Check: subkey.equalsIgnoreCase('state')"]
    HbCheckState -->|yes| HbSetState["setSmtlnk_kap_hambai_form_cd_state(in_value)"]
    HbCheckState -->|no| END_NODE
    HbSetValue --> END_NODE
    HbSetEnable --> END_NODE
    HbSetState --> END_NODE
```

**Constant Resolution (from `KKW22101SFConst`):**

| Constant | Actual Value | Business Meaning |
|----------|-------------|------------------|
| `SMTLNK_KKTK_SVC_KEI_NO_03` | `EOsmartlink−機器提供サービス契約番号` | EOsmartlink — Terminal Provision Service Contract Number |
| `SMTLNK_KIKI_MODEL_03` | `EOsmartlink−型番` | EOsmartlink — Model Number |
| `SMTLNK_KAP_KISAN_YM_03` | `EOsmartlink−割賦起算月` | EOsmartlink — Installment Billing Start Month |
| `SMTLNK_TNMT_BUY_WAY_03` | `EOsmartlink−端末購入方法` | EOsmartlink — Terminal Purchase Method |
| `SMTLNK_SSN_KIN_ALL_AMNT_03` | `EOsmartlink−精算金（総額）` | EOsmartlink — Settlement Amount (Total) |
| `SMTLNK_SSN_KIN_GTGK_03` | `EOsmartlink−精算金（月額）` | EOsmartlink — Settlement Amount (Monthly) |
| `SMTLNK_SSN_KIN_ZAN_GETU_03` | `EOsmartlink−精算金（残月）` | EOsmartlink — Settlement Amount (Remaining Months) |
| `SMTLNK_KAP_HAMBAI_FORM_CD_03` | `EOsmartlink−割賦販売形態コード` | EOsmartlink — Installment Sales Form Code |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The field identifier that determines which Smartlink data group this value belongs to. Matches one of eight constants defined in `KKW22101SFConst` — covering service contract number, terminal model, installment billing start month, terminal purchase method, and three settlement amount variants (total, monthly, remaining months), plus installment sales form code. This is the primary routing key that dispatches to the correct property setter chain. |
| 2 | `subkey` | `String` | The property dimension selector within the field group. Accepts three canonical values (case-insensitive): `"value"` for the actual data, `"enable"` for UI editability control, or `"state"` for the visual rendering state. Determines which of the three setter methods is invoked per field group. |
| 3 | `in_value` | `Object` | The data payload to store in the bean. Cast to `String` for `value` and `state` subkeys, cast to `Boolean` for `enable` subkey. Carries the actual business data (e.g., contract number string, settlement amount string, or a boolean for field editability). |
| 4 | `isSetAsString` | `boolean` | A flag indicating whether a Long-type field's value property should be set as a String type value. While present in the method signature, this parameter is not actively used within the method body — it is preserved for interface compatibility and potential future use by callers that need to control type coercion behavior. |

**Instance Fields Modified:**

| Field | Effect |
|-------|--------|
| `smtlnk_kktk_svc_kei_no_value` | Set to the service contract number string value |
| `smtlnk_kktk_svc_kei_no_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_kktk_svc_kei_no_state` | Set to string describing the field's visual state |
| `smtlnk_kiki_model_value` | Set to the terminal model number string value |
| `smtlnk_kiki_model_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_kiki_model_state` | Set to string describing the field's visual state |
| `smtlnk_kap_kisan_ym_value` | Set to the installment billing start month string value |
| `smtlnk_kap_kisan_ym_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_kap_kisan_ym_state` | Set to string describing the field's visual state |
| `smtlnk_tnmt_buy_way_value` | Set to the terminal purchase method string value |
| `smtlnk_tnmt_buy_way_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_tnmt_buy_way_state` | Set to string describing the field's visual state |
| `smtlnk_ssn_kin_all_amnt_value` | Set to the total settlement amount string value |
| `smtlnk_ssn_kin_all_amnt_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_ssn_kin_all_amnt_state` | Set to string describing the field's visual state |
| `smtlnk_ssn_kin_gtgk_value` | Set to the monthly settlement amount string value |
| `smtlnk_ssn_kin_gtgk_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_ssn_kin_gtgk_state` | Set to string describing the field's visual state |
| `smtlnk_ssn_kin_zan_getu_value` | Set to the remaining-months settlement amount string value |
| `smtlnk_ssn_kin_zan_getu_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_ssn_kin_zan_getu_state` | Set to string describing the field's visual state |
| `smtlnk_kap_hambai_form_cd_value` | Set to the installment sales form code string value |
| `smtlnk_kap_hambai_form_cd_enabled` | Set to boolean controlling whether the field is editable |
| `smtlnk_kap_hambai_form_cd_state` | Set to string describing the field's visual state |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| U | `setSmtlnk_kktk_svc_kei_no_value` | KKW22101SF03DBean | - | Sets the EOsmartlink terminal provision service contract number value |
| U | `setSmtlnk_kktk_svc_kei_no_enabled` | KKW22101SF03DBean | - | Sets editability flag for the service contract number field |
| U | `setSmtlnk_kktk_svc_kei_no_state` | KKW22101SF03DBean | - | Sets the visual state of the service contract number field |
| U | `setSmtlnk_kiki_model_value` | KKW22101SF03DBean | - | Sets the EOsmartlink terminal model number value |
| U | `setSmtlnk_kiki_model_enabled` | KKW22101SF03DBean | - | Sets editability flag for the terminal model number field |
| U | `setSmtlnk_kiki_model_state` | KKW22101SF03DBean | - | Sets the visual state of the terminal model number field |
| U | `setSmtlnk_kap_kisan_ym_value` | KKW22101SF03DBean | - | Sets the EOsmartlink installment billing start month value |
| U | `setSmtlnk_kap_kisan_ym_enabled` | KKW22101SF03DBean | - | Sets editability flag for the installment billing start month field |
| U | `setSmtlnk_kap_kisan_ym_state` | KKW22101SF03DBean | - | Sets the visual state of the installment billing start month field |
| U | `setSmtlnk_tnmt_buy_way_value` | KKW22101SF03DBean | - | Sets the EOsmartlink terminal purchase method value |
| U | `setSmtlnk_tnmt_buy_way_enabled` | KKW22101SF03DBean | - | Sets editability flag for the terminal purchase method field |
| U | `setSmtlnk_tnmt_buy_way_state` | KKW22101SF03DBean | - | Sets the visual state of the terminal purchase method field |
| U | `setSmtlnk_ssn_kin_all_amnt_value` | KKW22101SF03DBean | - | Sets the EOsmartlink settlement amount (total) value |
| U | `setSmtlnk_ssn_kin_all_amnt_enabled` | KKW22101SF03DBean | - | Sets editability flag for the settlement total amount field |
| U | `setSmtlnk_ssn_kin_all_amnt_state` | KKW22101SF03DBean | - | Sets the visual state of the settlement total amount field |
| U | `setSmtlnk_ssn_kin_gtgk_value` | KKW22101SF03DBean | - | Sets the EOsmartlink settlement amount (monthly) value |
| U | `setSmtlnk_ssn_kin_gtgk_enabled` | KKW22101SF03DBean | - | Sets editability flag for the settlement monthly amount field |
| U | `setSmtlnk_ssn_kin_gtgk_state` | KKW22101SF03DBean | - | Sets the visual state of the settlement monthly amount field |
| U | `setSmtlnk_ssn_kin_zan_getu_value` | KKW22101SF03DBean | - | Sets the EOsmartlink settlement amount (remaining months) value |
| U | `setSmtlnk_ssn_kin_zan_getu_enabled` | KKW22101SF03DBean | - | Sets editability flag for the settlement remaining months field |
| U | `setSmtlnk_ssn_kin_zan_getu_state` | KKW22101SF03DBean | - | Sets the visual state of the settlement remaining months field |
| U | `setSmtlnk_kap_hambai_form_cd_value` | KKW22101SF03DBean | - | Sets the EOsmartlink installment sales form code value |
| U | `setSmtlnk_kap_hambai_form_cd_enabled` | KKW22101SF03DBean | - | Sets editability flag for the installment sales form code field |
| U | `setSmtlnk_kap_hambai_form_cd_state` | KKW22101SF03DBean | - | Sets the visual state of the installment sales form code field |

**CRUD Summary:** All 24 operations are **U (Update)** — the method exclusively calls setter methods on its own bean instance to update view property state. No database reads, creates, or deletes occur in this method. It is a pure presentation-layer data binding method.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.
Terminal operations from this method: `setSmtlnk_kap_hambai_form_cd_state` [-], `setSmtlnk_kap_hambai_form_cd_enabled` [-], `setSmtlnk_kap_hambai_form_cd_value` [-], `setSmtlnk_ssn_kin_zan_getu_state` [-], `setSmtlnk_ssn_kin_zan_getu_enabled` [-], `setSmtlnk_ssn_kin_zan_getu_value` [-], `setSmtlnk_ssn_kin_gtgk_state` [-], `setSmtlnk_ssn_kin_gtgk_enabled` [-], `setSmtlnk_ssn_kin_gtgk_value` [-], `setSmtlnk_ssn_kin_all_amnt_state` [-], `setSmtlnk_ssn_kin_all_amnt_enabled` [-], `setSmtlnk_ssn_kin_all_amnt_value` [-], `setSmtlnk_tnmt_buy_way_state` [-], `setSmtlnk_tnmt_buy_way_enabled` [-], `setSmtlnk_tnmt_buy_way_value` [-], `setSmtlnk_kap_kisan_ym_state` [-], `setSmtlnk_kap_kisan_ym_enabled` [-], `setSmtlnk_kap_kisan_ym_value` [-], `setSmtlnk_kiki_model_state` [-], `setSmtlnk_kiki_model_enabled` [-]  # NOSONAR

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | KKW22101SF03DBean.storeModelData() | `KKW22101SF03DBean.storeModelData` → (24 setter calls) | All 24 `setSmtlnk_*` [U] property setters |
| 2 | KKW22101SF03DBean.storeModelData() | `KKW22101SF03DBean.storeModelData` → (24 setter calls) | All 24 `setSmtlnk_*` [U] property setters |

**Notes:** Both callers are self-references within `KKW22101SF03DBean` (the method calls itself, likely for recursive or repeated property population). No external screen (KKSV*) or batch entry points were found within 8 hops of the call graph. This method is a **pure data binding utility** — it is called by other methods within the same bean to populate view properties from the model, and its terminal operations are exclusively local setter calls with no downstream database or service component interactions.

## 6. Per-Branch Detail Blocks

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

Guard clause that aborts processing if either the field identifier or property subkey is null. Prevents NullPointerException on subsequent string operations. Returns immediately without any side effects.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if(key == null || subkey == null)` // Guard: abort if either key or subkey is null [-> early return] |
| 2 | RETURN | `return;` // Processing aborted due to null parameters |

**Block 2** — [EXEC] `(separator extraction)` (L524)

Computes the position of the first forward-slash character in the key string. This value is computed but not used in the current implementation (potential dead code or preparation for future hierarchical key support).

| # | Type | Code |
|---|------|------|
| 1 | SET | `int separaterPoint = key.indexOf("/");` // Extract separator position from key (unused) |

**Block 3** — [ELSE-IF] `(key.equals("EOsmartlink−機器提供サービス契約番号"))` `[SMTLNK_KKTK_SVC_KEI_NO_03="EOsmartlink−機器提供サービス契約番号"]` (L528)

Service contract number field group. Routes to value/enable/state setters for the terminal provision service contract number. This field identifies the contract number associated with the terminal provisioning service line item in the Smartlink order.

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

Sets the actual service contract number value. The `in_value` object is cast to `String`.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kktk_svc_kei_no_value((String)in_value);` // Set the EOsmartlink terminal provision service contract number |

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

Sets the editability flag for the service contract number field. The `in_value` object is cast to `Boolean`.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_kktk_svc_kei_no_enabled((Boolean)in_value);` // Set editability flag for the service contract number field |

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

Sets the visual state string for the service contract number field (e.g., "display", "input"). The `in_value` object is cast to `String`.

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kktk_svc_kei_no_state((String)in_value);` // Set visual state of the service contract number field |

**Block 4** — [ELSE-IF] `(key.equals("EOsmartlink−型番"))` `[SMTLNK_KIKI_MODEL_03="EOsmartlink−型番"]` (L540)

Terminal model number field group. Routes to value/enable/state setters for the terminal model number. This field stores the device model identifier (e.g., phone or router model) for the terminal being provisioned.

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kiki_model_value((String)in_value);` // Set the EOsmartlink terminal model number |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_kiki_model_enabled((Boolean)in_value);` // Set editability flag for the terminal model number field |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kiki_model_state((String)in_value);` // Set visual state of the terminal model number field |

**Block 5** — [ELSE-IF] `(key.equals("EOsmartlink−割賦起算月"))` `[SMTLNK_KAP_KISAN_YM_03="EOsmartlink−割賦起算月"]` (L552)

Installment billing start month field group. Routes to value/enable/state setters for the billing start month. This field indicates the month from which installment billing begins for the Smartlink contract.

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kap_kisan_ym_value((String)in_value);` // Set the EOsmartlink installment billing start month |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_kap_kisan_ym_enabled((Boolean)in_value);` // Set editability flag for the installment billing start month field |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kap_kisan_ym_state((String)in_value);` // Set visual state of the installment billing start month field |

**Block 6** — [ELSE-IF] `(key.equals("EOsmartlink−端末購入方法"))` `[SMTLNK_TNMT_BUY_WAY_03="EOsmartlink−端末購入方法"]` (L564)

Terminal purchase method field group. Routes to value/enable/state setters. This field identifies how the terminal was acquired (e.g., bundled with contract, separate purchase, lease).

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_tnmt_buy_way_value((String)in_value);` // Set the EOsmartlink terminal purchase method |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_tnmt_buy_way_enabled((Boolean)in_value);` // Set editability flag for the terminal purchase method field |

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

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_tnmt_buy_way_state((String)in_value);` // Set visual state of the terminal purchase method field |

**Block 7** — [ELSE-IF] `(key.equals("EOsmartlink−精算金（総額）"))` `[SMTLNK_SSN_KIN_ALL_AMNT_03="EOsmartlink−精算金（総額）"]` (L576)

Settlement total amount field group. Routes to value/enable/state setters. This field holds the total settlement amount (final billing adjustment total) for the Smartlink contract.

> **Block 7.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L577)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_all_amnt_value((String)in_value);` // Set the EOsmartlink settlement amount (total) |

> **Block 7.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` `[enable]` (L580)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_ssn_kin_all_amnt_enabled((Boolean)in_value);` // Set editability flag for the settlement total amount field |

> **Block 7.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` `[state]` (L583)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_all_amnt_state((String)in_value);` // Set visual state of the settlement total amount field |

**Block 8** — [ELSE-IF] `(key.equals("EOsmartlink−精算金（月額）"))` `[SMTLNK_SSN_KIN_GTGK_03="EOsmartlink−精算金（月額）"]` (L588)

Settlement monthly amount field group. Routes to value/enable/state setters. This field holds the monthly settlement amount (recurring billing adjustment) for the Smartlink contract.

> **Block 8.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L589)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_gtgk_value((String)in_value);` // Set the EOsmartlink settlement amount (monthly) |

> **Block 8.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` `[enable]` (L592)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_ssn_kin_gtgk_enabled((Boolean)in_value);` // Set editability flag for the settlement monthly amount field |

> **Block 8.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` `[state]` (L595)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_gtgk_state((String)in_value);` // Set visual state of the settlement monthly amount field |

**Block 9** — [ELSE-IF] `(key.equals("EOsmartlink−精算金（残月）"))` `[SMTLNK_SSN_KIN_ZAN_GETU_03="EOsmartlink−精算金（残月）"]` (L600)

Settlement remaining months amount field group. Routes to value/enable/state setters. This field holds the settlement amount broken down by remaining months (used for pro-rated final billing calculations).

> **Block 9.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L601)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_zan_getu_value((String)in_value);` // Set the EOsmartlink settlement amount (remaining months) |

> **Block 9.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` `[enable]` (L604)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_ssn_kin_zan_getu_enabled((Boolean)in_value);` // Set editability flag for the settlement remaining months field |

> **Block 9.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` `[state]` (L607)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_ssn_kin_zan_getu_state((String)in_value);` // Set visual state of the settlement remaining months field |

**Block 10** — [ELSE-IF] `(key.equals("EOsmartlink−割賦販売形態コード"))` `[SMTLNK_KAP_HAMBAI_FORM_CD_03="EOsmartlink−割賦販売形態コード"]` (L612)

Installment sales form code field group. Routes to value/enable/state setters. This field identifies the type of installment sales arrangement (e.g., full installment, partial installment, no installment).

> **Block 10.1** — [IF] `(subkey.equalsIgnoreCase("value"))` (L613)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kap_hambai_form_cd_value((String)in_value);` // Set the EOsmartlink installment sales form code |

> **Block 10.2** — [ELSE-IF] `(subkey.equalsIgnoreCase("enable"))` `[enable]` (L616)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(Boolean)in_value` // Cast generic Object to Boolean |
| 2 | CALL | `setSmtlnk_kap_hambai_form_cd_enabled((Boolean)in_value);` // Set editability flag for the installment sales form code field |

> **Block 10.3** — [ELSE-IF] `(subkey.equalsIgnoreCase("state"))` `[state]` (L619)

| # | Type | Code |
|---|------|------|
| 1 | CAST | `(String)in_value` // Cast generic Object to String |
| 2 | CALL | `setSmtlnk_kap_hambai_form_cd_state((String)in_value);` // Set visual state of the installment sales form code field |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `SMTLNK_KKTK_SVC_KEI_NO_03` | Constant | EOsmartlink — Terminal Provision Service Contract Number. The contract identifier for terminal provisioning service line items within the Smartlink order fulfillment workflow. |
| `SMTLNK_KIKI_MODEL_03` | Constant | EOsmartlink — Model Number. The terminal/device model identifier (e.g., router, smartphone model) associated with the Smartlink service. |
| `SMTLNK_KAP_KISAN_YM_03` | Constant | EOsmartlink — Installment Billing Start Month. The calendar month from which installment billing begins for the Smartlink contract. |
| `SMTLNK_TNMT_BUY_WAY_03` | Constant | EOsmartlink — Terminal Purchase Method. How the terminal device was acquired — bundled with service contract, separate purchase, lease, etc. |
| `SMTLNK_SSN_KIN_ALL_AMNT_03` | Constant | EOsmartlink — Settlement Amount (Total). The total final billing adjustment amount for the Smartlink contract, representing the complete settlement sum. |
| `SMTLNK_SSN_KIN_GTGK_03` | Constant | EOsmartlink — Settlement Amount (Monthly). The recurring monthly settlement amount (billing adjustment) for the Smartlink contract. |
| `SMTLNK_SSN_KIN_ZAN_GETU_03` | Constant | EOsmartlink — Settlement Amount (Remaining Months). The settlement amount broken down by remaining contract months, used for pro-rated final billing. |
| `SMTLNK_KAP_HAMBAI_FORM_CD_03` | Constant | EOsmartlink — Installment Sales Form Code. The classification code for the type of installment sales arrangement (e.g., full installment, partial, cash). |
| Smartlink | Business term | EOsmartlink — NTT's integrated quote and order management platform for telecommunications services, enabling unified quotation, ordering, and installation scheduling for broadband and mobile services. |
| `value` | Subkey | Property dimension: the actual data value (String) stored in the bean field. |
| `enable` | Subkey | Property dimension: a boolean flag controlling whether the UI component is editable. |
| `state` | Subkey | Property dimension: a string describing the visual rendering state of the UI component (e.g., "display" for read-only view, "input" for editable field). |
| 割賦 (kakipu) | Japanese term | Installment plan — a payment arrangement where the total cost is split into periodic payments over time. |
| 精算金 (seisankin) | Japanese term | Settlement amount — the final billing adjustment charged to the customer, typically for prorated charges or service changes. |
| 端末 (tanmatsu) | Japanese term | Terminal — the physical device (router, modem, smartphone) provided as part of the telecom service. |
| 型番 (gataban) | Japanese term | Model number — the manufacturer's product identifier for a specific device variant. |
| KKW22101SF | Module | Service Component module for the EOsmartlink integrated quote and order screen. Handles the combined quotation and service order workflow. |
| DBean | Technical | Data Bean — a presentation-layer DTO that holds both data values and UI control properties (value, enable, state) for view binding. |
| isSetAsString | Parameter | A type coercion flag preserved for interface compatibility, indicating whether Long-type field values should be set as String type. Not actively used in this method body. |
