# Business Logic — KKW00130SF02DBean.listKoumokuIds() [31 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKW00130SF.KKW00130SF02DBean` |
| Layer | Controller (Web View Bean in `eo.web.webview` package) |
| Module | `KKW00130SF` (Package: `eo.web.webview.KKW00130SF`) |

## 1. Role

### KKW00130SF02DBean.listKoumokuIds()

This method acts as a **metadata provider** for the service contract detail inquiry screen (`KKW00130SF02`). It returns a fixed, ordered list of display labels (Japanese UI strings) representing the columns or fields that appear on the inquiry result screen for service contract information. Each string corresponds to a data item the user can view — including phone number, contract status, service start/end dates, portability flags, fee codes, and device-related fields. The method implements the **registry/builder pattern**: it constructs a static ArrayList of item labels, serving as a parallel schema to the screen's data model. The order of entries matters because it likely drives column header rendering on the web UI, ensuring consistency between displayed data and field names.

The list has been incrementally extended over time through change requests (OT-2013-0000311, ANK-1857-00-00, ANK-2288-00-00), reflecting evolving business requirements — most notably the addition of display-oriented contract status fields, home device provisioning metadata, and number portability cancellation control codes. Commented-out entries for forwarding token dates indicate planned but un-deployed features. The method has no conditional logic — it is a pure data provider with no branching — making it a stable, deterministic endpoint for the screen's presentation layer.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    START --> INIT["Initialize ArrayList<String> koumokuList"]
    INIT --> A1["Add '電話番号' (Phone Number)"]
    A1 --> A2["Add '番ポ' (Number Portability)"]
    A2 --> A3["Add '契約状態' (Contract Status)"]
    A3 --> A4["Add 'サービス開始年月日' (Service Start Date)"]
    A4 --> A5["Add 'サービス終了年月日' (Service End Date)"]
    A5 --> A6["Add 'ＶＡ型式' (VA Model)"]
    A6 --> A7["Add 'ポート番号' (Port Number)"]
    A7 --> A8["Add '番号案内' (Number Guide)"]
    A8 --> A9["Add 'トーキ有無' (Token Presence)"]
    A9 --> C1["Skip: '移転トーキ開始年月日' (Commented)"]
    C1 --> C2["Skip: '移転トーキ終了年月日' (Commented)"]
    A9 --> A10["Add 'サービス契約内訳番号' (Service Contract Content No.)"]
    A10 --> A11["Add 'サービス契約内訳ステータス' (Service Contract Content Status)"]
    A11 --> A12["Add '申込明細番号' (Application Detail No.)"]
    A12 --> A13["Add '料金コースコード' (Fee Course Code)"]
    A13 --> A14["Add '料金プランコード' (Fee Plan Code)"]
    A14 --> ADD1["OT-2013-0000311: Add '表示用サービス契約内訳ステータス' (Display Contract Status)"]
    ADD1 --> ADD2["OT-2013-0000311: Add '表示用サービス契約内訳ステータス名称' (Display Contract Status Name)"]
    ADD2 --> ANK1["ANK-1857-00-00: Add '宅内機器種別コード' (Home Device Type Code)"]
    ANK1 --> ANK2["ANK-1857-00-00: Add '機器提供サービス名' (Device Provision Service Name)"]
    ANK2 --> ANK3["ANK-2288-00-00: Add '番ポ廃止依存制御コード' (Famapo Cancellation Control Code)"]
    ANK3 --> END_RETURN["Return koumokuList"]
    END_RETURN --> END(["End"])
```

**Processing Description:** The method executes a linear, unconditional sequence of `ArrayList.add()` calls. Each invocation appends a Japanese display label string to the list. There are no conditionals, no loops, and no external method calls. The two commented-out entries (forwarding token start/end dates) are preserved as documentation of planned features that were never activated. The list contains exactly 18 active entries (after uncommented additions) plus 2 commented entries that remain as documentation.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This method takes no parameters. It is a pure factory/provider method that returns a fixed schema of display labels. |
| 1 | (instance state) | N/A | N/A — This method does not read any instance fields. It operates entirely on a local variable and has no side effects. |

## 4. CRUD Operations / Called Services

This method performs **no database operations, no service component calls, and no I/O**. It is a pure in-memory factory that constructs and returns a list of display labels. Therefore, no CRUD table operations exist.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | (none) | — | — | This method contains no data access. It builds and returns a list of UI column labels. |

**Method Call Analysis:** The only method invoked is `ArrayList.add(String)` on the local `koumokuList` instance, which is a standard Java collection operation — not a business service call.

## 5. Dependency Trace

No callers were found in the codebase that reference `listKoumokuIds()`. The method is likely referenced through the Futurity X33 framework's dynamic invocation mechanism (e.g., via method name strings in JSF view definitions, configuration files, or framework introspection), rather than direct Java method references. This is consistent with the bean implementing `X33VDataTypeBeanInterface`, which allows the framework to discover and invoke methods at runtime based on screen metadata.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKW00130SF (inferred) | Framework introspection -> `KKW00130SF02DBean.listKoumokuIds()` | (none — metadata provider) |

## 6. Per-Branch Detail Blocks

### Block 1 — [LIST BUILD] Initialization `(L1305)`

> Initialize the ArrayList that will hold the display labels for the service contract detail inquiry screen.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>()` |

