# Business Logic - KKW00130SF02DBean.loadModelData() [277 LOC]

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

## 1. Role

### KKW00130SF02DBean.loadModelData()

This method serves as a **data routing and retrieval bridge** between the web view layer and the underlying bean data model for the KKW00130SF (service contract detail inquiry) screen. It accepts a Japanese-language item name (`key`) such as "Telno" (Phone Number) and a `subkey` such as "value", "enable", or "state", and routes the request to the appropriate getter method that returns the corresponding field value, editable flag, or validation state.

The method implements a **lookup-dispatch pattern** - it acts as a centralized data access point so that JSP views and tag libraries can request any field on this bean using a simple string-based key rather than a typed method call. This is a common pattern in enterprise Japanese telecom systems where views are generated dynamically and need a single unified interface to the data model.

The method handles 16 distinct data types: phone number, banner placement, contract status, service start/end dates, VA model type, port number, number guidance, Toky (telephone service availability) presence, service contract item numbers, service contract item status, application detail numbers, fee codes, fee plan codes, display-only service contract item status, display-only service contract item status name, domestic equipment type code, and equipment provision service name. Each type supports 2-3 subkey properties. One special type - banner deregistration request control code - supports hierarchical indexed access to a list of reusable data types, allowing the same data model to be applied across multiple banner deregistration items.

