---
title: "Business Logic — FUW00114SF01DBean.loadModelData"
file: source/koptWebF/src/eo/web/webview/FUW00114SF/FUW00114SF01DBean.java
lines: 125-157
---

# Business Logic — FUW00114SF01DBean.loadModelData() [33 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW00114SF.FUW00114SF01DBean` |
| Layer | Web View / Data Type Bean (UI layer — implements `X33VDataTypeBeanInterface`) |
| Module | `FUW00114SF` (Package: `eo.web.webview.FUW00114SF`) |

## 1. Role

### FUW00114SF01DBean.loadModelData()

This method is a **data routing and dispatch** mechanism that enables the `FUW00114SF01DBean` to act as a self-contained data type element within the X33 framework's data-driven UI model. The bean implements `X33VDataTypeBeanInterface`, meaning it can be stored inside an `X33VDataTypeList` alongside other data type beans. When the framework needs to render or access a property of this bean during page loading, it invokes `loadModelData(key, subkey)` with a property name (`key`) and a data accessor (`subkey`).

The method dispatches based on the `key` parameter to handle two distinct **data types** within this single bean:

- **"送信先メールアドレス" (Recipient Email Address)** — identified by the item ID `mlad`. Supports accessing the raw mail address value and its validation state.
- **"メールアドレス設定フィールドコード" (Mail Address Setting Field Code)** — identified by the item ID `mlad_set_field_cd`. Supports accessing the field code value and its validation state.

For each data type, the `subkey` determines whether to return the **value** (via `equalsIgnoreCase("value")`) or the **state** (via `equalsIgnoreCase("state")`). The state field typically holds validation status information (e.g., whether the data is valid, has errors, or requires display warnings).

If neither the key nor subkey matches any known combination, the method returns `null` to signal that the requested data property is not available. This method is called by many other data beans (e.g., in `FUW00114SFBean.java`) when building dropdown/select lists (`getJsflist_typelist_*` methods) that iterate over a list of data type beans and extract specific property values.

This method has **no CRUD operations** — it is purely a **data retrieval** method that reads from the bean's internal fields. It does not call any service components (SC) or business logic beyond the bean's own getter methods.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData key, subkey"])
    CHECK_NULL["key or subkey is null"]
    RETURN_NULL1(["return null"])

    CHECK_EMAIL["key equals 送信先メールアドレス<br>Recipient Email Address"]
    CHECK_EMAIL_STATE["subkey equals state"]
    GET_EMAIL_STATE["getMlad_state"]
    GET_EMAIL_VALUE["getMlad_value"]

    CHECK_FIELD["key equals メールアドレス設定フィールドコード<br>Mail Address Setting Field Code"]
    CHECK_FIELD_STATE["subkey equals state"]
    GET_FIELD_STATE["getMlad_set_field_cd_state"]
    GET_FIELD_VALUE["getMlad_set_field_cd_value"]

    RETURN_NULL2(["return null"])

    START --> CHECK_NULL
    CHECK_NULL -->|true| RETURN_NULL1
    CHECK_NULL -->|false| CHECK_EMAIL

    CHECK_EMAIL -->|true| CHECK_EMAIL_STATE
    CHECK_EMAIL_STATE -->|true| GET_EMAIL_STATE
    CHECK_EMAIL_STATE -->|false| GET_EMAIL_VALUE

    CHECK_EMAIL -->|false| CHECK_FIELD
    CHECK_FIELD -->|true| CHECK_FIELD_STATE
    CHECK_FIELD_STATE -->|true| GET_FIELD_STATE
    CHECK_FIELD_STATE -->|false| GET_FIELD_VALUE
    CHECK_FIELD -->|false| RETURN_NULL2
