# Business Logic — FUW00116SF03DBean.listKoumokuIds() [6 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW00116SF.FUW00116SF03DBean` |
| Layer | Utility / Data Type Bean (Inferred from package `eo.web.webview` — static factory serving the webview tier) |
| Module | `FUW00116SF` (Package: `eo.web.webview.FUW00116SF`) |

## 1. Role

### FUW00116SF03DBean.listKoumokuIds()

This method is a static factory that provides the list of item names (field identifiers) belonging to the **Data Type Bean** `FUW00116SF03DBean`. In this enterprise architecture, a Data Type Bean defines the schema of a specific data surface presented to the UI — it declares which fields exist and what types they carry. The `listKoumokuIds()` method enumerates those field names, returning a pre-built `ArrayList<String>` containing two entries: **「メール明細コード」** (Mail Detail Code) and **「明文非定型置換文字」** (Plaintext Flexible Replacement Character). These correspond to the data surface for the customer-facing **"Customer Mail Detail List"** view (`FUW00116SF` module), which displays mail detail records with their associated replacement-character metadata.

The method implements a **static factory pattern** — it requires no instantiation and returns a fresh, independent list on every call. It acts as a shared utility consumed by the parent bean `FUW00116SFBean`, which routes incoming key-based lookups to the correct Data Type Bean. Its role in the larger system is to define the **column schema** for the Customer Mail Detail List screen, enabling the UI layer to dynamically render table headers, validate input fields, and perform type-aware data binding without hardcoding field names.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["listKoumokuIds()"])
    STEP1["Create new ArrayList<String>"]
    STEP2["Add \"メール明細コード\" (Mail Detail Code) to list"]
    STEP3["Add \"明文非定型置換文字\" (Plaintext Flexible Replacement Character) to list"]
    RETURN_NODE["Return koumokuList"]

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> STEP3
    STEP3 --> RETURN_NODE
```

This method has a purely sequential, linear flow with no conditional branches, loops, or external service calls. It constructs a list by instantiating a new `ArrayList`, appending two pre-defined string constants representing field names, and returning the populated list.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This is a static method with no parameters. It operates purely as a factory, returning a fixed catalog of field names. |

## 4. CRUD Operations / Called Services

This method performs no database operations, no service component calls, and no data persistence. It is a pure data factory that constructs an in-memory list of strings.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | (none) | — | — | No CRUD operations. Pure factory method returning a static field catalog. |

## 5. Dependency Trace

This method is called by the parent Data Type Bean dispatcher `FUW00116SFBean.listKoumokuIds(String key)`, which routes based on the requested data surface key.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Bean: FUW00116SFBean | `FUW00116SFBean.listKoumokuIds(String key)` → `FUW00116SF03DBean.listKoumokuIds()` (when key = "お客様向けメール明細一覧リスト") | (none — pure in-memory factory) |

**Caller context:** The key `"お客様向けメール明細一覧リスト"` translates to "Customer Mail Detail List" and identifies the data surface for displaying customer mail detail records.

## 6. Per-Branch Detail Blocks

> This method contains no conditional branches, loops, or exception handling. The entire method is a single linear block.

**Block 1** — [LINEAR EXECUTION] `(no condition)` (L227)

> Factory method body: constructs and populates the field name list.

| # | Type | Code |
|---|------|------|
| 1 | SET | `ArrayList<String> koumokuList = new ArrayList<String>();` // Instantiate a fresh ArrayList for the field catalog |
| 2 | SET | `koumokuList.add("メール明細コード");` // Add Mail Detail Code (field identifier 1) [-> "メール明細コード" (Mail Detail Code)] |
| 3 | SET | `koumokuList.add("明文非定型置換文字");` // Add Plaintext Flexible Replacement Character (field identifier 2) [-> "明文非定型置換文字" (Plaintext Flexible Replacement Character)] |
| 4 | RETURN | `return koumokuList;` // Return the populated list |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `koumokuList` | Field | Item name list — the ArrayList of field identifiers returned by this method |
| データタイプビーン (Data Type Bean) | Concept | A Java class that defines the schema (field names and types) for a specific UI data surface. Used by the parent `*SFBean` to route field metadata lookups. |
| メール明細コード (Mail Detail Code) | Field | The identifier/code for a customer mail detail record — represents the structured metadata about a mail message sent to a customer |
| 明文非定型置換文字 (Plaintext Flexible Replacement Character) | Field | A replacement character used in plaintext (non-structured) mail content — allows dynamic substitution of variable content in unstructured mail text |
| お客様向けメール明細一覧リスト (Customer Mail Detail List) | Business term | The data surface/key name for the screen that displays a list of customer mail detail records |
| FUW00116SF | Module | The webview module responsible for customer mail detail list functionality |
