# Business Logic — KKW01601SF01DBean.listKoumokuIds() [11 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.KKA15301SF.KKW01601SF01DBean` |
| Layer | Data Type Bean (Webview / View-Model) |
| Module | `KKA15301SF` (Package: `eo.web.webview.KKA15301SF`) |

## 1. Role

### KKW01601SF01DBean.listKoumokuIds()

This method serves as a static factory that returns a predefined, ordered list of Japanese display labels representing the data type bean item identifiers for a **code type** entity. It is part of the webview data-type-bean architecture used by the KKA15301SF module to manage structured data presentation in screen UIs. The Javadoc states "Return the list of item names of the data type bean" (データタイプビーンの項目名のリストを返す). The returned list is consumed by `KKW01601SFBean.listKoumokuIds(String key)` as a lookup target — when a screen passes a key matching one of the data type bean sections (e.g., "Customer Information" / お客様情報, "Corporate Pre/Post Status" / 法人格前後, "Address Information" / 住所情報, "Payment Method" / 支払方法, "Invoice Issuance Requirement" / 請求書発行要否, "Fund Type" / 預金種目, "Card Type" / カード種類, "Forced Window List" / 強制窓口リリスト, "Deposit Payment Method Receipt Division" / 口座支払方法受取区分), this method's output provides the column headers or field labels for the corresponding data table. The method implements a **static factory pattern** — no instance is required, it always returns the same immutable-appearing ordered list. As a shared utility method, it is reused across multiple screen beans in the module, appearing in at least seven caller paths through `KKW01601SFBean.listKoumokuIds(String key)`. The method performs no database access, no parameter validation, and no conditional branching — it is purely a data assembly routine.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["Start: listKoumokuIds()"])
    CREATE["Create ArrayList<String> koumokuList"]
    ADD1["Add \"Code Type Code\"
(コードタイプコード)"]
    ADD2["Add \"Code Type Name\"
(コードタイプ名称)"]
    ADD3["Add \"Select Index\"
(選択インデックス)"]
    ADD4["Add \"Initial Setting Code\"
(初期設定コード)"]
    ADD5["Add \"Code Type Code Value List\"
(コードタイプコード値リスト)"]
    ADD6["Add \"Code Type Name List\"
(コードタイプ名称リスト)"]
    ADD7["Add \"Credit Exchange Code\"
(クレジット交換コード)"]
    RETURN(["Return koumokuList"])

    START --> CREATE
    CREATE --> ADD1
    ADD1 --> ADD2
    ADD2 --> ADD3
    ADD3 --> ADD4
    ADD4 --> ADD5
    ADD5 --> ADD6
    ADD6 --> ADD7
    ADD7 --> RETURN
```

This method follows a **linear sequential processing pattern** with no conditional branches. Each step appends one fixed Japanese display label to the list, preserving the order that determines column presentation in the target screen UI.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| - | (none) | - | This is a static method with no parameters. It returns a predefined, ordered list of data type bean item labels. The calling code determines which subset of these labels to use by passing a `key` parameter to the dispatcher method `KKW01601SFBean.listKoumokuIds(String key)`, which then routes to this method based on the matching data type bean section name. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `ArrayList.add(String)` | - | - | In-memory list population — appends a Japanese display label to the ArrayList. Not a database or service-layer CRUD operation. |

**Note:** This method performs no actual CRUD against a database or service component. It is purely a view-model data assembly method that populates a local `ArrayList<String>` with display labels.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "お客様情報")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 2 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "法人格前後")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 3 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "法人格")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 4 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "住所情報")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 5 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "支払方法")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 6 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "請求書発行要否")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 7 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "預金種目")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 8 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "カード種類")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 9 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "強制窓口リリスト")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |
| 10 | Bean:KKW01601SF01DBean | `KKW01601SFBean.listKoumokuIds(key: "口座支払方法受取区分")` → `KKW01601SF01DBean.listKoumokuIds()` | `ArrayList.add (in-memory)` |

All callers route through the dispatcher method `KKW01601SFBean.listKoumokuIds(String key)`, which evaluates the `key` string via `equals()` against known data type bean section names and delegates to the appropriate DBean's static `listKoumokuIds()` method.

## 6. Per-Branch Detail Blocks

This method has no conditional branches, loops, or nested control flow. It is a linear sequence of seven list insertions followed by a return statement.

**Block 1** — [SET] `(local variable creation)` (L605)

> Create the mutable ArrayList container for the result.

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

**Block 2** — [EXEC] `(append fixed display labels)` (L606–L612)

> Add seven Japanese display label strings to the list in the order they will appear in the target screen UI. Each label corresponds to a data type bean field that describes a code-type entity.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `koumokuList.add("コードタイプコード")` // Add: Code Type Code |
| 2 | EXEC | `koumokuList.add("コードタイプ名称")` // Add: Code Type Name |
| 3 | EXEC | `koumokuList.add("選択インデックス")` // Add: Select Index |
| 4 | EXEC | `koumokuList.add("初期設定コード")` // Add: Initial Setting Code |
| 5 | EXEC | `koumokuList.add("コードタイプコード値リスト")` // Add: Code Type Code Value List |
| 6 | EXEC | `koumokuList.add("コードタイプ名称リスト")` // Add: Code Type Name List |
| 7 | EXEC | `koumokuList.add("クレジット交換コード")` // Add: Credit Exchange Code |

**Block 3** — [RETURN] `(return result)` (L613)

> Return the populated list to the caller.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return koumokuList;` // Return the assembled list of item labels |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| コードタイプコード | Field | Code Type Code — internal identifier for a code type entry (e.g., the unique key for a billing cycle type or service category) |
| コードタイプ名称 | Field | Code Type Name — human-readable display name for a code type entry (e.g., "Monthly" or "Annual") |
| 選択インデックス | Field | Select Index — zero-based position index for displaying this item in a selection dropdown or list |
| 初期設定コード | Field | Initial Setting Code — the default or factory-set code value for a data type bean field |
| コードタイプコード値リスト | Field | Code Type Code Value List — list of all possible code values for a given code type (e.g., all valid service types) |
| コードタイプ名称リスト | Field | Code Type Name List — list of human-readable names corresponding to each code value in the code type code value list |
| クレジット交換コード | Field | Credit Exchange Code — code identifier used for credit card or payment credit type conversion/exchange |
| Data Type Bean | Concept | A view-model class that encapsulates the structure (item names, types, keys) of data displayed or edited on a screen. Used to decouple screen UI from database entities. |
| KKW01601SF01DBean | Class | Data type bean cluster for code-type-related screen items in the KKA15301SF module. Provides factory methods for item lists used across multiple screens. |
| KKW01601SFBean | Class | Dispatcher bean that routes `listKoumokuIds(String key)` calls to the appropriate DBean based on the data type bean section key. |
| DBean | Acronym | Data Bean — a view-model bean class holding screen-level data structure definitions |
| 項目名 | Japanese | Koumoku-mei — "Item Name" — the display label or field name used in screen UIs for a data type bean entry |