```

**Processing flow description:**

1. **Null guard**: If either `key` or `subkey` is `null`, return `null` immediately (defensive programming — prevents NPE when the framework passes incomplete parameter data).
2. **Recipient Email Address branch**: If `key` equals `"送信先メールアドレス"` (Recipient Email Address), dispatch to either `getMlad_value()` (for the actual email address) or `getMlad_state()` (for the validation state), depending on `subkey`.
3. **Field Code branch**: If `key` equals `"メールアドレス設定フィールドコード"` (Mail Address Setting Field Code), dispatch to either `getMlad_set_field_cd_value()` (for the field code) or `getMlad_set_field_cd_state()` (for the validation state).
4. **Default fallback**: If `key` matches neither known data type, return `null`.

Note: The unused variable `separaterPoint = key.indexOf("/")` (line 132) is a **dead code** artifact — it is computed but never used. This may have been a vestige of a planned feature to support hierarchical keys (e.g., `"mlad/subkey"` format) that was never implemented.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The **business data type identifier** — determines which set of fields within this bean should be accessed. Can take two known values: `"送信先メールアドレス"` (Recipient Email Address, item ID: `mlad`) to access email address data, or `"メールアドレス設定フィールドコード"` (Mail Address Setting Field Code, item ID: `mlad_set_field_cd`) to access field configuration code data. Any other value results in `null` being returned. |
| 2 | `subkey` | `String` | The **accessor type** that determines what aspect of the identified data should be returned. Case-insensitive comparison against `"value"` (returns the actual data) or `"state"` (returns the validation/state indicator). If the key matches but subkey does not match either, falls through to the next branch or returns `null`. |

**Instance fields read by this method:**

| Field | Type | Business Meaning |
|-------|------|------------------|
| `mlad_value` | `String` | The raw recipient mail address data value (default: `""`) |
| `mlad_state` | `String` | Validation/display state for the recipient mail address |
| `mlad_set_field_cd_value` | `String` | The mail address setting field code value (default: `""`) |
| `mlad_set_field_cd_state` | `String` | Validation/display state for the mail address setting field code |

**Unused internal field (dead variable):**

| Field | Type | Note |
|-------|------|------|
| `separaterPoint` | `int` | Local variable set to `key.indexOf("/")` on line 132 but **never read** — dead code |

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis graph:

No service components (SC) or database operations are called by this method. All data access is via the bean's own getter methods that read from instance fields.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `FUW00114SF01DBean.getMlad_value` | - | - (instance field) | Reads the `mlad_value` instance field — the recipient mail address data |
| R | `FUW00114SF01DBean.getMlad_state` | - | - (instance field) | Reads the `mlad_state` instance field — validation state of the recipient mail address |
| R | `FUW00114SF01DBean.getMlad_set_field_cd_value` | - | - (instance field) | Reads the `mlad_set_field_cd_value` instance field — the field code configuration value |
| R | `FUW00114SF01DBean.getMlad_set_field_cd_state` | - | - (instance field) | Reads the `mlad_set_field_cd_state` instance field — validation state of the field code |

**Classification rationale:**

- All four operations are **Read (R)** — they are simple getter method invocations on the bean's own protected instance fields.
- No SC (Service Component) code is involved — this bean is a **UI data carrier** that delegates data loading to the framework via `loadModelData()`.
- No Entity or DB tables are accessed — data was previously loaded into these fields by the X33 framework's data binding layer or by the calling business logic during bean population.

## 5. Dependency Trace

The following callers reference `loadModelData` within the `FUW00114SF` module and related modules. All callers use it through the `X33VDataTypeBeanInterface` to extract property values from data type beans stored in lists.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_cust_mlad_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 2 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_cust_htk_moji_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 3 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_cust_mail_dtl_cd_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 4 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_cust_mail_header_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 5 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_svc_kei_seiky_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 6 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_use_bmp_list_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 7 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_tv_stb_info_list_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 8 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_kojin_mail_jusin_settei_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 9 | Screen: (via FUW00114SFBean) | `FUW00114SFBean.getJsflist_typelist_hojin_mail_jusin_settei_list` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 10 | Screen: (via FUW00912SFBean) | `FUW00912SFBean` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 11 | Screen: (via FUW00926SFBean) | `FUW00926SFBean` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 12 | Screen: (via FUW00959SFBean) | `FUW00959SFBean` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 13 | Screen: (via FUW00964SFBean) | `FUW00964SFBean` → `(X33VDataTypeBeanInterface).loadModelData` | `getMlad_value [R] instance field` |
| 14 | Screen: (via FUW00912SF01DBean) | `FUW00912SF01DBean.loadModelData` → delegates with subkey | `getMlad_value [R] instance field` |
| 15 | Screen: (via FUW00926SF01DBean) | `FUW00926SF01DBean.loadModelData` → delegates with subkey | `getMlad_value [R] instance field` |

**Caller summary:**

- **Primary callers** are `getJsflist_typelist_*` methods in `FUW00114SFBean.java`, which build `SelectItem` dropdown lists by iterating over `X33VDataTypeList` collections of data type beans.
- **Cross-module callers** in `FUW00912SF`, `FUW00926SF`, `FUW00959SF`, and `FUW00964SF` also call `loadModelData` on their respective data type beans, following the same pattern.
- The method is invoked via the **`X33VDataTypeBeanInterface`** — the caller does not know the concrete bean type, only that it conforms to this interface.

## 6. Per-Branch Detail Blocks

**Block 1** — [IF] `key == null || subkey == null` (L128-130)

> Null guard: if either parameter is null, return null immediately to prevent NullPointerException.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `key == null || subkey == null` // null check on both parameters |
| 2 | RETURN | `return null;` // Return null if either parameter is null (key,subkeyがnullの場合、nullを返す) |

---

**Block 2** — [IF-ELSE IF] key-based dispatch (L132-157)

> Dispatches to the appropriate data type branch based on the `key` parameter value. First computes an unused separator index, then branches on two known Japanese string keys.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` // Dead code — computed but never used (unused variable) |