### Block 2 — [APPEND] Core Phone Service Fields `(L1306-L1315)`

> Add the primary phone number and service contract fields that form the base of the inquiry screen display.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("電話番号")` — Add "Phone Number" [-> Field label for subscriber's phone number] |
| 2 | EXEC | `koumokuList.add("番ポ")` — Add "Number Portability" [-> Field label for number portability status] |
| 3 | EXEC | `koumokuList.add("契約状態")` — Add "Contract Status" [-> Field label for current contract state] |
| 4 | EXEC | `koumokuList.add("サービス開始年月日")` — Add "Service Start Date" [-> Field label for service activation date] |
| 5 | EXEC | `koumokuList.add("サービス終了年月日")` — Add "Service End Date" [-> Field label for service termination date] |
| 6 | EXEC | `koumokuList.add("ＶＡ型式")` — Add "VA Model" [-> Field label for Value Added service model type] |
| 7 | EXEC | `koumokuList.add("ポート番号")` — Add "Port Number" [-> Field label for network port number] |
| 8 | EXEC | `koumokuList.add("番号案内")` — Add "Number Guide" [-> Field label for number information/guide status] |
| 9 | EXEC | `koumokuList.add("トーキ有無")` — Add "Token Presence" [-> Field label indicating whether a token is assigned] |

### Block 3 — [COMMENTED OUT] Forwarding Token Fields `(L1316-L1317)`

> Two lines are commented out, representing planned features for forwarding token start/end dates that were never activated. These remain as documentation of the original design intent.

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// koumokuList.add("移転トーキ開始年月日")` — Skip "Forwarding Token Start Date" |
| 2 | COMMENT | `// koumokuList.add("移転トーキ終了年月日")` — Skip "Forwarding Token End Date" |

### Block 4 — [APPEND] Service Contract Metadata `(L1318-L1321)`

> Add fields related to the service contract's internal reference numbers, status, and pricing codes.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("サービス契約内訳番号")` — Add "Service Contract Content No." |
| 2 | EXEC | `koumokuList.add("サービス契約内訳ステータス")` — Add "Service Contract Content Status" |
| 3 | EXEC | `koumokuList.add("申込明細番号")` — Add "Application Detail No." |
| 4 | EXEC | `koumokuList.add("料金コースコード")` — Add "Fee Course Code" |
| 5 | EXEC | `koumokuList.add("料金プランコード")` — Add "Fee Plan Code" |

### Block 5 — [APPEND] OT-2013-0000311: Display Contract Status `(L1322-L1323)`

> Change request OT-2013-0000311 added two display-oriented fields for service contract content status. These fields are likely used for screen rendering rather than data storage, providing human-readable status labels.

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// 20130326 OT-2013-0000311 ADD START` |
| 2 | EXEC | `koumokuList.add("表示用サービス契約内訳ステータス")` — Add "Display Service Contract Content Status" |
| 3 | EXEC | `koumokuList.add("表示用サービス契約内訳ステータス名称")` — Add "Display Service Contract Content Status Name" |
| 4 | COMMENT | `// 20130326 OT-2013-0000311 ADD END` |

### Block 6 — [APPEND] ANK-1857-00-00: Home Device Information `(L1324-L1327)`

> Change request ANK-1857-00-00 added fields for home device type codes and device provisioning service names, reflecting K-Opticom's equipment provision business (e.g., modems, routers supplied to subscribers).

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// ANK-1857-00-00 ADD START` |
| 2 | EXEC | `koumokuList.add("宅内機器種別コード")` — Add "Home Device Type Code" |
| 3 | EXEC | `koumokuList.add("機器提供サービス名")` — Add "Device Provision Service Name" |
| 4 | COMMENT | `// ANK-1857-00-00 ADD END` |

### Block 7 — [APPEND] ANK-2288-00-00: Number Portability Cancellation Control `(L1328-L1329)`