The method is called by `getJsflist_typelist_bmp_haishi_req_ctrl_cd()` to build dropdown select lists for banner control items, and is referenced in the class-level load cycle for bean initialization.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["loadModelData(key, subkey)"])

    START --> CHECK_NULL["key == null || subkey == null"]
    CHECK_NULL -->|Yes| RETURN_NULL1["return null"]
    CHECK_NULL -->|No| SEPARATOR["separaterPoint = key.indexOf('/')"]

    SEPARATOR --> TELNO["key.equals('Telno')"]
    TELNO -->|Yes| TELNO_SUB["subkey check"]
    TELNO_SUB -->|value| GET_TELNO_VAL["return getRslt_telno_value()"]
    TELNO_SUB -->|enable| GET_TELNO_ENA["return getRslt_telno_enabled()"]
    TELNO_SUB -->|state| GET_TELNO_ST["return getRslt_telno_state()"]
    TELNO -->|No| BMP["key.equals('BMP')"]

    BMP -->|Yes| BMP_SUB["subkey check"]
    BMP_SUB -->|value| GET_BMP_VAL["return getRslt_bmp_value()"]
    BMP_SUB -->|enable| GET_BMP_ENA["return getRslt_bmp_enabled()"]
    BMP_SUB -->|state| GET_BMP_ST["return getRslt_bmp_state()"]
    BMP -->|No| KEISTAT["key.equals('KeiStat')"]

    KEISTAT -->|Yes| KEISTAT_SUB["subkey check"]
    KEISTAT_SUB -->|value| GET_KEIS_VAL["return getRslt_kei_stat_value()"]
    KEISTAT_SUB -->|enable| GET_KEIS_ENA["return getRslt_kei_stat_enabled()"]
    KEISTAT_SUB -->|state| GET_KEIS_ST["return getRslt_kei_stat_state()"]
    KEISTAT -->|No| SVCDATE["key.equals('SvcStaymd')"]

    SVCDATE -->|Yes| SVCDATE_SUB["subkey check"]
    SVCDATE_SUB -->|value| GET_SVCST_VAL["return getRslt_svc_staymd_value()"]
    SVCDATE_SUB -->|enable| GET_SVCST_ENA["return getRslt_svc_staymd_enabled()"]
    SVCDATE_SUB -->|state| GET_SVCST_ST["return getRslt_svc_staymd_state()"]
    SVCDATE -->|No| SVCENDDATE["key.equals('SvcEndYmd')"]

    SVCENDDATE -->|Yes| SVCENDDATE_SUB["subkey check"]
    SVCENDDATE_SUB -->|value| GET_SVCEND_VAL["return getRslt_svc_endymd_value()"]
    SVCENDDATE_SUB -->|enable| GET_SVCEND_ENA["return getRslt_svc_endymd_enabled()"]
    SVCENDDATE_SUB -->|state| GET_SVCEND_ST["return getRslt_svc_endymd_state()"]
    SVCENDDATE -->|No| VAMODEL["key.equals('VA Model')"]

    VAMODEL -->|Yes| VAMODEL_SUB["subkey check"]
    VAMODEL_SUB -->|value| GET_VA_VAL["return getRslt_va_model_value()"]
    VAMODEL_SUB -->|enable| GET_VA_ENA["return getRslt_va_model_enabled()"]
    VAMODEL_SUB -->|state| GET_VA_ST["return getRslt_va_model_state()"]
    VAMODEL -->|No| PORTNO["key.equals('PortNo')"]

    PORTNO -->|Yes| PORTNO_SUB["subkey check"]
    PORTNO_SUB -->|value| GET_PORT_VAL["return getRslt_port_no_value()"]
    PORTNO_SUB -->|enable| GET_PORT_ENA["return getRslt_port_no_enabled()"]
    PORTNO_SUB -->|state| GET_PORT_ST["return getRslt_port_no_state()"]
    PORTNO -->|No| NOGUIDE["key.equals('NoGuide')"]

    NOGUIDE -->|Yes| NOGUIDE_SUB["subkey check"]
    NOGUIDE_SUB -->|value| GET_NOG_VAL["return getRslt_no_guide_value()"]
    NOGUIDE_SUB -->|enable| GET_NOG_ENA["return getRslt_no_guide_enabled()"]
    NOGUIDE_SUB -->|state| GET_NOG_ST["return getRslt_no_guide_state()"]
    NOGUIDE -->|No| TOKI["key.equals('Toki')"]

    TOKI -->|Yes| TOKI_SUB["subkey check"]
    TOKI_SUB -->|value| GET_TOKI_VAL["return getRslt_toki_um_value()"]
    TOKI_SUB -->|enable| GET_TOKI_ENA["return getRslt_toki_um_enabled()"]
    TOKI_SUB -->|state| GET_TOKI_ST["return getRslt_toki_um_state()"]
    TOKI -->|No| SVCKEIKUNO["key.equals('SvcKeiUcwkNo')"]

    SVCKEIKUNO -->|Yes| SVCKEIKUNO_SUB["subkey check"]
    SVCKEIKUNO_SUB -->|value| GET_SVCNO_VAL["return getRslt_svc_kei_ucwk_no_value()"]
    SVCKEIKUNO_SUB -->|state| GET_SVCNO_ST["return getRslt_svc_kei_ucwk_no_state()"]
    SVCKEIKUNO -->|No| SVCSTAT["key.equals('SvcKeiUcwkStat')"]

    SVCSTAT -->|Yes| SVCSTAT_SUB["subkey check"]
    SVCSTAT_SUB -->|value| GET_SVCSTT_VAL["return getRslt_svc_kei_ucwk_stat_value()"]
    SVCSTAT_SUB -->|state| GET_SVCSTT_ST["return getRslt_svc_kei_ucwk_stat_state()"]
    SVCSTAT -->|No| MSKMDTL["key.equals('MskmDtlNo')"]

    MSKMDTL -->|Yes| MSKMDTL_SUB["subkey check"]
    MSKMDTL_SUB -->|value| GET_MSKM_VAL["return getRslt_mskm_dtl_no_value()"]
    MSKMDTL_SUB -->|state| GET_MSKM_ST["return getRslt_mskm_dtl_no_state()"]
    MSKMDTL -->|No| PCRSCD["key.equals('PcrsCd')"]

    PCRSCD -->|Yes| PCRSCD_SUB["subkey check"]
    PCRSCD_SUB -->|value| GET_PCRS_VAL["return getRslt_pcrs_cd_value()"]
    PCRSCD_SUB -->|state| GET_PCRS_ST["return getRslt_pcrs_cd_state()"]
    PCRSCD -->|No| PPLANC["key.equals('PPlanCd')"]

    PPLANC -->|Yes| PPLAN_SUB["subkey check"]
    PPLAN_SUB -->|value| GET_PPLAN_VAL["return getRslt_pplan_cd_value()"]
    PPLAN_SUB -->|state| GET_PPLAN_ST["return getRslt_pplan_cd_state()"]
    PPLAN -->|No| DSPSVCSTAT["key.equals('DspSvcKeiUcwkStat')"]

    DSPSVCSTAT -->|Yes| DSPSTAT_SUB["subkey check"]
    DSPSTAT_SUB -->|value| GET_DSPST_VAL["return getDsp_svc_kei_ucwk_stat_value()"]
    DSPSTAT_SUB -->|state| GET_DSPST_ST["return getDsp_svc_kei_ucwk_stat_state()"]
    DSPSVCSTAT -->|No| DSPSVCNM["key.equals('DspSvcKeiUcwkStatNm')"]

    DSPSVCNM -->|Yes| DSPNM_SUB["subkey check"]
    DSPNM_SUB -->|value| GET_DSPNM_VAL["return getDsp_svc_kei_ucwk_stat_nm_value()"]
    DSPNM_SUB -->|state| GET_DSPNM_ST["return getDsp_svc_kei_ucwk_stat_nm_state()"]
    DSPSVCNM -->|No| TAKNKIKI["key.equals('TaknkikiSbtCd')"]

    TAKNKIKI -->|Yes| TAKNKIKI_SUB["subkey check"]
    TAKNKIKI_SUB -->|value| GET_TAKN_VAL["return getTaknkiki_sbt_cd_value()"]
    TAKNKIKI_SUB -->|state| GET_TAKN_ST["return getTaknkiki_sbt_cd_state()"]
    TAKNKIKI -->|No| KKTKEI["key.equals('KktkSvcNm')"]

    KKTKEI -->|Yes| KKTKEI_SUB["subkey check"]
    KKTKEI_SUB -->|value| GET_KKT_VAL["return getKktk_svc_nm_value()"]
    KKTKEI_SUB -->|state| GET_KKT_ST["return getKktk_svc_nm_state()"]
    KKTKEI -->|No| BMPCTRL["key.equals('BmpHaishiReqCtrlCd')"]

    BMPCTRL -->|Yes| BMP_CTRL["process hierarchical key"]
    BMP_CTRL --> PARSE1["keyRemain = key.substring(separaterPoint + 1)"]
    PARSE1 --> STAR["keyRemain.equals('*')"]
    STAR -->|Yes| RETURN_SIZE["return bmp_haishi_req_ctrl_cd_list.size()"]
    STAR -->|No| FINDSLASH["separaterPoint = keyRemain.indexOf('/')"]
    FINDSLASH --> CHECKSLASH["separaterPoint <= 0"]
    CHECKSLASH -->|Yes| RETURN_NULL2["return null"]
    CHECKSLASH -->|No| PARSEINDEX["key = keyRemain.substring(0, separaterPoint)"]
    PARSEINDEX --> PARSEINT["tmpIndexInt = Integer.valueOf(key)"]
    PARSEINT --> PARSECATCH["catch(NumberFormatException)"]
    PARSECATCH -->|exception| RETURN_NULL3["return null"]
    PARSECATCH -->|success| CHECKINDEX["tmpIndex < 0 || >= bmp_haishi_req_ctrl_cd_list.size()"]
    CHECKINDEX -->|out of range| RETURN_NULL4["return null"]
    CHECKINDEX -->|valid| PARSEKEY2["key = keyRemain.substring(separaterPoint + 1)"]
    PARSEKEY2 --> DELEGATE["delegate to bmp_haishi_req_ctrl_cd_list item loadModelData(key, subkey)"]
    DELEGATE --> RETURN_DELEGATE["return delegated result"]

    BMPCTRL -->|No| RETURN_NULL5["return null"]

    GET_TELNO_VAL --> END_NODE(["End"])
    GET_TELNO_ENA --> END_NODE
    GET_TELNO_ST --> END_NODE
    GET_BMP_VAL --> END_NODE
    GET_BMP_ENA --> END_NODE
    GET_BMP_ST --> END_NODE
    GET_KEIS_VAL --> END_NODE
    GET_KEIS_ENA --> END_NODE
    GET_KEIS_ST --> END_NODE
    GET_SVCST_VAL --> END_NODE
    GET_SVCST_ENA --> END_NODE
    GET_SVCST_ST --> END_NODE
    GET_SVCEND_VAL --> END_NODE
    GET_SVCEND_ENA --> END_NODE
    GET_SVCEND_ST --> END_NODE
    GET_VA_VAL --> END_NODE
    GET_VA_ENA --> END_NODE
    GET_VA_ST --> END_NODE
    GET_PORT_VAL --> END_NODE
    GET_PORT_ENA --> END_NODE
    GET_PORT_ST --> END_NODE
    GET_NOG_VAL --> END_NODE
    GET_NOG_ENA --> END_NODE
    GET_NOG_ST --> END_NODE
    GET_TOKI_VAL --> END_NODE
    GET_TOKI_ENA --> END_NODE
    GET_TOKI_ST --> END_NODE
    GET_SVCNO_VAL --> END_NODE
    GET_SVCNO_ST --> END_NODE
    GET_SVCSTT_VAL --> END_NODE
    GET_SVCSTT_ST --> END_NODE
    GET_MSKM_VAL --> END_NODE
    GET_MSKM_ST --> END_NODE
    GET_PCRS_VAL --> END_NODE
    GET_PCRS_ST --> END_NODE
    GET_PPLAN_VAL --> END_NODE
    GET_PPLAN_ST --> END_NODE
    GET_DSPST_VAL --> END_NODE
    GET_DSPST_ST --> END_NODE
    GET_DSPNM_VAL --> END_NODE
    GET_DSPNM_ST --> END_NODE
    GET_TAKN_VAL --> END_NODE
    GET_TAKN_ST --> END_NODE
    GET_KKT_VAL --> END_NODE
    GET_KKT_ST --> END_NODE
    RETURN_SIZE --> END_NODE
    RETURN_NULL2 --> END_NODE
    RETURN_NULL3 --> END_NODE
    RETURN_NULL4 --> END_NODE
    RETURN_DELEGATE --> END_NODE
    RETURN_NULL5 --> END_NODE
    RETURN_NULL1 --> END_NODE
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `key` | `String` | The Japanese-language item name (data type identifier) that selects which field data to retrieve. Valid values include: "Telno" (Phone Number), "BMP" (Banner Placement), "KeiStat" (Contract Status), "SvcStaymd" (Service Start Date), "SvcEndYmd" (Service End Date), "VA Model" (VA Model Type), "PortNo" (Port Number), "NoGuide" (Number Guidance), "Toki" (Toky Telephone Service Availability), "SvcKeiUcwkNo" (Service Contract Item Number), "SvcKeiUcwkStat" (Service Contract Item Status), "MskmDtlNo" (Application Detail Number), "PcrsCd" (Fee Code), "PPlanCd" (Fee Plan Code), "DspSvcKeiUcwkStat" (Display-Only Service Contract Item Status), "DspSvcKeiUcwkStatNm" (Display-Only Service Contract Item Status Name), "TaknkikiSbtCd" (Domestic Equipment Type Code), "KktkSvcNm" (Equipment Provision Service Name), and "BmpHaishiReqCtrlCd" (Banner Deregistration Request Control Code). For the special "BmpHaishiReqCtrlCd" key, the value uses a hierarchical slash-delimited path format (e.g., "Banner Deregistration Request Control Code/preroute/0/prerule") to access indexed list items. |
| 2 | `subkey` | `String` | The property descriptor that selects which aspect of the field to return. Valid values: "value" (returns the field value as String), "enable" (returns the editable flag as Boolean), or "state" (returns the validation state as String). Note that not all data types support "enable" - some types only support "value" and "state". |