**Block 2.1** — [IF] `key.equals("送信先メールアドレス")` `[送信先メールアドレス = "Recipient Email Address"]` (L135)

> First data type branch: handles the **Recipient Mail Address** data type (item ID: `mlad`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `"送信先メールアドレス"` // Key literal — business label for the mail address data type (item ID: mlad) |

**Block 2.1.1** — [IF] `subkey.equalsIgnoreCase("value")` (L136-138)

> Returns the actual recipient mail address value.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `subkey.equalsIgnoreCase("value")` // Case-insensitive check for value accessor |
| 2 | CALL | `return getMlad_value();` // Return the mail address data stored in `mlad_value` field |

**Block 2.1.2** — [ELSE IF] `subkey.equalsIgnoreCase("state")` `[subkey = "state"]` (L139-141)

> Returns the validation/display state for the recipient mail address.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `subkey.equalsIgnoreCase("state")` // Case-insensitive check for state accessor |
| 2 | CALL | `return getMlad_state();` // Return the validation state stored in `mlad_state` field |
| 3 | COMMENT | `// subkeyが"state"の場合、ステータスを返す` (If subkey is "state", returns the status) |

**Block 2.2** — [ELSE IF] `key.equals("メールアドレス設定フィールドコード")` `[メールアドレス設定フィールドコード = "Mail Address Setting Field Code"]` (L144)

> Second data type branch: handles the **Mail Address Setting Field Code** data type (item ID: `mlad_set_field_cd`).

| # | Type | Code |
|---|------|------|
| 1 | SET | `"メールアドレス設定フィールドコード"` // Key literal — business label for the field code data type (item ID: mlad_set_field_cd) |

**Block 2.2.1** — [IF] `subkey.equalsIgnoreCase("value")` (L145-147)

> Returns the actual field code value for mail address settings.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `subkey.equalsIgnoreCase("value")` // Case-insensitive check for value accessor |
| 2 | CALL | `return getMlad_set_field_cd_value();` // Return the field code data stored in `mlad_set_field_cd_value` field |

**Block 2.2.2** — [ELSE IF] `subkey.equalsIgnoreCase("state")` `[subkey = "state"]` (L148-150)

> Returns the validation/display state for the mail address setting field code.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `subkey.equalsIgnoreCase("state")` // Case-insensitive check for state accessor |
| 2 | CALL | `return getMlad_set_field_cd_state();` // Return the validation state stored in `mlad_set_field_cd_state` field |
| 3 | COMMENT | `// subkeyが"state"の場合、ステータスを返す` (If subkey is "state", returns the status) |

**Block 2.3** — [ELSE / FALLTHROUGH] No matching key (L153-155)

> Default fallback: no known data type matched, return null.

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// 条件に合致するプロパティが存在しない場合、nullを返す` (If no matching property exists, return null) |
| 2 | RETURN | `return null;` // Default return for unmatched key values |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mlad` | Item ID / Acronym | Mail Address — internal identifier for the recipient mail address data type field |
| `mlad_set_field_cd` | Item ID / Acronym | Mail Address Setting Field Code — internal identifier for the field code configuration data type field |
| `送信先メールアドレス` | Japanese Field | Recipient Email Address — the business label for the mail address data type; identifies the primary email field |
| `メールアドレス設定フィールドコード` | Japanese Field | Mail Address Setting Field Code — the business label for the field code configuration; identifies configuration metadata about the mail address field |
| `state` | Parameter Value | Validation/display state — indicates whether the data has passed validation, has errors, or needs special display treatment (e.g., red highlighting) |
| `value` | Parameter Value | The actual data value — the raw data content (e.g., the email address string, or the field code string) |
| X33VDataTypeBeanInterface | Interface | X33 Framework data type bean interface — defines the contract for beans that hold typed data values within a data-driven UI framework |
| X33VListedBeanInterface | Interface | X33 Framework listed bean interface — defines the contract for beans that can be included in listed data containers |
| SelectItem | Class | JSF select item wrapper — used by dropdown list methods to create option items with value/display pairs |
| X33VDataTypeList | Class | X33 Framework typed list — a list container holding data type bean instances that can be queried via `loadModelData` |
| FUW00114SF | Module Code | Screen/module identifier — the specific web screen module handling mail address management in the K-Opticom platform |
| `cust_mlad_list_list` | Instance Field | Customer Mail Address List List — a list of customer mail address data type beans used in dropdown select generation |