> Change request ANK-2288-00-00 added a field for number portability cancellation dependency control codes. This supports business logic for handling number portability requests and their cancellation/stop processing. "番ポ" (Famapo) is K-Opticom's shorthand for number portability.

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// 20150313 ANK-2288-00-00 番ポ戻り判定フラグ対応 ADD START` — "Number Portability Return Judgment Flag Support" |
| 2 | EXEC | `koumokuList.add("番ポ廉止依頼制御コード")` — Add "Number Portability Cancellation Dependency Control Code" |
| 3 | COMMENT | `// 20150313 ANK-2288-00-00 番ポ戻り判定フラグ対応 ADD END` |

### Block 8 — [RETURN] Return the List `(L1330)`

> Return the completed list of 18 display labels to the caller. The order is significant and drives the column layout of the inquiry screen.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return koumokuList` — Returns ArrayList containing 18 Japanese UI labels in screen display order |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `koumoku` | Field | Items / fields — used as the variable name for the list of display column labels |
| 電話番号 (Denwa Bangou) | Japanese Label | Phone Number — the subscriber's telephone number |
| 番ポ (Famapo) | Business Term | Number Portability — short for "番号ポータビリティ" (number portability), allowing customers to keep their number when switching carriers. "Famapo" is K-Opticom's internal shorthand. |
| 契約状態 (Keiyaku Joutai) | Japanese Label | Contract Status — current state of the service contract (active, suspended, terminated, etc.) |
| サービス開始年月日 (Saabisu Kaishi Nenngetsuhi) | Japanese Label | Service Start Date — the date when the service was activated for the customer |
| サービス終了年月日 (Saabisu Shuryou Nenngetsuhi) | Japanese Label | Service End Date — the date when the service was terminated |
| VA型式 (VA Garata) | Japanese Label | VA Model — Value-Added service model type, indicating the variant of a value-added service |
| ポート番号 (Porto Bangou) | Japanese Label | Port Number — network port number |
| 番号案内 (Bangou Annai) | Japanese Label | Number Guide — information about whether the number is provided/guided to the customer |
| トーク有無 (Token Yuubu) | Japanese Label | Token Presence — indicates whether a token has been assigned (yes/no) |
| 転送トーク (Tenkou Tokou) | Japanese Label | Forwarding Token — token used for call forwarding functionality (commented out, never deployed) |
| サービス契約内容番号 (Saabisu Keiyaku Naiyou Bangou) | Japanese Label | Service Contract Content No. — internal reference number for the service contract line item |
| サービス契約内容ステータス (Saabisu Keiyaku Naiyou Sutatusu) | Japanese Label | Service Contract Content Status — status of the service contract content |
| 申込明細番号 (MouShou MeiSao Bangou) | Japanese Label | Application Detail No. — reference number for the application detail record |
| 料金コースコード (Ryoukin Koosu Code) | Japanese Label | Fee Course Code — code identifying the pricing tier/course |
| 料金プランコード (Ryoukin Puran Code) | Japanese Label | Fee Plan Code — code identifying the specific billing plan |
| 表示用サービス契約内容ステータス (Hyoujiyou Saabisu Keiyaku Naiyou Sutatusu) | Japanese Label | Display Service Contract Content Status — UI-specific status label for screen rendering (added by OT-2013-0000311) |
| 表示用サービス契約内容ステータス名称 (Hyoujiyou Saabisu Keiyaku Naiyou Sutatusu Meishou) | Japanese Label | Display Service Contract Content Status Name — human-readable name of the display status (added by OT-2013-0000311) |
| 自宅機器種類コード (Jitaku Kiki Shurui Code) | Japanese Label | Home Device Type Code — code for the type of customer premises equipment (added by ANK-1857-00-00) |
| 機器提供サービス名 (Kiki Teikyou Saabisu Me) | Japanese Label | Device Provision Service Name — name of the service that provides customer premises equipment (added by ANK-1857-00-00) |
| 番ポ廃止依存制御コード (Famapo Haiji Iizon Seisei Code) | Japanese Label | Number Portability Cancellation Dependency Control Code — controls processing of number portability cancellation requests (added by ANK-2288-00-00) |
| KKW00130SF | Module | Service contract detail inquiry screen module (KKW = K-Opticom Web) |
| DBean | Pattern | Data Bean — a bean class holding data for a screen, implementing X33VDataTypeBeanInterface for the Futurity X33 framework |
| Futurity X33 | Technology | Fujitsu's web application framework (Fujitsu Unified Toolkit for Rapidity) used for building JSF-based web screens |
| OT-2013-0000311 | Change Request | Change request identifier — added display contract status fields in March 2013 |
| ANK-1857-00-00 | Change Request | Change request identifier — added home device type and provision service name fields |
| ANK-2288-00-00 | Change Request | Change request identifier — added number portability cancellation control code field in March 2015 |
| FTTH | Business Term | Fiber To The Home — fiber-optic broadband internet service (K-Opticom's core product) |
