# Business Logic — KKW00401SF02DBean.listKoumokuIds() [55 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00401SF.KKW00401SF02DBean` |
| Layer | Utility / View Bean (webview data carrier) |
| Module | `KKW00401SF` (Package: `eo.web.webview.KKW00401SF`) |

## 1. Role

### KKW00401SF02DBean.listKoumokuIds()

This method serves as a **data-type view bean item name registry** — it constructs and returns a fixed, ordered list of field identifiers (item names / `koumokuIds`) that are used across the KKW00401SF screen module for rendering, validation, and data-binding purposes. The identifiers are Japanese UI labels and technical column names representing service provisioning device and STT (Set-Top Box / Terminal) attributes. It follows the **static factory / builder pattern**, creating a new `ArrayList<String>` and populating it with sequentially ordered strings before returning it.

This is a **shared utility method** — any DBean or screen bean that delegates to this method (via `super.listKoumokuIds(key)` or direct invocation) consumes the returned list to build dropdowns, column headers, or field lookup tables for device provisioning service contracts. The method handles no conditional logic, no I/O, and no business rule evaluation; its sole responsibility is deterministic data provisioning. The list is divided implicitly into three conceptual groups: (1) live device attributes (STT, maker info, HTD capacity, TV course), (2) pre-change snapshot attributes (prefixed with "変更前" for audit/comparison purposes), and (3) hidden/internal attributes (prefixed with "隠し") plus style metadata fields like `NCAPSIS`, `CCAPSIS`, and `一覧のスタイル制御`.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    INIT["Initialize ArrayList<String> koumokuList"]
    POPULATE["Add 46 item name strings sequentially:"]
    ITEM_GROUP1[("Group 1: Live Device Attributes
(STT, Maker Code/Name, Route Type,
VONUS, STTID, Device Model, HTD,
STT Transfer/Classification,
Selection Number, HTD Capacity,
TV Course, Device Contract, etc.)")]
    ITEM_GROUP2[("Group 2: Pre-Change Snapshots
(Pre-Change STT Transfer/Classification,
Pre-Change Selection Number,
Pre-Change STT Classification,
Pre-Change R, Pre-Change HTD/TV
Capacity/Course, Pre-Change TV Course?Cancel)")]
    ITEM_GROUP3[("Group 3: Hidden Attributes
(Hidden STT Transfer/Classification,
Hidden Selection Number,
Hidden STT Classification,
Hidden R, Hidden HTD/TV Capacity/Course)")]
    ITEM_GROUP4[("Group 4: Metadata / Style
(List Style Control, NCAPSIS, CCAPSIS,
STT Transfer/Classification,
Selection Number, STT Classification,
HTD Capacity, TV Course,
Reserved TV Course Code
[ANK-2198 added: Device Min Usage Period])")]
    RETURN["Return koumokuList"]
    END(["End"])

    START --> INIT
    INIT --> POPULATE
    POPULATE --> ITEM_GROUP1
    ITEM_GROUP1 --> ITEM_GROUP2
    ITEM_GROUP2 --> ITEM_GROUP3
    ITEM_GROUP3 --> ITEM_GROUP4
    ITEM_GROUP4 --> RETURN
    RETURN --> END
```

**Processing Description:**
The method executes a single linear path with no branching:

1. **Initialize** — Creates a new `ArrayList<String>` named `koumokuList`.
2. **Populate** — Appends 46 string literals in a fixed, deterministic order representing all view bean item names for the KKW00401SF device provisioning data type view.
3. **Return** — Returns the populated list to the caller.

There are no conditional branches, loops (other than the implicit iteration during `add`), or external method calls. The method is a pure data factory.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a static factory method that returns a predefined list. |

**External State:**
- None. The method reads no instance fields, accesses no static state beyond the Java standard library `ArrayList`, and has no dependencies on external configuration or environment.

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| (none) | — | — | — | This method performs no data access, no service calls, and no database operations. It is a pure in-memory list builder. |

**Note:** While this method is often called as part of larger screen flows that involve actual CRUD operations on device provisioning entities, the `listKoumokuIds` method itself has zero I/O or persistence interactions.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | DBean Delegate (various) | `FUWxxxxxSFBean.listKoumokuIds(key)` → `super.listKoumokuIds(key)` → delegation routing | N/A — this method returns only string list data |
| 2 | FUW00912SF02DBean | `FUW00912SF02DBean.listKoumokuIds()` → direct static call | N/A |
| 3 | FUW00912SFBean | `FUW00912SFBean.listKoumokuIds(key)` → conditional routing → `FUW00912SF02DBean.listKoumokuIds()` | N/A |
| 4 | FUW00926SF* beans | `FUW00926SFBean.listKoumokuIds(key)` → delegation routing to sub-DBean variants | N/A |
| 5 | FUW00959SF* beans | `FUW00959SFBean.listKoumokuIds(key)` → delegation routing to sub-DBean variants | N/A |
| 6 | FUW00964SF* beans | `FUW00964SFBean.listKoumokuIds(key)` → delegation routing to sub-DBean variants | N/A |

**Notes on Caller Analysis:**
- No direct callers of `KKW00401SF02DBean.listKoumokuIds()` were found in the indexed codebase. The method definition exists but has no explicit cross-module invocation references.
- The method signature (`public static ArrayList<String> listKoumokuIds()`) matches a well-established pattern across the codebase — every DBean variant implements this same static factory method to supply item name lists to their parent screen beans.
- Screen beans (e.g., `FUW00912SFBean`, `FUW00926SFBean`, `FUW00959SFBean`, `FUW00964SFBean`) contain a parameterized `listKoumokuIds(String key)` method that routes to specific sub-DBean variants based on the `key` parameter. `KKW00401SF02DBean.listKoumokuIds()` follows this identical pattern.
- The terminal column is N/A because this method is a pure data provider with no downstream service/CRUD calls.

## 6. Per-Branch Detail Blocks

> This method has no conditional branches or loops (other than the sequential `add` operations). The entire body is a single linear block.

**Block 1** — [METHOD BODY] `(static factory)` (L3167)

> Initializes the list and populates it with 46 item name strings in a fixed order representing device provisioning view bean fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList = new ArrayList<String>();` // Initialize new list |
| 2 | EXEC | `koumokuList.add("STT");` // STT item |
| 3 | EXEC | `koumokuList.add("メーカーコード");` // Maker Code [-> "Manufacturer Code"] |
| 4 | EXEC | `koumokuList.add("メーカー名");` // Maker Name [-> "Manufacturer Name"] |
| 5 | EXEC | `koumokuList.add("保有ルート種別コード");` // Holding Route Type Code [-> "Holding Route Type Code"] |
| 6 | EXEC | `koumokuList.add("VONUSパスルー許可");` // VONUS Pass-Through Permission [-> "VONUS Pass-Through Permission"] |
| 7 | EXEC | `koumokuList.add("STTID");` // STTID |
| 8 | EXEC | `koumokuList.add("家中機器型式コード");` // Indoor Device Model Code [-> "Indoor Device Model Code"] |
| 9 | EXEC | `koumokuList.add("HTD有無");` // HTD Presence/Absence [-> "HTD Presence"] |
| 10 | EXEC | `koumokuList.add("R");` // R |
| 11 | EXEC | `koumokuList.add("STT異動区分コード");` // STT Transfer Classification Code [-> "STT Transfer Classification Code"] |
| 12 | EXEC | `koumokuList.add("選択型番号コード");` // Selection Type Number Code [-> "Selection Type Number Code"] |
| 13 | EXEC | `koumokuList.add("STT区分コード");` // STT Classification Code [-> "STT Classification Code"] |
| 14 | EXEC | `koumokuList.add("HTD容量コード");` // HTD Capacity Code [-> "HTD Capacity Code"] |
| 15 | EXEC | `koumokuList.add("TVコースコード");` // TV Course Code [-> "TV Course Code"] |
| 16 | EXEC | `koumokuList.add("変更前STT異動区分コード");` // Pre-Change STT Transfer Classification Code [-> "Pre-Change STT Transfer Classification Code"] |
| 17 | EXEC | `koumokuList.add("変更前選択型番号コード");` // Pre-Change Selection Type Number Code [-> "Pre-Change Selection Type Number Code"] |
| 18 | EXEC | `koumokuList.add("変更前STT区分コード");` // Pre-Change STT Classification Code [-> "Pre-Change STT Classification Code"] |
| 19 | EXEC | `koumokuList.add("変更前R");` // Pre-Change R [-> "Pre-Change R"] |
| 20 | EXEC | `koumokuList.add("変更前HTD容量コード");` // Pre-Change HTD Capacity Code [-> "Pre-Change HTD Capacity Code"] |
| 21 | EXEC | `koumokuList.add("変更前TVコースコード");` // Pre-Change TV Course Code [-> "Pre-Change TV Course Code"] |
| 22 | EXEC | `koumokuList.add("変更前TVコースコード?キャンセル");` // Pre-Change TV Course Code? Cancel [ANK-2530] [-> "Pre-Change TV Course Code? Cancel"] |
| 23 | EXEC | `koumokuList.add("機器提供サービス契約番号");` // Device Provisioning Service Contract Number [-> "Device Provisioning Service Contract Number"] |
| 24 | EXEC | `koumokuList.add("家中機器型式");` // Indoor Device Model [-> "Indoor Device Model"] |
| 25 | EXEC | `koumokuList.add("家中機器種別コード");` // Indoor Device Type Code [-> "Indoor Device Type Code"] |
| 26 | EXEC | `koumokuList.add("機器提供種別コード");` // Device Provisioning Type Code [-> "Device Provisioning Type Code"] |
| 27 | EXEC | `koumokuList.add("機器製造番号");` // Device Serial Number [-> "Device Serial Number"] |
| 28 | EXEC | `koumokuList.add("HTDコード");` // HTD Code [-> "HTD Code"] |
| 29 | EXEC | `koumokuList.add("サービス契約内訳番号");` // Service Contract Detail Number [-> "Service Contract Detail Number"] |
| 30 | EXEC | `koumokuList.add("世代登録年月日時分秒");` // Generation Registration Year/Month/Day/Time/Minute/Second [-> "Generation Registration Timestamp"] |
| 31 | EXEC | `koumokuList.add("機器提供更新年月日時分秒");` // Device Provisioning Update Year/Month/Day/Time/Minute/Second [-> "Device Provisioning Update Timestamp"] |
| 32 | EXEC | `koumokuList.add("サービス契約内訳更新年月日時分秒");` // Service Contract Detail Update Year/Month/Day/Time/Minute/Second [-> "Service Contract Detail Update Timestamp"] |
| 33 | EXEC | `koumokuList.add("隠しSTT異動区分コード");` // Hidden STT Transfer Classification Code [-> "Hidden STT Transfer Classification Code"] |
| 34 | EXEC | `koumokuList.add("隠し選択型番号コード");` // Hidden Selection Type Number Code [-> "Hidden Selection Type Number Code"] |
| 35 | EXEC | `koumokuList.add("隠しSTT区分コード");` // Hidden STT Classification Code [-> "Hidden STT Classification Code"] |
| 36 | EXEC | `koumokuList.add("隠しR");` // Hidden R [-> "Hidden R"] |
| 37 | EXEC | `koumokuList.add("隠しHTD容量コード");` // Hidden HTD Capacity Code [-> "Hidden HTD Capacity Code"] |
| 38 | EXEC | `koumokuList.add("隠しTVコースコード");` // Hidden TV Course Code [-> "Hidden TV Course Code"] |
| 39 | EXEC | `koumokuList.add("一覧のスタイル制御");` // List Style Control [-> "List Style Control"] |
| 40 | EXEC | `koumokuList.add("NCAPSIS");` // NCAPSIS |
| 41 | EXEC | `koumokuList.add("CCAPSIS");` // CCAPSIS |
| 42 | EXEC | `koumokuList.add("STT異動区分");` // STT Transfer Classification [-> "STT Transfer Classification"] |
| 43 | EXEC | `koumokuList.add("選択型番号");` // Selection Type Number [-> "Selection Type Number"] |
| 44 | EXEC | `koumokuList.add("STT区分");` // STT Classification [-> "STT Classification"] |
| 45 | EXEC | `koumokuList.add("HTD容量");` // HTD Capacity [-> "HTD Capacity"] |
| 46 | EXEC | `koumokuList.add("TVコース");` // TV Course [-> "TV Course"] |
| 47 | EXEC | `koumokuList.add("予約TVコースコード");` // Reserved TV Course Code [-> "Reserved TV Course Code"] |
| 48 | EXEC | `koumokuList.add("機器最低利用期間");` // Device Minimum Usage Period [ANK-2198] [-> "Device Minimum Usage Period"] |
| 49 | RETURN | `return koumokuList;` // Return the populated list |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `STT` | Field/Set-Top Terminal | Set-Top Terminal — the subscriber's set-top box or terminal equipment identifier used in cable/telecom service provisioning |
| メーカーコード | Field | Manufacturer Code — internal code identifying the hardware manufacturer of the device |
| メーカー名 | Field | Manufacturer Name — human-readable name of the device manufacturer |
| 保有ルート種別コード | Field | Holding Route Type Code — classifies the type of holding/route assignment for the service line |
| VONUSパスルー許可 | Field | VONUS Pass-Through Permission — whether VONUS (a cable TV service platform) pass-through is permitted for this line |
| STTID | Field | STT ID — unique identifier for the set-top terminal |
| 家中機器型式コード | Field | Indoor Device Model Code — code for the model type of the indoor unit/device |
| HTD有無 | Field | HTD Presence — flag indicating whether an HTD (Hybrid Terminal Device) is present/installed |
| R | Field | R — abbreviated field for a service classification or resource indicator (used in STT provisioning context) |
| STT異動区分コード | Field | STT Transfer Classification Code — code classifying the type of STT transfer/movement operation |
| 選択型番号コード | Field | Selection Type Number Code — code for a selection-type model number assignment |
| STT区分コード | Field | STT Classification Code — code classifying the STT into a specific category |
| HTD容量コード | Field | HTD Capacity Code — code representing the capacity tier of the HTD device |
| TVコースコード | Field | TV Course Code — code identifying the TV package/course subscription |
| 変更前* | Prefix | Pre-Change — indicates a snapshot of a field value before a modification operation; used for audit trail / comparison display |
| 隠し* | Prefix | Hidden — indicates a field that is not displayed to end users but is retained internally for processing or reference |
| 一覧のスタイル制御 | Field | List Style Control — metadata field controlling the display style/format of the list view |
| NCAPSIS | Field | NCAPSIS — a technical system field code (likely related to a provisioning or billing system component) |
| CCAPSIS | Field | CCAPSIS — a technical system field code (likely related to a provisioning or billing system component) |
| STT異動区分 | Field | STT Transfer Classification — human-readable classification of STT transfer type |
| 選択型番号 | Field | Selection Type Number — human-readable selection type number |
| STT区分 | Field | STT Classification — human-readable STT classification |
| HTD容量 | Field | HTD Capacity — human-readable HTD capacity |
| TVコース | Field | TV Course — human-readable TV course/package name |
| 予約TVコースコード | Field | Reserved TV Course Code — code for a reserved (pending) TV course assignment |
| 機器最低利用期間 | Field | Device Minimum Usage Period — minimum contract/usage period required for the device (added via ANK-2198) |
| 機器提供サービス契約番号 | Field | Device Provisioning Service Contract Number — contract number for the device provisioning service |
| 家中機器型式 | Field | Indoor Device Model — human-readable indoor device model name |
| 家中機器種別コード | Field | Indoor Device Type Code — code for the type of indoor device |
| 機器提供種別コード | Field | Device Provisioning Type Code — code classifying the type of device provisioning |
| 機器製造番号 | Field | Device Serial Number — unique serial number of the device |
| HTDコード | Field | HTD Code — code identifying the HTD device |
| サービス契約内訳番号 | Field | Service Contract Detail Number — detail line number within a service contract |
| 世代登録年月日時分秒 | Field | Generation Registration Timestamp — full timestamp (YYYY-MM-DD HH:MM:SS) of generation registration |
| 機器提供更新年月日時分秒 | Field | Device Provisioning Update Timestamp — full timestamp of last device provisioning update |
| サービス契約内訳更新年月日時分秒 | Field | Service Contract Detail Update Timestamp — full timestamp of last service contract detail update |
| VONUS | Business term | VONUS — a cable television service platform brand (originally by Time Warner Cable / Spectrum) |
| HTD | Business term | Hybrid Terminal Device — hybrid fiber-coaxial terminal equipment in cable/telecom networks |
| STT | Business term | Set-Top Terminal — subscriber-set-top box or terminal unit in cable/telecom service provisioning |
| ANK-2198 | Change ticket | Internal change ticket that added the "Device Minimum Usage Period" field |
| ANK-2530 | Change ticket | Internal change ticket that added the "Pre-Change TV Course Code? Cancel" field |
| listKoumokuIds | Method | List of item names — static factory method pattern shared across DBean classes for providing view bean field metadata |
| DBean | Technical term | Data Bean — a view-layer data carrier class in the webview package that holds screen-specific data and metadata |