**Instance fields read by this method:**

| No | Field Name | Type | Business Description |
|----|-----------|------|---------------------|
| 1 | `bmp_haishi_req_ctrl_cd_list` | `X33VDataTypeList` | A list of banner deregistration request control code items. Each item implements `X33VDataTypeBeanInterface` and can itself be queried via its own `loadModelData` method for hierarchical key access. Initialized as an empty list in the constructor. |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `KKW00130SF02DBean.getRslt_telno_value` | - | Bean field `rslt_telno_value` | Returns the phone number value from bean state |
| R | `KKW00130SF02DBean.getRslt_telno_enabled` | - | Bean field `rslt_telno_enabled` | Returns the phone number editable flag |
| R | `KKW00130SF02DBean.getRslt_telno_state` | - | Bean field `rslt_telno_state` | Returns the phone number validation state |
| R | `KKW00130SF02DBean.getRslt_bmp_value` | - | Bean field `rslt_bmp_value` | Returns the banner placement value |
| R | `KKW00130SF02DBean.getRslt_bmp_enabled` | - | Bean field `rslt_bmp_enabled` | Returns the banner placement editable flag |
| R | `KKW00130SF02DBean.getRslt_bmp_state` | - | Bean field `rslt_bmp_state` | Returns the banner placement validation state |
| R | `KKW00130SF02DBean.getRslt_kei_stat_value` | - | Bean field `rslt_kei_stat_value` | Returns the contract status value |
| R | `KKW00130SF02DBean.getRslt_kei_stat_enabled` | - | Bean field `rslt_kei_stat_enabled` | Returns the contract status editable flag |
| R | `KKW00130SF02DBean.getRslt_kei_stat_state` | - | Bean field `rslt_kei_stat_state` | Returns the contract status validation state |
| R | `KKW00130SF02DBean.getRslt_svc_staymd_value` | - | Bean field `rslt_svc_staymd_value` | Returns the service start date value |
| R | `KKW00130SF02DBean.getRslt_svc_staymd_enabled` | - | Bean field `rslt_svc_staymd_enabled` | Returns the service start date editable flag |
| R | `KKW00130SF02DBean.getRslt_svc_staymd_state` | - | Bean field `rslt_svc_staymd_state` | Returns the service start date validation state |
| R | `KKW00130SF02DBean.getRslt_svc_endymd_value` | - | Bean field `rslt_svc_endymd_value` | Returns the service end date value |
| R | `KKW00130SF02DBean.getRslt_svc_endymd_enabled` | - | Bean field `rslt_svc_endymd_enabled` | Returns the service end date editable flag |
| R | `KKW00130SF02DBean.getRslt_svc_endymd_state` | - | Bean field `rslt_svc_endymd_state` | Returns the service end date validation state |
| R | `KKW00130SF02DBean.getRslt_va_model_value` | - | Bean field `rslt_va_model_value` | Returns the VA model type value |
| R | `KKW00130SF02DBean.getRslt_va_model_enabled` | - | Bean field `rslt_va_model_enabled` | Returns the VA model type editable flag |
| R | `KKW00130SF02DBean.getRslt_va_model_state` | - | Bean field `rslt_va_model_state` | Returns the VA model type validation state |
| R | `KKW00130SF02DBean.getRslt_port_no_value` | - | Bean field `rslt_port_no_value` | Returns the port number value |
| R | `KKW00130SF02DBean.getRslt_port_no_enabled` | - | Bean field `rslt_port_no_enabled` | Returns the port number editable flag |
| R | `KKW00130SF02DBean.getRslt_port_no_state` | - | Bean field `rslt_port_no_state` | Returns the port number validation state |
| R | `KKW00130SF02DBean.getRslt_no_guide_value` | - | Bean field `rslt_no_guide_value` | Returns the number guidance value |
| R | `KKW00130SF02DBean.getRslt_no_guide_enabled` | - | Bean field `rslt_no_guide_enabled` | Returns the number guidance editable flag |
| R | `KKW00130SF02DBean.getRslt_no_guide_state` | - | Bean field `rslt_no_guide_state` | Returns the number guidance validation state |
| R | `KKW00130SF02DBean.getRslt_toki_um_value` | - | Bean field `rslt_toki_um_value` | Returns the Toky telephone service availability value |
| R | `KKW00130SF02DBean.getRslt_toki_um_enabled` | - | Bean field `rslt_toki_um_enabled` | Returns the Toky telephone service availability editable flag |
| R | `KKW00130SF02DBean.getRslt_toki_um_state` | - | Bean field `rslt_toki_um_state` | Returns the Toky telephone service availability validation state |
| R | `KKW00130SF02DBean.getRslt_svc_kei_ucwk_no_value` | - | Bean field `rslt_svc_kei_ucwk_no_value` | Returns the service contract item number value |
| R | `KKW00130SF02DBean.getRslt_svc_kei_ucwk_no_state` | - | Bean field `rslt_svc_kei_ucwk_no_state` | Returns the service contract item number validation state |
| R | `KKW00130SF02DBean.getRslt_svc_kei_ucwk_stat_value` | - | Bean field `rslt_svc_kei_ucwk_stat_value` | Returns the service contract item status value |
| R | `KKW00130SF02DBean.getRslt_svc_kei_ucwk_stat_state` | - | Bean field `rslt_svc_kei_ucwk_stat_state` | Returns the service contract item status validation state |
| R | `KKW00130SF02DBean.getRslt_mskm_dtl_no_value` | - | Bean field `rslt_mskm_dtl_no_value` | Returns the application detail number value |
| R | `KKW00130SF02DBean.getRslt_mskm_dtl_no_state` | - | Bean field `rslt_mskm_dtl_no_state` | Returns the application detail number validation state |
| R | `KKW00130SF02DBean.getRslt_pcrs_cd_value` | - | Bean field `rslt_pcrs_cd_value` | Returns the fee code value |
| R | `KKW00130SF02DBean.getRslt_pcrs_cd_state` | - | Bean field `rslt_pcrs_cd_state` | Returns the fee code validation state |
| R | `KKW00130SF02DBean.getRslt_pplan_cd_value` | - | Bean field `rslt_pplan_cd_value` | Returns the fee plan code value |
| R | `KKW00130SF02DBean.getRslt_pplan_cd_state` | - | Bean field `rslt_pplan_cd_state` | Returns the fee plan code validation state |
| R | `KKW00130SF02DBean.getDsp_svc_kei_ucwk_stat_value` | - | Bean field `dsp_svc_kei_ucwk_stat_value` | Returns the display-only service contract item status value |
| R | `KKW00130SF02DBean.getDsp_svc_kei_ucwk_stat_state` | - | Bean field `dsp_svc_kei_ucwk_stat_state` | Returns the display-only service contract item status validation state |
| R | `KKW00130SF02DBean.getDsp_svc_kei_ucwk_stat_nm_value` | - | Bean field `dsp_svc_kei_ucwk_stat_nm_value` | Returns the display-only service contract item status name value |
| R | `KKW00130SF02DBean.getDsp_svc_kei_ucwk_stat_nm_state` | - | Bean field `dsp_svc_kei_ucwk_stat_nm_state` | Returns the display-only service contract item status name validation state |
| R | `KKW00130SF02DBean.getTaknkiki_sbt_cd_value` | - | Bean field `taknkiki_sbt_cd_value` | Returns the domestic equipment type code value |
| R | `KKW00130SF02DBean.getTaknkiki_sbt_cd_state` | - | Bean field `taknkiki_sbt_cd_state` | Returns the domestic equipment type code validation state |
| R | `KKW00130SF02DBean.getKktk_svc_nm_value` | - | Bean field `kktk_svc_nm_value` | Returns the equipment provision service name value |
| R | `KKW00130SF02DBean.getKktk_svc_nm_state` | - | Bean field `kktk_svc_nm_state` | Returns the equipment provision service name validation state |
| R | `bmp_haishi_req_ctrl_cd_list` (Indexed) | - | List items (`X33VDataTypeBeanInterface`) | Iterates/reads indexed items from the banner deregistration request control code list. For valid index, delegates to `loadModelData(key, subkey)` on the targeted list item. |
| - | `X33VDataTypeBeanInterface.loadModelData` | - | - | Delegated call to child bean's loadModelData for hierarchical key access on list items |

