
# Business Logic — KKW00401SF02DBean.storeModelData() [700 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00401SF.KKW00401SF02DBean` |
| Layer | Controller / Presentation (webview package — UI model data binding) |
| Module | `KKW00401SF` (Package: `eo.web.webview.KKW00401SF`) |

## 1. Role

### KKW00401SF02DBean.storeModelData()

This method is the central **model data binding dispatcher** for the KKW00401SF screen (equipment provisioning / device registration screen in a telecom service order system). Its business responsibility is to accept a field name (`key`), a property sub-key (`subkey`), and a value (`in_value`), then route the value to the correct field setter on this bean — effectively acting as a **reflection-based field mutator** that supports both simple scalar fields and nested list-type ("data type viewing") fields.

The method handles **two categories** of processing:

- **Simple field setters** (~41 distinct fields): For each recognized field name such as "STB", "Equipment Model Code" (機器型式コード), "HDD Presence" (HDD有無), "Reserved TV Course Code" (予約TVコースコード), and many others, the method dispatches to three setter variants based on the sub-key: `value` (sets the field's data value), `enable` (sets the field's enabled/editable flag), or `state` (sets the field's display/state flag). Each field supports its own typed setter — String fields get `setXxx_value()`, Boolean fields like "R" and hidden fields get `setXxx_value(Boolean)`.

- **Data type viewing (array/list) fields** (5 fields): For the fields "STB Migration Distinction" (STB異動区分), "Selected Type Number" (選択型番号), "STB Division" (STB区分), "HDD Capacity" (HDD容量), and "TV Course" (TVコース), the key uses a slash-delimited path format (e.g., `"Principal/0/FieldName"` meaning "the 0-th principal's FieldName"). The method parses this path to extract the list index, retrieves the corresponding item from the list (cast to `X33VDataTypeBeanInterface`), and **recursively delegates** `storeModelData()` to that item, creating a tree-based model binding for dynamic repeating sections.

The method implements the **dispatch/routing design pattern** — a single entry point that branches on a string key to reach the correct handler. It serves as the primary data sink for UI form submissions, receiving field-level data from the screen controller and populating this bean's model for subsequent business processing (validation, order creation, etc.). This method has **zero CRUD operations** — it is purely a data-binding utility with no database or service component interactions.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["storeModelData method"])

    START --> CHECK_NULL{key==null
or subkey==null}
    CHECK_NULL --> |Yes| RETURN["Return - no-op"]
    CHECK_NULL --> |No| FIND_SLASH["Find / in key"]

    FIND_SLASH --> DISPATCH{Dispatch by key field name}

    DISPATCH --> |STB| STB_BRANCH["STB field handler"]
    DISPATCH --> |Maker Code| MAKER_BRANCH["Maker Code field handler"]
    DISPATCH --> |Other Simple| SIMPLE_BRANCH["Simple field handler"]
    DISPATCH --> |STB Viewing| STB_VIEWING["STB viewing (array) handler"]
    DISPATCH --> |SelType Viewing| SEL_VIEWING["SelType viewing (array) handler"]
    DISPATCH --> |STB Div Viewing| STB_DIV_VIEWING["STB div viewing (array) handler"]
    DISPATCH --> |HDD Capa Viewing| HDD_VIEWING["HDD capacity viewing (array) handler"]
    DISPATCH --> |TV Course Viewing| TV_VIEWING["TV course viewing (array) handler"]
    DISPATCH --> |Rsv TV Course| RSV_BRANCH["Reserved TV course handler"]
    DISPATCH --> |Min Use Period| MINPRD_BRANCH["Minimum usage period handler"]
    DISPATCH --> |Unmatched| FALLBACK["No match - no-op"]

    STB_BRANCH --> STB_SUBKEY{subkey value/enable/state}
    STB_SUBKEY --> |value| SET_STB_V["setStb_value()"]
    STB_SUBKEY --> |enable| SET_STB_E["setStb_enabled()"]
    STB_SUBKEY --> |state| SET_STB_S["setStb_state()"]

    MAKER_BRANCH --> MAKER_SUBKEY{subkey value/enable/state}
    MAKER_SUBKEY --> |value| SET_MAKER_V["setMaker_cd_value()"]
    MAKER_SUBKEY --> |enable| SET_MAKER_E["setMaker_cd_enabled()"]
    MAKER_SUBKEY --> |state| SET_MAKER_S["setMaker_cd_state()"]

    SIMPLE_BRANCH --> SET_SIMPLE["Set appropriate field value/enabled/state"]
    RSV_BRANCH --> SET_RSV["Set reserved TV course fields"]
    MINPRD_BRANCH --> SET_MINPRD["Set minimum usage period fields"]

    STB_VIEWING --> PARSE_STB{Parse index from path}
    PARSE_STB --> |Valid| CALL_STB_LIST["Cast stb_ido_div_list item to X33VDataTypeBeanInterface
Call storeModelData recursively"]
    PARSE_STB --> |Invalid| FALLBACK

    SEL_VIEWING --> PARSE_SEL{Parse index from path}
    PARSE_SEL --> |Valid| CALL_SEL_LIST["Cast sel_type_number_list item to X33VDataTypeBeanInterface
Call storeModelData recursively"]
    PARSE_SEL --> |Invalid| FALLBACK

    STB_DIV_VIEWING --> PARSE_DIV{Parse index from path}
    PARSE_DIV --> |Valid| CALL_DIV_LIST["Cast stb_div_list item to X33VDataTypeBeanInterface
Call storeModelData recursively"]
    PARSE_DIV --> |Invalid| FALLBACK

    HDD_VIEWING --> PARSE_HDD{Parse index from path}
    PARSE_HDD --> |Valid| CALL_HDD_LIST["Cast hdd_capa_list item to X33VDataTypeBeanInterface
Call storeModelData recursively"]
    PARSE_HDD --> |Invalid| FALLBACK

    TV_VIEWING --> PARSE_TV{Parse index from path}
    PARSE_TV --> |Valid| CALL_TV_LIST["Cast tv_course_list item to X33VDataTypeBeanInterface
Call storeModelData recursively"]
    PARSE_TV --> |Invalid| FALLBACK

    SET_STB_V --> END(["Return"])
    SET_STB_E --> END
    SET_STB_S --> END
    SET_MAKER_V --> END
    SET_MAKER_E --> END
    SET_MAKER_S --> END
    SET_SIMPLE --> END
    SET_RSV --> END
    SET_MINPRD --> END
    CALL_STB_LIST --> END
    CALL_SEL_LIST --> END
    CALL_DIV_LIST --> END
    CALL_HDD_LIST --> END
    CALL_TV_LIST --> END
    FALLBACK --> END
    RETURN --> END
```

**Processing Pattern Summary:**

| Step | Description |
|------|-------------|
| 1 | **Null Guard** — Early return if `key` or `subkey` is null. |
| 2 | **Separator Detection** — Find the first `/` in `key` to determine if this is a simple field or a nested array field. |
| 3 | **Key Dispatch** — Branch on `key` value via a large if-else chain covering ~41 distinct field names (simple fields) and 5 list-type fields. |
| 4 | **Simple Field Processing** — For each recognized simple field, branch on `subkey` (case-insensitive comparison) to `value`/`enable`/`state` and call the appropriate typed setter. |
| 5 | **Viewing List Processing** — For list-type fields, parse the slash-delimited path to extract an integer index, validate bounds against the list size, cast to `X33VDataTypeBeanInterface`, and recursively call `storeModelData()` on the list item. |
| 6 | **Return** — Method returns `void` after completing all processing. |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | **Field name** — the business identifier of the data item to populate. For simple fields, it is the field's Japanese display name (e.g., `"STB"`, `"メーカーコード"` (Maker Code), `"HDD容量"` (HDD Capacity)). For list-type "data type viewing" fields, it is a slash-delimited path in the format `"Principal/Index/FieldName"` (e.g., `"Principal/0/FieldName"`) representing a specific item within a repeating section. |
| 2 | `subkey` | `String` | **Property accessor** — specifies which property of the field to set. Takes one of three case-insensitive values: `"value"` (the actual data value), `"enable"` (whether the field is enabled/editable), or `"state"` (the field's display state). |
| 3 | `in_value` | `Object` | **Data value** — the actual data to assign. For `subkey` = `"value"`, this is the typed data: `String` for most fields, `Boolean` for Boolean fields like "R" and hidden fields. For `subkey` = `"enable"`, this is a `Boolean` (true = editable, false = locked). For `subkey` = `"state"`, this is a `String` representation of the field's state. |
| 4 | `isSetAsString` | `boolean` | **Type coercion flag** — when true and the field is a Long-type item, forces the value to be set as a String type rather than converting to Long. Documented in Javadoc as: "When setting a String-type value to a Long-type item's Value property, set to true." |

**Instance fields read by this method:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `stb_ido_div_list` | `ArrayList` | List of "STB Migration Distinction" viewing items — supports dynamic array binding for repeated STB migration entries |
| `sel_type_number_list` | `ArrayList` | List of "Selected Type Number" viewing items — supports dynamic array binding for repeated type number selections |
| `stb_div_list` | `ArrayList` | List of "STB Division" viewing items — supports dynamic array binding for repeated STB division entries |
| `hdd_capa_list` | `ArrayList` | List of "HDD Capacity" viewing items — supports dynamic array binding for repeated HDD capacity entries |
| `tv_course_list` | `ArrayList` | List of "TV Course" viewing items — supports dynamic array binding for repeated TV course selections |

## 4. CRUD Operations / Called Services

This method performs **no database or SC (Service Component) operations**. It is a pure model data binding utility. All method calls are to its own instance setter methods and one interface method call (recursive delegation to list items).

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKAdEditCC.substring` | JKKAdEditCC | - | Utility call — substring operations applied to field values |
| - | `JKKAdEdit.substring` | JKKAdEdit | - | Utility call — substring operations applied to field values |
| - | `JKKTelnoInfoAddMapperCC.substring` | JKKTelnoInfoAddMapperCC | - | Utility call — substring operations applied to field values |
| - | `JDKejbStringEdit.substring` | JDKejbStringEdit | - | Utility call — string editing / substring on input values |
| - | `KKW00401SF02DBean.storeModelData` | KKW00401SF02DBean | - | Recursive delegation — calls itself on nested data-type-viewing list items (cast to `X33VDataTypeBeanInterface`) |

**All setter calls within this method** (e.g., `setStb_value()`, `setMaker_cd_enabled()`, `setHdd_um_state()`, etc.) are local field assignments on this bean instance — they do not qualify as CRUD or service calls. The complete set includes approximately 130 setter invocations across 41 fields (3 setters per field: `_value`, `_enabled`, `_state`).

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0004 (equivalent) | `KKW00401SF02DBean.storeModelData` | `setKiki_min_use_prd_state [-], setKiki_min_use_prd_enabled [-], setKiki_min_use_prd_value [-], setRsv_tv_course_cd_state [-], setRsv_tv_course_cd_enabled [-], setRsv_tv_course_cd_value [-], storeModelData [-], substring [-]` |

**Note:** The pre-computed code graph reports no screen/batch entry points within 8 hops, but identifies the method as its own caller (self-invocation for recursive delegation on viewing-list fields). This method is called internally by the same bean class during data binding, and no external screen or batch entry points were traced within the analysis depth.

**Terminal operations reached from this method:**
All terminal operations are local setter calls and substring utility calls — no SC codes, CRUD operations, or database entities are reached. The method is a pure presentation-layer model binder.

## 6. Per-Branch Detail Blocks

### Block 1 — IF `(key == null || subkey == null)` (L2461)

> Null guard — if either key or subkey is null, the method returns immediately without processing. This prevents NPE on downstream operations.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `return;` // key, subkey is null — abort processing (key, subkeyがnullの場合、処理を中止) |

### Block 2 — EXEC `int separaterPoint = key.indexOf("/")` (L2463)

> Finds the position of the first "/" delimiter in the key string. Used later to distinguish between simple field names and slash-delimited viewing list paths.

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

---

### Block 3 — IF/ELSE-IF CHAIN: Simple Field Handlers

This is a large if-else chain with ~41 field conditions. Each field follows the same sub-branch pattern (value/enable/state). Below are representative blocks for all field categories.

### Block 3.1 — IF `key.equals("STB")` (L2465)

> Handles the "STB" (Set-Top Box) field — a String data type field. Item ID: `stb`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setStb_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setStb_enabled((Boolean)in_value)` // subkey is "enable" — execute stb_enabled setter (subkeyが"enable"の場合、stb_enabledのsetterを実行する) |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setStb_state((String)in_value)` // subkey is "state" — return status (subkeyが"state"の場合、ステータスを返す) |

### Block 3.2 — IF `key.equals("メーカーコード")` (L2478)

> "Maker Code" (Equipment Manufacturer Code) — String data type. Item ID: `maker_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setMaker_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setMaker_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setMaker_cd_state((String)in_value)` |

### Block 3.3 — IF `key.equals("メーカー名")` (L2491)

> "Maker Name" (Equipment Manufacturer Name) — String data type. Item ID: `maker_nm`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setMaker_nm_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setMaker_nm_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setMaker_nm_state((String)in_value)` |

### Block 3.4 — IF `key.equals("保有ルーター種別コード")` (L2504)

> "Possession Router Type Code" — String data type. Item ID: `hoyu_router_sbt_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setHoyu_router_sbt_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setHoyu_router_sbt_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setHoyu_router_sbt_cd_state((String)in_value)` |

### Block 3.5 — IF `key.equals("VONU BSP KH")` (L2517)

> "VONU Base Station Possibility" (VONU設置可否) — String data type. Item ID: `vonu_bspt_kh`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setVonu_bspt_kh_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setVonu_bspt_kh_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setVonu_bspt_kh_state((String)in_value)` |

### Block 3.6 — IF `key.equals("STB ID")` (L2530)

> "STB ID" — String data type. Item ID: `stbid`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setStbid_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setStbid_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setStbid_state((String)in_value)` |

### Block 3.7 — IF `key.equals("屋内機器型式コード")` (L2543)

> "Indoor Device Model Code" — String data type. Item ID: `taknkiki_model_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setTaknkiki_model_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setTaknkiki_model_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setTaknkiki_model_cd_state((String)in_value)` |

### Block 3.8 — IF `key.equals("HDD有無")` (L2556)

> "HDD Presence" — String data type. Item ID: `hdd_um`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setHdd_um_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setHdd_um_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setHdd_um_state((String)in_value)` |

### Block 3.9 — IF `key.equals("R")` (L2569)

> "R" — Boolean data type. Item ID: `r`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setR_value((Boolean)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setR_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setR_state((String)in_value)` |

### Block 3.10 — IF `key.equals("選択型番コード")` (L2607)

> "Selected Type Number Code" — String data type. Item ID: `sel_type_number_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setSel_type_number_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setSel_type_number_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setSel_type_number_cd_state((String)in_value)` |

### Block 3.11 — IF `key.equals("HDD容量コード")` (L2633)

> "HDD Capacity Code" — String data type. Item ID: `hdd_capa_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setHdd_capa_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setHdd_capa_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setHdd_capa_cd_state((String)in_value)` |

### Block 3.12 — IF `key.equals("TVコースコード")` (L2646)

> "TV Course Code" — String data type. Item ID: `tv_course_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setTv_course_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setTv_course_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setTv_course_cd_state((String)in_value)` |

### Block 3.13 — IF `key.equals("変更前STB異動区分コード")` (L2659)

> "Pre-Change STB Migration Distinction Code" — String data type. Item ID: `old_stb_ido_div_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_stb_ido_div_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_stb_ido_div_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_stb_ido_div_cd_state((String)in_value)` |

### Block 3.14 — IF `key.equals("変更前選択型番コード")` (L2672)

> "Pre-Change Selected Type Number Code" — String data type. Item ID: `old_sel_type_number_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_sel_type_number_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_sel_type_number_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_sel_type_number_cd_state((String)in_value)` |

### Block 3.15 — IF `key.equals("変更前STB区分コード")` (L2685)

> "Pre-Change STB Division Code" — String data type. Item ID: `old_stb_div_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_stb_div_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_stb_div_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_stb_div_cd_state((String)in_value)` |

### Block 3.16 — IF `key.equals("変更前R")` (L2698)

> "Pre-Change R" — Boolean data type. Item ID: `old_r`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_r_value((Boolean)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_r_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_r_state((String)in_value)` |

### Block 3.17 — IF `key.equals("変更前HDD容量コード")` (L2711)

> "Pre-Change HDD Capacity Code" — String data type. Item ID: `old_hdd_capa_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_hdd_capa_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_hdd_capa_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_hdd_capa_cd_state((String)in_value)` |

### Block 3.18 — IF `key.equals("変更前TVコースコード")` (L2724)

> "Pre-Change TV Course Code" — String data type. Item ID: `old_tv_course_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_tv_course_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_tv_course_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_tv_course_cd_state((String)in_value)` |

### Block 3.19 — IF `key.equals("変更前TVコースコード？カート")` (L2737)

> "Pre-Change TV Course Code ? Cart" (ANK-2530-00-00 ADD) — String data type. Item ID: `old_tv_course_cd_cur`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setOld_tv_course_cd_cur_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setOld_tv_course_cd_cur_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setOld_tv_course_cd_cur_state((String)in_value)` |

### Block 3.20 — IF `key.equals("機器提供サービス契約番号")` (L2753)

> "Equipment Provisioning Service Contract Number" — String data type. Item ID: `kktk_svc_kei_no`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setKktk_svc_kei_no_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setKktk_svc_kei_no_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setKktk_svc_kei_no_state((String)in_value)` |

### Block 3.21 — IF `key.equals("屋内機器型式")` (L2766)

> "Indoor Device Model" — String data type. Item ID: `taknkiki_model`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setTaknkiki_model_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setTaknkiki_model_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setTaknkiki_model_state((String)in_value)` |

### Block 3.22 — IF `key.equals("屋内機器種別コード")` (L2779)

> "Indoor Device Type Code" — String data type. Item ID: `taknkiki_sbt_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setTaknkiki_sbt_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setTaknkiki_sbt_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setTaknkiki_sbt_cd_state((String)in_value)` |

### Block 3.23 — IF `key.equals("機器提供種別コード")` (L2792)

> "Equipment Provisioning Type Code" — String data type. Item ID: `kktk_sbt_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setKktk_sbt_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setKktk_sbt_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setKktk_sbt_cd_state((String)in_value)` |

### Block 3.24 — IF `key.equals("機器製造番号")` (L2805)

> "Equipment Serial Number" — String data type. Item ID: `kiki_seizo_no`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setKiki_seizo_no_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setKiki_seizo_no_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setKiki_seizo_no_state((String)in_value)` |

### Block 3.25 — IF `key.equals("HDDコード")` (L2818)

> "HDD Code" — String data type. Item ID: `hdd_capa`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setHdd_capa_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setHdd_capa_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setHdd_capa_state((String)in_value)` |

### Block 3.26 — IF `key.equals("サービス契約内訳番号")` (L2831)

> "Service Contract Detail Number" — String data type. Item ID: `svc_kei_ucwk_no`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setSvc_kei_ucwk_no_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setSvc_kei_ucwk_no_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setSvc_kei_ucwk_no_state((String)in_value)` |

### Block 3.27 — IF `key.equals("世代登録年月日時分秒")` (L2844)

> "Generation Registration Date/Time" — String data type. Item ID: `gene_add_dtm`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setGene_add_dtm_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setGene_add_dtm_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setGene_add_dtm_state((String)in_value)` |

### Block 3.28 — IF `key.equals("機器提供更新年月日時分秒")` (L2857)

> "Equipment Provisioning Update Date/Time" — String data type. Item ID: `kktk_upd_dtm`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setKktk_upd_dtm_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setKktk_upd_dtm_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setKktk_upd_dtm_state((String)in_value)` |

### Block 3.29 — IF `key.equals("サービス契約内訳更新年月日時分秒")` (L2870)

> "Service Contract Detail Update Date/Time" — String data type. Item ID: `svc_kei_ucwk_upd_dtm`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setSvc_kei_ucwk_upd_dtm_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setSvc_kei_ucwk_upd_dtm_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setSvc_kei_ucwk_upd_dtm_state((String)in_value)` |

### Block 3.30 — IF `key.equals("隠しSTB異動区分コード")` (L2883)

> "Hidden STB Migration Distinction Code" — String data type. Item ID: `stb_ido_div_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setStb_ido_div_hidden_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setStb_ido_div_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setStb_ido_div_hidden_state((String)in_value)` |

### Block 3.31 — IF `key.equals("隠し選択型番コード")` (L2896)

> "Hidden Selected Type Number Code" — String data type. Item ID: `sel_type_number_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setSel_type_number_hidden_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setSel_type_number_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setSel_type_number_hidden_state((String)in_value)` |

### Block 3.32 — IF `key.equals("隠しSTB区分コード")` (L2909)

> "Hidden STB Division Code" — String data type. Item ID: `stb_div_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setStb_div_hidden_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setStb_div_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setStb_div_hidden_state((String)in_value)` |

### Block 3.33 — IF `key.equals("隠しR")` (L2922)

> "Hidden R" — Boolean data type. Item ID: `r_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setR_hidden_value((Boolean)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setR_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setR_hidden_state((String)in_value)` |

### Block 3.34 — IF `key.equals("隠しHDD容量コード")` (L2935)

> "Hidden HDD Capacity Code" — String data type. Item ID: `hdd_capa_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setHdd_capa_hidden_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setHdd_capa_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setHdd_capa_hidden_state((String)in_value)` |

### Block 3.35 — IF `key.equals("隠しTVコースコード")` (L2948)

> "Hidden TV Course Code" — String data type. Item ID: `tv_course_hidden`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setTv_course_hidden_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setTv_course_hidden_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setTv_course_hidden_state((String)in_value)` |

### Block 3.36 — IF `key.equals("一覧のスタイル制御")` (L2961)

> "List Style Control" — String data type. Item ID: `list_style`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setList_style_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setList_style_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setList_style_state((String)in_value)` |

### Block 3.37 — IF `key.equals("BCAS ID")` (L2974)

> "BCAS ID" — String data type. Item ID: `bcas_id`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setBcas_id_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setBcas_id_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setBcas_id_state((String)in_value)` |

### Block 3.38 — IF `key.equals("CCAS ID")` (L2987)

> "CCAS ID" — String data type. Item ID: `ccas_id`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setCcas_id_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setCcas_id_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setCcas_id_state((String)in_value)` |

### Block 3.39 — IF `key.equals("STB異動区分")` (L3000)

> **"STB Migration Distinction"** — Data type viewing (array/list) field. This block handles nested path-based key format: `"Principal/Index/FieldName"`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` // Get elements after the first "/" from path format like "Principal/0/FieldName" (keyの次の要素を取得) |
| 2 | SET | `separaterPoint = keyRemain.indexOf("/")` // Search for next delimiter "/" (次の区切り記号を検索する) |
| 3 | IF | `separaterPoint > 0` // Delimiter properly specified (区切り記号が正しく指定された場合) |
| 3.1 | SET | `key = keyRemain.substring(0, separaterPoint)` // Extract the item name from path (項目名を生成) |
| 3.2 | TRY-CATCH | `tmpIndexInt = Integer.valueOf(key)` // Parse index value (index値が数値文字列かどうかを確認) |
| 3.3 | CATCH | `NumberFormatException` → `tmpIndexInt = null` // If not a numeric string, reset (index値が数値文字列でない場合は、ここで再設定) |
| 3.4 | IF | `tmpIndexInt != null` // Index value is a numeric string (index値が数値文字列の場合) |
| 3.4.1 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 3.4.2 | IF | `tmpIndex >= 0 && tmpIndex < stb_ido_div_list.size()` // Index within list size-1 bounds (index値がリスト個数-1以下の場合) |
| 3.4.2.1 | SET | `key = keyRemain.substring(separaterPoint + 1)` // Remaining key after index (keyRemainからindex部分より後ろを取得) |
| 3.4.2.2 | CALL | `((X33VDataTypeBeanInterface)stb_ido_div_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` // Delegate to list item — data type viewing model assigns item name, subkey, input value, and isSetAsString flag as parameters (データタイプビューイング型では項目名、subkey、入力値およびisSetAsStringフラグを引数に指定) |
| 3.4.3 | ELSE | Fall through (index out of bounds or null) |
| 3.5 | ELSE | Fall through (no delimiter found) |

### Block 3.40 — IF `key.equals("選択型番号")` (L3015)

> **"Selected Type Number"** — Data type viewing (array/list) field. Same pattern as Block 3.39.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` |
| 2 | SET | `separaterPoint = keyRemain.indexOf("/")` |
| 3 | IF | `separaterPoint > 0` |
| 3.1 | SET | `key = keyRemain.substring(0, separaterPoint)` |
| 3.2 | TRY-CATCH | `Integer.valueOf(key)` / `NumberFormatException → null` |
| 3.4 | IF | `tmpIndexInt != null` |
| 3.4.1 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 3.4.2 | IF | `tmpIndex >= 0 && tmpIndex < sel_type_number_list.size()` |
| 3.4.2.1 | SET | `key = keyRemain.substring(separaterPoint + 1)` |
| 3.4.2.2 | CALL | `((X33VDataTypeBeanInterface)sel_type_number_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` |

### Block 3.41 — IF `key.equals("STB区分")` (L3030)

> **"STB Division"** — Data type viewing (array/list) field. Same pattern as Block 3.39.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` |
| 2 | SET | `separaterPoint = keyRemain.indexOf("/")` |
| 3 | IF | `separaterPoint > 0` |
| 3.1 | SET | `key = keyRemain.substring(0, separaterPoint)` |
| 3.2 | TRY-CATCH | `Integer.valueOf(key)` / `NumberFormatException → null` |
| 3.4 | IF | `tmpIndexInt != null` |
| 3.4.1 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 3.4.2 | IF | `tmpIndex >= 0 && tmpIndex < stb_div_list.size()` |
| 3.4.2.1 | SET | `key = keyRemain.substring(separaterPoint + 1)` |
| 3.4.2.2 | CALL | `((X33VDataTypeBeanInterface)stb_div_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` |

### Block 3.42 — IF `key.equals("HDD容量")` (L3045)

> **"HDD Capacity"** — Data type viewing (array/list) field. Same pattern as Block 3.39.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` |
| 2 | SET | `separaterPoint = keyRemain.indexOf("/")` |
| 3 | IF | `separaterPoint > 0` |
| 3.1 | SET | `key = keyRemain.substring(0, separaterPoint)` |
| 3.2 | TRY-CATCH | `Integer.valueOf(key)` / `NumberFormatException → null` |
| 3.4 | IF | `tmpIndexInt != null` |
| 3.4.1 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 3.4.2 | IF | `tmpIndex >= 0 && tmpIndex < hdd_capa_list.size()` |
| 3.4.2.1 | SET | `key = keyRemain.substring(separaterPoint + 1)` |
| 3.4.2.2 | CALL | `((X33VDataTypeBeanInterface)hdd_capa_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` |

### Block 3.43 — IF `key.equals("TVコース")` (L3060)

> **"TV Course"** — Data type viewing (array/list) field. Same pattern as Block 3.39.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String keyRemain = key.substring(separaterPoint + 1)` |
| 2 | SET | `separaterPoint = keyRemain.indexOf("/")` |
| 3 | IF | `separaterPoint > 0` |
| 3.1 | SET | `key = keyRemain.substring(0, separaterPoint)` |
| 3.2 | TRY-CATCH | `Integer.valueOf(key)` / `NumberFormatException → null` |
| 3.4 | IF | `tmpIndexInt != null` |
| 3.4.1 | SET | `int tmpIndex = tmpIndexInt.intValue()` |
| 3.4.2 | IF | `tmpIndex >= 0 && tmpIndex < tv_course_list.size()` |
| 3.4.2.1 | SET | `key = keyRemain.substring(separaterPoint + 1)` |
| 3.4.2.2 | CALL | `((X33VDataTypeBeanInterface)tv_course_list.get(tmpIndex)).storeModelData(key, subkey, in_value, isSetAsString)` |

### Block 3.44 — IF `key.equals("予約TVコースコード")` (L3075)

> **"Reserved TV Course Code"** — String data type. Item ID: `rsv_tv_course_cd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setRsv_tv_course_cd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setRsv_tv_course_cd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setRsv_tv_course_cd_state((String)in_value)` |

### Block 3.45 — IF `key.equals("機器最低利用期間")` (L3084)

> **"Minimum Usage Period"** (ANK-2198-00-00 Add, 20140815) — String data type. Item ID: `kiki_min_use_prd`.

| # | Type | Code |
|---|------|------|
| 1 | IF-ELSE-IF | `subkey.equalsIgnoreCase("value")` → `setKiki_min_use_prd_value((String)in_value)` |
| 2 | IF-ELSE-IF | `subkey.equalsIgnoreCase("enable")` → `setKiki_min_use_prd_enabled((Boolean)in_value)` |
| 3 | IF-ELSE-IF | `subkey.equalsIgnoreCase("state")` → `setKiki_min_use_prd_state((String)in_value)` |

---

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `stb` | Field | STB (Set-Top Box) — cable TV / IPTV decoder box identifier |
| `stb_ido_div` | Field | STB Migration Distinction — indicates the type of STB change/migration (e.g., same unit swap, upgrade, downgrade) |
| `stb_ido_div_cd` | Field | STB Migration Distinction Code — numeric code identifying the migration type |
| `stb_div` | Field | STB Division — categorization of STB units (e.g., primary, secondary, loaner) |
| `stb_div_cd` | Field | STB Division Code — code for the STB division type |
| `maker_cd` | Field | Maker Code (Manufacturer Code) — code identifying the equipment manufacturer |
| `maker_nm` | Field | Maker Name (Manufacturer Name) — human-readable name of the equipment manufacturer |
| `hoyu_router_sbt_cd` | Field | Possession Router Type Code — code for the type of router the customer already possesses |
| `vonu_bspt_kh` | Field | VONU Base Station Possibility — boolean-like flag indicating whether a VONU (Voice Over Network Unit) can be installed at the base station |
| `stbid` | Field | STB ID — unique identifier for a specific STB unit |
| `taknkiki_model_cd` | Field | Indoor Device Model Code — code for the model of indoor equipment |
| `taknkiki_model` | Field | Indoor Device Model — human-readable model name of indoor equipment |
| `taknkiki_sbt_cd` | Field | Indoor Device Type Code — code for the type of indoor equipment |
| `hdd_um` | Field | HDD Presence (HDD Usage/Measurement) — flag indicating whether HDD is present |
| `hdd_capa` | Field | HDD Capacity — human-readable HDD capacity value |
| `hdd_capa_cd` | Field | HDD Capacity Code — code identifying the HDD capacity specification |
| `r` | Field | R — boolean flag (likely represents a conditional requirement or flag for the service order) |
| `sel_type_number_cd` | Field | Selected Type Number Code — code for the selected product type/number |
| `tv_course_cd` | Field | TV Course Code — code identifying the selected TV channel package/course |
| `rsv_tv_course_cd` | Field | Reserved TV Course Code — code for the TV course reserved for the customer |
| `gene_add_dtm` | Field | Generation Registration Date/Time — timestamp when the equipment generation record was registered |
| `kktk_upd_dtm` | Field | Equipment Provisioning Update Date/Time — timestamp when equipment provisioning was last updated |
| `svc_kei_ucwk_no` | Field | Service Contract Detail Number — internal tracking ID for a service contract line item |
| `svc_kei_ucwk_upd_dtm` | Field | Service Contract Detail Update Date/Time — timestamp when the service contract detail was last updated |
| `kktk_svc_kei_no` | Field | Equipment Provisioning Service Contract Number — contract number for equipment provisioning services |
| `kktk_sbt_cd` | Field | Equipment Provisioning Type Code — code for the type of equipment provisioning |
| `kiki_seizo_no` | Field | Equipment Serial Number — unique manufacturing serial number of the equipment |
| `kiki_min_use_prd` | Field | Minimum Usage Period — minimum contract/usage period required for the equipment |
| `bcas_id` | Field | BCAS ID — BCAS (Broadcast Content Access System) smart card identifier for conditional access |
| `ccas_id` | Field | CCAS ID — CCAS (Cable Content Access System) card identifier for cable conditional access |
| `old_stb_ido_div_cd` | Field | Pre-Change STB Migration Distinction Code — migration code before the change |
| `old_sel_type_number_cd` | Field | Pre-Change Selected Type Number Code — type number before the change |
| `old_stb_div_cd` | Field | Pre-Change STB Division Code — division code before the change |
| `old_r` | Field | Pre-Change R — R flag before the change |
| `old_hdd_capa_cd` | Field | Pre-Change HDD Capacity Code — HDD capacity code before the change |
| `old_tv_course_cd` | Field | Pre-Change TV Course Code — TV course code before the change |
| `old_tv_course_cd_cur` | Field | Pre-Change TV Course Code ? Cart — TV course code before change (with cart/context indicator, added in ANK-2530-00-00) |
| `stb_ido_div_hidden` | Field | Hidden STB Migration Distinction Code — hidden/display-conditional migration code |
| `sel_type_number_hidden` | Field | Hidden Selected Type Number Code — hidden/display-conditional type number |
| `stb_div_hidden` | Field | Hidden STB Division Code — hidden/display-conditional division code |
| `r_hidden` | Field | Hidden R — hidden R flag |
| `hdd_capa_hidden` | Field | Hidden HDD Capacity Code — hidden/display-conditional HDD capacity code |
| `tv_course_hidden` | Field | Hidden TV Course Code — hidden/display-conditional TV course code |
| `list_style` | Field | List Style Control — controls the display style of list items on the UI |
| `X33VDataTypeBeanInterface` | Interface | Data type viewing bean interface — the contract that list items must implement to support recursive model data binding |
| `storeModelData` | Method | Model data storage — the dispatcher method that routes field data to the correct setter based on key/subkey |
| `listKoumokuIds` | Method | List of field IDs — static method returning all recognized field names (koumokuIds = 項目IDs) |
| `typeModelData` | Method | Returns the Java type of a model field — counterpart to storeModelData, used for introspection |
| STB | Acronym | Set-Top Box — cable/IPTV set-top decoder unit |
| VONU | Acronym | Voice Over Network Unit — networking equipment for voice/data over fiber |
| BCAS | Acronym | Broadcast Content Access System — Japanese digital broadcast conditional access system |
| CCAS | Acronym | Cable Content Access System — cable TV conditional access system |
| HDD | Acronym | Hard Disk Drive — storage device |
| TV | Acronym | Television / Video service course |
| ANK | Acronym | Internal project/issue tracking prefix (e.g., ANK-2530-00-00, ANK-2198-00-00) |
| KKW00401SF | Module | Equipment provisioning / device registration screen module |
| 機器提供 (Kiki Teikyou) | Field | Equipment Provisioning — the business process of provisioning and registering customer equipment |
| 屋内機器 (Okunai Kiki) | Field | Indoor Equipment — customer-premise equipment such as STBs, routers, set-top boxes |
| 世代登録 (Sedai Touroku) | Field | Generation Registration — registration of an equipment generation/version record |
| データタイプビューイング (Data Type Viewing) | Field | Data Type Viewing — a UI pattern where list-type fields support slash-delimited paths for nested indexing into repeating sections |
