# Business Logic — KKW22101SF02DBean.listKoumokuIds() [10 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW22101SF.KKW22101SF02DBean` |
| Layer | Web View / Data Type Bean (UI presentation layer) |
| Module | `KKW22101SF` (Package: `eo.web.webview.KKW22101SF`) |

## 1. Role

### KKW22101SF02DBean.listKoumokuIds()

This method serves as a **data type view bean field metadata provider** for the "Equipment Provided Service Contract List Details List" (機器提供サービス契約一覧明細リスト) screen in the K-Opticom telecom management system. It returns a fixed, ordered list of Japanese-labeled field identifiers that define the column structure of a data table displayed on the equipment service contract details screen.

The method follows a **static factory pattern** — it is declared `static` and requires no bean instantiation, returning a pre-populated `ArrayList<String>` containing exactly 7 domain-specific field labels. These labels correspond to UI column headers for a service contract listing screen where customers review their equipment provision details, including equipment type codes, model names, billing start dates, plan start dates, service names, and Smart Link Premium Pack subscription status.

In the larger system, this method is the canonical source of field metadata for the `KKW22101SF02DBean` data type. It is called by the parent view bean (`KKW22101SFBean`) as a dispatch target when the user navigates to the "Equipment Provided Service Contract List Details List" view, which uses the data type key `"機器提供サービス契約一覧明細リスト"` and item ID `service_list`. The returned field list drives the UI framework's column generation, allowing the screen to render the correct columns in the correct display order without hardcoded HTML.