All operations are **Read (R)** - this method is a pure data retrieval/lookup dispatcher. It does not create, update, or delete any data. All called getters return data from the bean's internal state fields.

## 5. Dependency Trace

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

No screen/batch entry points found within 8 hops. Direct callers found: 2 methods.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `KKW00130SF02DBean.getJsflist_typelist_bmp_haishi_req_ctrl_cd()` | `KKW00130SF02DBean.loadModelData("Banner Deregistration Request Control Code/prerule")` | `getRslt_bmp_value [R]` |
| 2 | `KKW00130SF02DBean.loadModelData()` (internal overload) | `KKW00130SF02DBean.loadModelData()` -> `KKW00130SF02DBean.loadModelData(key, subkey)` | `getRslt_* [R]` on all bean fields |

### Terminal operations reached FROM this method:

- `loadModelData` [R] - Delegation to child bean's loadModelData for banner control list items
- `substring` [-] - String slicing for hierarchical key parsing
- `getKktk_svc_nm_state` [R] - Equipment provision service name validation state
- `getKktk_svc_nm_value` [R] - Equipment provision service name value
- `getTaknkiki_sbt_cd_state` [R] - Domestic equipment type code validation state
- `getTaknkiki_sbt_cd_value` [R] - Domestic equipment type code value
- `getDsp_svc_kei_ucwk_stat_nm_state` [R] - Display-only service contract item status name validation state
- `getDsp_svc_kei_ucwk_stat_nm_value` [R] - Display-only service contract item status name value
- `getDsp_svc_kei_ucwk_stat_state` [R] - Display-only service contract item status validation state
- `getDsp_svc_kei_ucwk_stat_value` [R] - Display-only service contract item status value

## 6. Per-Branch Detail Blocks

### Block 1 - IF (null check) (L728-731)

Guard clause: if either key or subkey is null, return null immediately.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key == null || subkey == null)` |
| 2 | RETURN | `return null;` |

### Block 2 - SET (separator position) (L733)

Computes the position of the first "/" character in the key for potential hierarchical path parsing.

| # | Type | Code |
|---|------|------|
| 1 | SET | `separaterPoint = key.indexOf("/")` |

### Block 3 - ELSE-IF [key = "Telno"] (Phone Number) (L736-745)

Retrieves phone number field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | IF | `if (key.equals("Telno"))` // Phone Number [-> Item ID: rslt_telno] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_telno_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // Returns getRslt_telno_enable getter value |
| 5 | RETURN | `return getRslt_telno_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // Returns validation state |
| 7 | RETURN | `return getRslt_telno_state();` |

### Block 4 - ELSE-IF [key = "BMP"] (Banner Placement) (L748-757)

Retrieves banner placement field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("BMP"))` // Banner Placement [-> Item ID: rslt_bmp] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_bmp_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` // Returns getRslt_bmp_enable getter value |
| 5 | RETURN | `return getRslt_bmp_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` // Returns validation state |
| 7 | RETURN | `return getRslt_bmp_state();` |