As a **shared utility** within the `KKW22101SF` module, this method is one of several data type beans (01–05) that each provide their own field list for different sub-views of the same screen, enabling a single screen class to serve multiple tab or view panels with different column configurations.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    STEP1["Create new ArrayList<String> koumokuList"]
    STEP2["Add \"宅内機器型式コード\"
(Indoor Equipment Type Code)"]
    STEP3["Add \"宅内機器型式名\"
(Indoor Equipment Type Name)"]
    STEP4["Add \"機器割当請求開始年月\"
(Equipment Assignment Billing Start Year/Month)"]
    STEP5["Add \"機器プラン開始年月日\"
(Equipment Plan Start Date)"]
    STEP6["Add \"機器提供サービス名\"
(Equipment Provided Service Name)"]
    STEP7["Add \"スマトリンプレミアムパック有無\"
(Smart Link Premium Pack Existence)"]
    END_RETURN["Return koumokuList"]

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> STEP3
    STEP3 --> STEP4
    STEP4 --> STEP5
    STEP5 --> STEP6
    STEP6 --> STEP7
    STEP7 --> END_RETURN
```

**Processing Summary:**
This method performs a single sequential flow with no conditional branches, loops, or external calls. It:
1. Instantiates a new `ArrayList<String>` to hold the field name list
2. Appends 7 field labels in domain-specific order — starting with equipment type identifiers, followed by temporal data (billing/plan start dates), service identification, and subscription status
3. Returns the populated list

The method has no branching logic, no constant-based dispatch, and no conditional execution paths.

## 3. Parameter Analysis

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

**No instance fields or external state** are read by this method. The returned list is entirely composed of literal string constants.

## 4. CRUD Operations / Called Services

This method performs **no CRUD operations** and **calls no external services**. It is a pure in-memory factory method that creates and populates an `ArrayList`.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | (none) | — | — | No database or service component calls. This method is a purely in-memory field metadata provider. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | View Bean:KKW22101SFBean | `KKW22101SFBean.getViewBean` (key=`"機器提供サービス契約一覧明細リスト"`) → `KKW22101SF02DBean.listKoumokuIds()` | — (no CRUD endpoints — pure metadata) |

**Notes:**
- `KKW22101SFBean` is the parent view bean that dispatches to this method when processing the data type key `"機器提供サービス契約一覧明細リスト"` (Equipment Provided Service Contract List Details List) at line 4184.
- The call chain routes through the bean's `getViewBean` method which is part of the X33VListedBeanInterface contract.
- This is a Web UI layer method — no screen class name matches the `KKSV*` pattern for this module, as the routing is handled by the Futurity X33 framework.

## 6. Per-Branch Detail Blocks

**Block 1** — [SEQUENTIAL] `(no condition — straight-line execution)` (L504)

> Initialize an empty list and populate it with 7 field labels in display order for the equipment service contract details table.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>()` — Create a new empty ArrayList [Line 505] |
| 2 | SET | `koumokuList.add("宅内機器型式コード")` — Add: Indoor Equipment Type Code [Line 506] |
| 3 | SET | `koumokuList.add("宅内機器型式名")` — Add: Indoor Equipment Type Name [Line 507] |
| 4 | SET | `koumokuList.add("機器割当請求開始年月")` — Add: Equipment Assignment Billing Start Year/Month [Line 508] |
| 5 | SET | `koumokuList.add("機器プラン開始年月日")` — Add: Equipment Plan Start Date [Line 509] |
| 6 | SET | `koumokuList.add("機器提供サービス名")` — Add: Equipment Provided Service Name [Line 510] |
| 7 | SET | `koumokuList.add("スマトリンプレミアムパック有無")` — Add: Smart Link Premium Pack Existence [Line 511] |
| 8 | RETURN | `return koumokuList;` — Return the populated list [Line 512] |

**Block 1.1** — [ADD #1] `(field: taknkiki_model_cd)` (L506)

> The first column label — indoor (premises) equipment type code. Corresponds to the `taknkiki_model_cd` field defined at the top of `KKW22101SF02DBean`.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("宅内機器型式コード")` — Label: Indoor Equipment Type Code |

**Block 1.2** — [ADD #2] `(field: taknkiki_model_nm)` (L507)

> The second column label — indoor equipment model name. Corresponds to the `taknkiki_model_nm` field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("宅内機器型式名")` — Label: Indoor Equipment Type Name |

**Block 1.3** — [ADD #3] `(field: kiki_kap_seiky_sta_ym)` (L508)

> The third column label — equipment assignment billing start date (year/month). Corresponds to the `kiki_kap_seiky_sta_ym` field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("機器割当請求開始年月")` — Label: Equipment Assignment Billing Start Year/Month |

**Block 1.4** — [ADD #4] `(field: kiki_pplan_sta_ym)` (L509)

> The fourth column label — equipment plan start date (year/month/day). Corresponds to the `kiki_pplan_sta_ym` field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("機器プラン開始年月日")` — Label: Equipment Plan Start Date |

**Block 1.5** — [ADD #5] `(field: kiki_tk_svs_mei)` (L510)

> The fifth column label — equipment provided service name. Corresponds to the `kiki_tk_svs_mei` field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("機器提供サービス名")` — Label: Equipment Provided Service Name |

**Block 1.6** — [ADD #6] `(field: smartrink_premium_um)` (L511)

> The sixth and final column label — Smart Link Premium Pack existence flag. Corresponds to the `smartrink_premium_um` field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `koumokuList.add("スマトリンプレミアムパック有無")` — Label: Smart Link Premium Pack Existence |

**Block 1.7** — [RETURN] (L512)

> Return the fully populated list of 7 field labels to the caller.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return koumokuList;` — Return the 7-element ArrayList |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `taknkiki_model_cd` | Field | Indoor (premises) equipment type code — internal classification code for customer premises equipment models |
| `taknkiki_model_nm` | Field | Indoor equipment type name — human-readable model name of the customer premises equipment |
| `kiki_kap_seiky_sta_ym` | Field | Equipment assignment billing start year/month — the start date (year-month format) when billing for assigned equipment begins |
| `kiki_pplan_sta_ym` | Field | Equipment plan start year/month — the start date (year-month format) when the equipment plan takes effect |
| `kiki_tk_svs_mei` | Field | Equipment provided service name — the name of the telecom service provided with the equipment |
| `smartrink_premium_um` | Field | Smart Link Premium Pack existence — a flag indicating whether the customer has subscribed to the Smart Link Premium Pack add-on service |
| 宅内機器型式コード | Japanese field | Indoor Equipment Type Code — identifier for the type/model of equipment installed at the customer's premises |
| 宅内機器型式名 | Japanese field | Indoor Equipment Type Name — display name of the installed equipment model |
| 機器割当請求開始年月 | Japanese field | Equipment Assignment Billing Start Year/Month — the billing cycle start date for assigned equipment |
| 機器プラン開始年月日 | Japanese field | Equipment Plan Start Year/Month/Day — the plan activation date for the equipment |
| 機器提供サービス名 | Japanese field | Equipment Provided Service Name — the name of the service provided along with the equipment |
| スマトリンプレミアムパック有無 | Japanese field | Smart Link Premium Pack Existence — indicates whether the premium subscription pack is active (yes/no) |
| KKW22101SF | Module | A screen module in the K-Opticom web management system for equipment service contract management |
| DBean | Technical | Data Type Bean — a Futurity X33 framework class implementing `X33VDataTypeBeanInterface` that defines field metadata (names, types, default values) for UI data type view beans |
| X33VListedBeanInterface | Technical | A Fujitsu Futurity X33 framework interface for list-based view beans that provide structured data for tabular display |
| X33VDataTypeBeanInterface | Technical | A Fujitsu Futurity X33 framework interface that contracts a class to supply typed data field metadata |
| 機器提供サービス契約一覧明細リスト | Japanese business term | Equipment Provided Service Contract List Details List — the name of the data type view item in this module, representing a tabular detail view of equipment service contracts |
| Smart Link Premium Pack | Business term | A premium add-on subscription service offered by K-Opticom, bundled with equipment services |