### Block 5 - ELSE-IF [key = "KeiStat"] (Contract Status) (L760-769)

Retrieves contract status field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("KeiStat"))` // Contract Status [-> Item ID: rslt_kei_stat] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_kei_stat_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_kei_stat_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_kei_stat_state();` |

### Block 6 - ELSE-IF [key = "SvcStaymd"] (Service Start Date) (L772-781)

Retrieves service start date field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("SvcStaymd"))` // Service Start Date [-> Item ID: rslt_svc_staymd] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_svc_staymd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_svc_staymd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_svc_staymd_state();` |

### Block 7 - ELSE-IF [key = "SvcEndYmd"] (Service End Date) (L784-793)

Retrieves service end date field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("SvcEndYmd"))` // Service End Date [-> Item ID: rslt_svc_endymd] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_svc_endymd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_svc_endymd_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_svc_endymd_state();` |

### Block 8 - ELSE-IF [key = "VA Model"] (VA Model Type) (L796-805)

Retrieves VA (Voice Application) model type field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("VA Model"))` // VA Model Type [-> Item ID: rslt_va_model] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_va_model_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_va_model_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_va_model_state();` |

### Block 9 - ELSE-IF [key = "PortNo"] (Port Number) (L808-817)

Retrieves port number (number portability) field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("PortNo"))` // Port Number [-> Item ID: rslt_port_no] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_port_no_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_port_no_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_port_no_state();` |

### Block 10 - ELSE-IF [key = "NoGuide"] (Number Guidance) (L820-829)

Retrieves number guidance field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("NoGuide"))` // Number Guidance [-> Item ID: rslt_no_guide] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_no_guide_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_no_guide_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_no_guide_state();` |

### Block 11 - ELSE-IF [key = "Toki"] (Toky Telephone Service Availability) (L832-841)

Retrieves Toky (telephone) presence field data. Supports "value", "enable", and "state" subkeys.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("Toki"))` // Toky Telephone Service Availability [-> Item ID: rslt_toki_um] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_toki_um_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("enable"))` |
| 5 | RETURN | `return getRslt_toki_um_enabled();` |
| 6 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 7 | RETURN | `return getRslt_toki_um_state();` |

### Block 12 - COMMENT (Disabled: Transfer Toky dates) (L844-862)

Commented-out code blocks for transfer Toky start date and transfer Toky end date, indicating future extensibility that was not deployed.

| # | Type | Code |
|---|------|------|
| 1 | COMMENT | `// Transfer Toky Start Date [-> Item ID: rslt_toki_sta_ymd]` (commented out) |
| 2 | COMMENT | `// Transfer Toky End Date [-> Item ID: rslt_toki_end_ymd]` (commented out) |

### Block 13 - ELSE-IF [key = "SvcKeiUcwkNo"] (Service Contract Item Number) (L865-873)

Retrieves service contract item number field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("SvcKeiUcwkNo"))` // Service Contract Item Number [-> Item ID: rslt_svc_kei_ucwk_no] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_svc_kei_ucwk_no_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getRslt_svc_kei_ucwk_no_state();` |

### Block 14 - ELSE-IF [key = "SvcKeiUcwkStat"] (Service Contract Item Status) (L876-884)

Retrieves service contract item status field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("SvcKeiUcwkStat"))` // Service Contract Item Status [-> Item ID: rslt_svc_kei_ucwk_stat] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_svc_kei_ucwk_stat_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getRslt_svc_kei_ucwk_stat_state();` |

### Block 15 - ELSE-IF [key = "MskmDtlNo"] (Application Detail Number) (L887-895)

Retrieves application detail number field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("MskmDtlNo"))` // Application Detail Number [-> Item ID: rslt_mskm_dtl_no] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_mskm_dtl_no_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getRslt_mskm_dtl_no_state();` |

### Block 16 - ELSE-IF [key = "PcrsCd"] (Fee Code) (L898-906)

Retrieves fee code field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("PcrsCd"))` // Fee Code [-> Item ID: rslt_pcrs_cd] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_pcrs_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getRslt_pcrs_cd_state();` |

### Block 17 - ELSE-IF [key = "PPlanCd"] (Fee Plan Code) (L909-917)

Retrieves fee plan code field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("PPlanCd"))` // Fee Plan Code [-> Item ID: rslt_pplan_cd] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getRslt_pplan_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getRslt_pplan_cd_state();` |

### Block 18 - ELSE-IF [key = "DspSvcKeiUcwkStat"] (Display-Only Service Contract Item Status) (L920-928)

Added by OT-2013-0000311 on 2013/03/26. Retrieves display-only service contract item status field data. Supports only "value" and "state" subkeys (no "enable"). This is a read-only field not tied to the main result bean state.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("DspSvcKeiUcwkStat"))` // Display-Only Service Contract Item Status [-> Item ID: dsp_svc_kei_ucwk_stat] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getDsp_svc_kei_ucwk_stat_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getDsp_svc_kei_ucwk_stat_state();` |

### Block 19 - ELSE-IF [key = "DspSvcKeiUcwkStatNm"] (Display-Only Service Contract Item Status Name) (L931-941)

Added by OT-2013-0000311 on 2013/03/26. Retrieves display-only service contract item status name field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("DspSvcKeiUcwkStatNm"))` // Display-Only Service Contract Item Status Name [-> Item ID: dsp_svc_kei_ucwk_stat_nm] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getDsp_svc_kei_ucwk_stat_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getDsp_svc_kei_ucwk_stat_nm_state();` |

### Block 20 - ELSE-IF [key = "TaknkikiSbtCd"] (Domestic Equipment Type Code) (L944-952)

Added by ANK-1587-00-00. Retrieves domestic equipment type code field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("TaknkikiSbtCd"))` // Domestic Equipment Type Code [-> Item ID: taknkiki_sbt_cd] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getTaknkiki_sbt_cd_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getTaknkiki_sbt_cd_state();` |

### Block 21 - ELSE-IF [key = "KktkSvcNm"] (Equipment Provision Service Name) (L955-963)

Added by ANK-1587-00-00. Retrieves equipment provision service name field data. Supports only "value" and "state" subkeys (no "enable").

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("KktkSvcNm"))` // Equipment Provision Service Name [-> Item ID: kktk_svc_nm] |
| 2 | IF | `if (subkey.equalsIgnoreCase("value"))` |
| 3 | RETURN | `return getKktk_svc_nm_value();` |
| 4 | ELSE-IF | `else if (subkey.equalsIgnoreCase("state"))` |
| 5 | RETURN | `return getKktk_svc_nm_state();` |

### Block 22 - ELSE-IF [key = "BmpHaishiReqCtrlCd"] (Banner Deregistration Request Control Code) - Hierarchical Index (L967-996)

Added by ANK-2288-00-00 on 2015/03/13 for banner return judgment flag support. This block implements hierarchical key parsing for indexed list access. The key format is: `Banner Deregistration Request Control Code/[preroute|prerule|...]/[index]/[sub-item]`.

When `subkey` is "*", returns the list size. Otherwise, parses the key to extract the list index and sub-item key, validates the index, and delegates to the targeted list item's `loadModelData` method.

| # | Type | Code |
|---|------|------|
| 1 | ELSE-IF | `else if (key.equals("BmpHaishiReqCtrlCd"))` // Banner Deregistration Request Control Code [-> Item ID: bmp_haishi_req_ctrl_cd] |
| 2 | EXEC | `String keyRemain = key.substring(separaterPoint + 1)` // Extract path after first "/" from format like "prerule/0/preruleName" |
| 3 | IF | `if (keyRemain.equals("*"))` |
| 4 | RETURN | `return Integer.valueOf(bmp_haishi_req_ctrl_cd_list.size());` |
| 5 | ELSE | `separaterPoint = keyRemain.indexOf("/")` // Find next "/" delimiter |
| 6 | IF | `if (separaterPoint <= 0)` // No more delimiters or invalid format |
| 7 | RETURN | `return null;` |
| 8 | SET | `key = keyRemain.substring(0, separaterPoint)` // Extract index portion |
| 9 | TRY | `try { tmpIndexInt = Integer.valueOf(key); }` |
| 10 | SET | `tmpIndexInt = Integer.valueOf(key)` // Parse index as integer |
| 11 | CATCH | `catch (NumberFormatException e)` |
| 12 | RETURN | `return null;` // Invalid index string |
| 13 | IF | `if (tmpIndexInt == null)` |
| 14 | RETURN | `return null;` |
| 15 | SET | `tmpIndex = tmpIndexInt.intValue()` |
| 16 | IF | `if (tmpIndex < 0 || tmpIndex >= bmp_haishi_req_ctrl_cd_list.size())` // Index out of bounds |
| 17 | RETURN | `return null;` |
| 18 | SET | `key = keyRemain.substring(separaterPoint + 1)` // Extract sub-item key after index |
| 19 | CALL | `((X33VDataTypeBeanInterface) bmp_haishi_req_ctrl_cd_list.get(tmpIndex)).loadModelData(key, subkey)` // Delegate to child bean |
| 20 | RETURN | `return delegated result;` |

### Block 23 - ELSE (default / no match) (L998-999)

No matching data type found. Returns null as the fallback.

| # | Type | Code |
|---|------|------|
| 1 | ELSE | No matching property found |
| 2 | RETURN | `return null;` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `rslt_telno` | Field | Phone number - the customer's telephone number stored as a result field |
| `rslt_bmp` | Field | Banner placement - UI banner display position indicator |
| `rslt_kei_stat` | Field | Contract status - the current status of the service contract |
| `rslt_svc_staymd` | Field | Service start date (year/month/day) - when the service begins |
| `rslt_svc_endymd` | Field | Service end date (year/month/day) - when the service expires or terminates |
| `rslt_va_model` | Field | VA model type - Voice Application model type for the service |
| `rslt_port_no` | Field | Port number - number portability (number transfer) identifier |
| `rslt_no_guide` | Field | Number guidance - information about number guidance/provision |
| `rslt_toki_um` | Field | Toky (telephone) presence - whether telephone service is available (um = 有無, presence/absence) |
| `rslt_svc_kei_ucwk_no` | Field | Service contract item number - internal tracking ID for service contract line items (ucwk = 内訳, itemization) |
| `rslt_svc_kei_ucwk_stat` | Field | Service contract item status - status of the service contract line item |
| `rslt_mskm_dtl_no` | Field | Application detail number - detail number of the application/request |
| `rslt_pcrs_cd` | Field | Fee code - the pricing/fee code applied to the service |
| `rslt_pplan_cd` | Field | Fee plan code - the pricing plan code for the service |
| `dsp_svc_kei_ucwk_stat` | Field | Display-only service contract item status - read-only status field for display purposes |
| `dsp_svc_kei_ucwk_stat_nm` | Field | Display-only service contract item status name - human-readable status name for display |
| `taknkiki_sbt_cd` | Field | Domestic equipment type code - type code for indoor/home equipment |
| `kktk_svc_nm` | Field | Equipment provision service name - name of the equipment provision service |
| `bmp_haishi_req_ctrl_cd` | Field | Banner deregistration request control code - control code for banner deregistration requests (haishi = 廃止, deregistration) |
| `bmp_haishi_req_ctrl_cd_list` | Field | List of banner deregistration request control code items - used for multiple banner control entries with hierarchical key access |
| `subkey` | Field | Property subkey - "value", "enable", or "state" indicating which attribute of a field to retrieve |
| `enable` | Subkey | Editable flag - Boolean indicating whether the field is enabled/editable on the UI |
| `state` | Subkey | Validation state - String representing the validation/error state of a field |
| `value` | Subkey | Field value - the actual data value of the field |
| ANK | Acronym | Internal project code prefix (Aichi/Nagoya region project identifier) |
| OT | Acronym | Order Ticket - internal change request/tracking system identifier |
| VA | Business term | Voice Application - telephony voice application service (e.g., voicemail, IVR) |
| FTTH | Business term | Fiber To The Home - fiber-optic broadband service (contextual domain of K-Opticom) |
| X33VDataTypeBeanInterface | Interface | Reusable data type bean interface - child beans implementing this can be queried via loadModelData for hierarchical key access |
| X33VDataTypeList | Class | Typed list container for banner deregistration control code items |
| KKW00130SF | Module | Service contract detail inquiry screen module - handles inquiry and display of service contract information |
| K-Opticom | Company | Japanese telecommunications provider (the system owner) |