# Business Logic — JBSbatKKKojiKnrIfFileLoad.setKikiInfTv() [438 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.business.service.JBSbatKKKojiKnrIfFileLoad` |
| Layer | Service (Batch Service) |
| Module | `service` (Package: `eo.business.service`) |

## 1. Role

### JBSbatKKKojiKnrIfFileLoad.setKikiInfTv()

The `setKikiInfTv()` method is a data validation and assembly routine for **TV terminal equipment information** (`機器情報(テレビ)`) consumed from an incoming CSV batch file in the K-Opticom customer infrastructure system. It processes exactly 50 comma-delimited fields extracted from a single CSV record, validating each field's format (half-width alphanumeric, half-width numeric, full-width Japanese, or date format) depending on the field's business requirements. When all validations pass (error count is zero), the method assembles the validated fields into a single comma-separated string (`StringBuilder`), interspersing each field with a comma delimiter (`CONMA`), then appends a record division code (`REC_DOV_D1 = "D1"`) identifying this as TV equipment data, and terminates the record with a newline code (`KAIGYOU_CODE`). This method follows a **validation-dispatch** pattern — it is one of twelve record-type dispatchers called from `execute()` when the record division field matches `"D1"`. Its role in the larger system is to serve as a gatekeeper, ensuring data integrity of TV equipment information before it is appended to the downstream output file (`kiki_Inf_tv`), which is ultimately used for further processing or transmission to partner systems. The method does not perform any database CRUD operations; it is a pure data-purification and formatting utility.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["setKikiInfTv\(data_list, kiki_Inf_tv\)"])
    DEBUG_START["Log: setKikiInfTv_START"]
    INIT_ERR["err_cunt = 0"]

    CHECK_FIELDS["Validate 50 fields sequentially"]

    COND_ERR{"err_cunt == 0"}

    ASSEMBLE["Append all 50 fields + CONMA + REC_DIV D1 + KAIGYOU_CODE to kiki_Inf_tv"]

    DEBUG_END["Log: setKikiInfTv_END"]
    END_NODE(["Return void"])

    START --> DEBUG_START --> INIT_ERR --> CHECK_FIELDS --> COND_ERR
    COND_ERR -- "true (0 == err_cunt)" --> ASSEMBLE --> DEBUG_END --> END_NODE
    COND_ERR -- "false (err > 0, skip assembly)" --> DEBUG_END --> END_NODE
```

**CRITICAL — Constant Resolution:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|-----------------|
| `CONMA` | `","` | Comma — field delimiter used in CSV output assembly |
| `KAIGYOU_CODE` | `"
"` | Line feed — record terminator for the output file |
| `REC_DOV_D1` (from class field) | `"D1"` | Record division code identifying TV equipment data |

The method uses `REC_DOV_D1` as the record division marker appended after all validated fields during the assembly phase.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `data_list` | `ArrayList<String>` | A list of 50 string fields (indexed 0–49) extracted from a single CSV record representing TV terminal equipment data. Each index maps to a specific field: index 1 = Service Contract Number, index 2 = Service Contract Circuit-Internal Number, index 3 = Connection Date, index 4 =通番 (Service Number), index 5 = New/Change Division, index 6 = Work Project Type Code, index 7 = Work Project Number, index 8 = Work Company Delivery Destination Code, index 9 = Indoor Device Model Code (V-ONU), index 10 = Device Serial Number (V-ONU), indices 11–41 = STB-ID1 through C-CAS-ID5 and Equipment Provision Service Contract Numbers (STB1–STB5, B-CAS1–B-CAS5, C-CAS1–C-CAS5), index 42 = Indoor Device Error Code (V-ONU), indices 43–47 = Indoor Device Error Divisions (STB1–STB5), index 48 = STB Non-Menu, index 49 = Contract Change Comment (after character code conversion), index 0 = Record Division. Values that fail validation increment `err_cunt` but do not halt processing — all 50 fields are checked. |
| 2 | `kiki_Inf_tv` | `StringBuilder` | A shared mutable string buffer that accumulates the assembled TV equipment information record. When validation succeeds, this method appends all 50 validated fields separated by commas, followed by the record division code (`REC_DOV_D1 = "D1"`) and a newline. This buffer is passed up the call chain from `execute()` and is ultimately written to the output equipment information file. |

**Class fields read:**
| Field | Type | Business Description |
|-------|------|---------------------|
| `logPrint` | Inherited from `JBSbatBusinessService` | Debug logging interface — used to log START/END markers |
| `CONMA` | `String` (constant = `","`) | Comma delimiter used between fields during assembly |
| `KAIGYOU_CODE` | `String` (constant = `"
"`) | Newline character appended at end of each record |

## 4. CRUD Operations / Called Services

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

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JBSbatKKKojiKnrIfFileLoad.isHannkakuESuuji` | JBSbatKKKojiKnrIfFileLoad | - | Validates half-width alphanumeric format for fields: Service Contract Number (idx 1, 10 chars, mandatory), Service Contract Circuit-Internal Number (idx 2, 12 chars, mandatory), New/Change Division (idx 5, 1 char, mandatory), Work Company Delivery Destination Code (idx 8, 6 chars, optional), Device Model Code (idx 9, 20 chars, optional), Device Serial Number (idx 10, 20 chars, optional), STB-ID1 (idx 11, 12 chars, optional), B-CAS-ID1 (idx 12, 20 chars, optional), C-CAS-ID1 (idx 13, 20 chars, optional), STB-ID2 (idx 14, 12 chars, optional), B-CAS-ID2 (idx 15, 20 chars, optional), C-CAS-ID2 (idx 16, 20 chars, optional), STB-ID3 (idx 17, 12 chars, optional), B-CAS-ID3 (idx 18, 20 chars, optional), C-CAS-ID3 (idx 19, 20 chars, optional), STB-ID4 (idx 20, 12 chars, optional), B-CAS-ID4 (idx 21, 20 chars, optional), C-CAS-ID4 (idx 22, 20 chars, optional), STB-ID5 (idx 23, 12 chars, optional), B-CAS-ID5 (idx 24, 20 chars, optional), C-CAS-ID5 (idx 25, 20 chars, optional), Equipment Provision Service Contract Numbers (idx 26–41, 12 chars each, optional), Indoor Device Error Code (idx 42, 2 chars, optional), Indoor Device Error Divisions (idx 43–47, 2 chars each, optional), STB Non-Menu (idx 48, 1 char, optional) |
| - | `JBSbatKKKojiKnrIfFileLoad.isHannkakuESuuji2` | JBSbatKKKojiKnrIfFileLoad | - | Validates half-width alphanumeric (variant 2) for Device Model Code (V-ONU, idx 9) and Device Serial Number (V-ONU, idx 10) |
| - | `JBSbatKKKojiKnrIfFileLoad.isHannkakuSuuji1` | JBSbatKKKojiKnrIfFileLoad | - | Validates half-width numeric for Service Number (通番, idx 4, 12 chars, mandatory) |
| - | `JBSbatKKKojiKnrIfFileLoad.isYearMonthDay` | JBSbatKKKojiKnrIfFileLoad | - | Validates date format for Connection Date (連携年月日, idx 3, mandatory) |
| - | `JBSbatKKKojiKnrIfFileLoad.isZenkaku` | JBSbatKKKojiKnrIfFileLoad | - | Validates full-width character format for Contract Change Comment (契約変更コメント, idx 49, 50 chars, optional) |
| - | `JBSbatInterface.charConverter` | JBSbatInterface | - | Converts character encoding for the Contract Change Comment field (idx 49) — performs full-width/half-width conversion or encoding transformation before validation |
| - | `JACBatCommon.printDebugLog` | JACBatCommon | - | Debug log for START marker |
| - | `JACbatDebugLogUtil.printDebugLog` | JACbatDebugLogUtil | - | Debug log for END marker (via inherited `logPrint`) |

**No database CRUD operations** — this method performs only data validation and string assembly. It does not interact with any database tables, entities, or external CBS services.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Batch: JBSbatKKKojiKnrIfFileLoad | `execute()` → `setKikiInfTv(data_list, kiki_Inf_tv)` | `isHannkakuESuuji` [R], `isHannkakuESuuji2` [R], `isHannkakuSuuji1` [R], `isYearMonthDay` [R], `isZenkaku` [R], `charConverter` [R], `printDebugLog` [R] |

**Call chain detail:** The `execute()` method reads CSV records from the TV equipment information batch file (`KIKI_INF_TV_FILE_ID = "KKIFM064001"`). For each record, it parses the fields into `data_list`, determines the record division code (`rec_div`), and dispatches to the appropriate setter method. When `REC_DOV_D1` (the TV equipment record division) matches, `execute()` calls `setKikiInfTv(data_list, kiki_Inf_tv)` to validate and assemble the TV equipment data. The assembled result is appended to the shared `StringBuilder kiki_Inf_tv`, which is later written to the output file.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] (L1980)
Initialize processing state.

| # | Type | Code |
|---|------|------|
| 1 | SET | `err_cunt = 0` // Initialize error counter |
| 2 | EXEC | `super.logPrint.printDebugLog("setKikiInfTv_START")` // Log method start for debug trace |

**Block 2** — [IF (sequential chain)] (L1984–L2192)
Validate 50 fields sequentially. Each validation checks format and length. On failure, increment `err_cunt`. The Japanese comment on each block indicates the field being checked.

> Comment: サリービス契約番号単項目チェック // Service Contract Number single-field check

| # | Type | Code |
|---|------|------|
| 1 | IF | `!isHannkakuESuuji(data_list.get(1), 10, true, "機器情報(テレビ)：サービス契約番号")` // Validate half-width alphanumeric, max 10 chars, mandatory |
| 1.1 | IF_BODY | `err_cunt++` |
| 2 | IF | `!isHannkakuESuuji(data_list.get(2), 12, true, "機器情報(テレビ)：サービス契約回線内訳番号")` // Service Contract Circuit-Internal Number, max 12, mandatory |
| 2.1 | IF_BODY | `err_cunt++` |
| 3 | IF | `!isYearMonthDay(data_list.get(3), true, "機器情報(テレビ)：連携年月日")` // Connection Date, mandatory |
| 3.1 | IF_BODY | `err_cunt++` |
| 4 | IF | `!isHannkakuSuuji1(data_list.get(4), 12, true, "機器情報(テレビ)：通番")` // Service Number (通番), half-width numeric, max 12, mandatory |
| 4.1 | IF_BODY | `err_cunt++` |
| 5 | IF | `!isHannkakuESuuji(data_list.get(5), 1, true, "機器情報(テレビ)：新規変更区分")` // New/Change Division, 1 char, mandatory |
| 5.1 | IF_BODY | `err_cunt++` |
| 6 | IF | `!isHannkakuESuuji(data_list.get(6), 3, true, "機器情報(テレビ)：工事案件種別コード")` // Work Project Type Code, 3 chars, mandatory |
| 6.1 | IF_BODY | `err_cunt++` |
| 7 | IF | `!isHannkakuESuuji(data_list.get(7), 10, true, "機器情報(テレビ)：工事案件番号")` // Work Project Number, 10 chars, mandatory |
| 7.1 | IF_BODY | `err_cunt++` |
| 8 | IF | `!isHannkakuESuuji(data_list.get(8), 6, false, "機器情報(テレビ)：工事会社配送先コード")` // Work Company Delivery Destination Code, 6 chars, optional |
| 8.1 | IF_BODY | `err_cunt++` |
| 9 | IF | `!isHannkakuESuuji2(data_list.get(9), 20, false, "機器情報(テレビ)：自宅機器型式コード(V-ONU)")` // Indoor Device Model Code (V-ONU), 20 chars, optional |
| 9.1 | IF_BODY | `err_cunt++` |
| 10 | IF | `!isHannkakuESuuji2(data_list.get(10), 20, false, "機器情報(テレビ)：機器製造番号(V-ONU)")` // Device Serial Number (V-ONU), 20 chars, optional |
| 10.1 | IF_BODY | `err_cunt++` |
| 11 | IF | `!isHannkakuESuuji(data_list.get(11), 12, false, "機器情報(テレビ)：STB-ID1")` // STB Identifier 1, 12 chars, optional |
| 11.1 | IF_BODY | `err_cunt++` |
| 12 | IF | `!isHannkakuESuuji(data_list.get(12), 20, false, "機器情報(テレビ)：B-CAS-ID1")` // B-CAS Card Identifier 1, 20 chars, optional |
| 12.1 | IF_BODY | `err_cunt++` |
| 13 | IF | `!isHannkakuESuuji(data_list.get(13), 20, false, "機器情報(テレビ)：C-CAS-ID1")` // C-CAS Card Identifier 1, 20 chars, optional |
| 13.1 | IF_BODY | `err_cunt++` |
| 14–25 | IF | `!isHannkakuESuuji(data_list.get(n), ..., false, "機器情報(テレビ)：STB/B-CAS/C-CAS-ID{n}")` // STB-ID2 through C-CAS-ID5 (idx 14–25) — identical pattern, each optional, lengths alternate 12/20/20 |
| 26 | IF | `!isHannkakuESuuji(data_list.get(26), 12, false, "機器情報(テレビ)：機器提供サービス契約番号(V-ONU)")` // Equipment Provision Service Contract Number (V-ONU), 12 chars, optional |
| 26.1 | IF_BODY | `err_cunt++` |
| 27–41 | IF | `!isHannkakuESuuji(data_list.get(n), 12, false, "機器情報(テレビ)：機器提供サービス契約番号(STB{n}/B-CAS{n}/C-CAS{n})")` // Equipment Provision Service Contract Numbers for STB2–STB5, B-CAS2–B-CAS5, C-CAS2–C-CAS5 (idx 27–41), each 12 chars, optional |
| 42 | IF | `!isHannkakuESuuji(data_list.get(42), 2, false, "機器情報(テレビ)：自宅機器異動コード(V-ONU)")` // Indoor Device Error Code (V-ONU), 2 chars, optional |
| 42.1 | IF_BODY | `err_cunt++` |
| 43–47 | IF | `!isHannkakuESuuji(data_list.get(n), 2, false, "機器情報(テレビ)：自宅機器異動区分(STB{n})")` // Indoor Device Error Division for STB1–STB5 (idx 43–47), 2 chars each, optional |
| 48 | IF | `!isHannkakuESuuji(data_list.get(48), 1, false, "機器情報(テレビ)：STB無メニュー")` // STB Non-Menu flag, 1 char, optional |
| 48.1 | IF_BODY | `err_cunt++` |

**Block 3** — [EXEC / SET] (L2194–L2196)
Convert and validate the Contract Change Comment field.

| # | Type | Code |
|---|------|------|
| 1 | SET | `keiChgComment = JBSbatInterface.charConverter(data_list.get(49))` // Convert character encoding of Contract Change Comment (契約変更コメント, idx 49) |
| 2 | IF | `!isZenkaku(keiChgComment, 50, false, "機器情報(テレビ)：契約変更コメント")` // Validate full-width characters, max 50 chars, optional |
| 2.1 | IF_BODY | `err_cunt++` |

**Block 4** — [IF] `(0 == err_cunt)` (L2199)
> Comment: すべての項目がOKの場合設定。 // Set (assemble) only when all fields pass validation.

If any field failed validation (`err_cunt > 0`), this entire assembly block is skipped — the invalid record is simply not appended to `kiki_Inf_tv`. This is the critical gate: no invalid data leaks to the output.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kiki_Inf_tv.append(data_list.get(1))` // Append Service Contract Number (サービス契約番号) |
| 2 | EXEC | `kiki_Inf_tv.append(CONMA)` // Append comma delimiter [-> CONMA=","] |
| 3 | EXEC | `kiki_Inf_tv.append(data_list.get(2))` // Append Service Contract Circuit-Internal Number (サービス契約回線内訳番号) |
| 4 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 5 | EXEC | `kiki_Inf_tv.append(data_list.get(3))` // Append Connection Date (連携年月日) |
| 6 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 7 | EXEC | `kiki_Inf_tv.append(data_list.get(4))` // Append Service Number (通番) |
| 8 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 9 | EXEC | `kiki_Inf_tv.append(data_list.get(5))` // Append New/Change Division (新規変更区分) |
| 10 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 11 | EXEC | `kiki_Inf_tv.append(data_list.get(6))` // Append Work Project Type Code (工事案件種別) |
| 12 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 13 | EXEC | `kiki_Inf_tv.append(data_list.get(7))` // Append Work Project Number (工事案件番号) |
| 14 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 15 | EXEC | `kiki_Inf_tv.append(data_list.get(8))` // Append Work Company Delivery Destination Code (工事会社配送先コード) |
| 16 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 17 | EXEC | `kiki_Inf_tv.append(data_list.get(9))` // Append Indoor Device Model Code V-ONU (自宅機器型式コード(V-ONU)) |
| 18 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 19 | EXEC | `kiki_Inf_tv.append(data_list.get(10))` // Append Device Serial Number V-ONU (機器製造番号(V-ONU)) |
| 20 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 21 | EXEC | `kiki_Inf_tv.append(data_list.get(11))` // Append STB-ID1 |
| 22 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 23 | EXEC | `kiki_Inf_tv.append(data_list.get(12))` // Append B-CAS-ID1 |
| 24 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 25 | EXEC | `kiki_Inf_tv.append(data_list.get(13))` // Append C-CAS-ID1 |
| 26 | EXEC | `kiki_Inf_tv.append(CONMA)` |
| 27–28 | EXEC | `kiki_Inf_tv.append(data_list.get(14/15/16))` + `CONMA` // STB-ID2, B-CAS-ID2, C-CAS-ID2 |
| 29–32 | EXEC | `kiki_Inf_tv.append(data_list.get(17/18/19))` + `CONMA` // STB-ID3, B-CAS-ID3, C-CAS-ID3 |
| 33–36 | EXEC | `kiki_Inf_tv.append(data_list.get(20/21/22))` + `CONMA` // STB-ID4, B-CAS-ID4, C-CAS-ID4 |
| 37–40 | EXEC | `kiki_Inf_tv.append(data_list.get(23/24/25))` + `CONMA` // STB-ID5, B-CAS-ID5, C-CAS-ID5 |
| 41 | EXEC | `kiki_Inf_tv.append(data_list.get(26))` + `CONMA` // Equipment Provision Service Contract Number (V-ONU) |
| 42 | EXEC | `kiki_Inf_tv.append(data_list.get(27))` + `CONMA` // Equipment Provision Service Contract Number (STB1) |
| 43 | EXEC | `kiki_Inf_tv.append(data_list.get(28))` + `CONMA` // Equipment Provision Service Contract Number (B-CAS1) |
| 44 | EXEC | `kiki_Inf_tv.append(data_list.get(29))` + `CONMA` // Equipment Provision Service Contract Number (C-CAS1) |
| 45 | EXEC | `kiki_Inf_tv.append(data_list.get(30))` + `CONMA` // Equipment Provision Service Contract Number (STB2) |
| 46 | EXEC | `kiki_Inf_tv.append(data_list.get(31))` + `CONMA` // Equipment Provision Service Contract Number (B-CAS2) |
| 47 | EXEC | `kiki_Inf_tv.append(data_list.get(32))` + `CONMA` // Equipment Provision Service Contract Number (C-CAS2) |
| 48 | EXEC | `kiki_Inf_tv.append(data_list.get(33))` + `CONMA` // Equipment Provision Service Contract Number (STB3) |
| 49 | EXEC | `kiki_Inf_tv.append(data_list.get(34))` + `CONMA` // Equipment Provision Service Contract Number (B-CAS3) |
| 50 | EXEC | `kiki_Inf_tv.append(data_list.get(35))` + `CONMA` // Equipment Provision Service Contract Number (C-CAS3) |
| 51 | EXEC | `kiki_Inf_tv.append(data_list.get(36))` + `CONMA` // Equipment Provision Service Contract Number (STB4) |
| 52 | EXEC | `kiki_Inf_tv.append(data_list.get(37))` + `CONMA` // Equipment Provision Service Contract Number (B-CAS4) |
| 53 | EXEC | `kiki_Inf_tv.append(data_list.get(38))` + `CONMA` // Equipment Provision Service Contract Number (C-CAS4) |
| 54 | EXEC | `kiki_Inf_tv.append(data_list.get(39))` + `CONMA` // Equipment Provision Service Contract Number (STB5) |
| 55 | EXEC | `kiki_Inf_tv.append(data_list.get(40))` + `CONMA` // Equipment Provision Service Contract Number (B-CAS5) |
| 56 | EXEC | `kiki_Inf_tv.append(data_list.get(41))` + `CONMA` // Equipment Provision Service Contract Number (C-CAS5) |
| 57 | EXEC | `kiki_Inf_tv.append(data_list.get(42))` + `CONMA` // Indoor Device Error Code V-ONU (自宅機器異動コード(V-ONU)) |
| 58 | EXEC | `kiki_Inf_tv.append(data_list.get(43))` + `CONMA` // Indoor Device Error Division STB1 (自宅機器異動区分(STB1)) |
| 59 | EXEC | `kiki_Inf_tv.append(data_list.get(44))` + `CONMA` // Indoor Device Error Division STB2 |
| 60 | EXEC | `kiki_Inf_tv.append(data_list.get(45))` + `CONMA` // Indoor Device Error Division STB3 |
| 61 | EXEC | `kiki_Inf_tv.append(data_list.get(46))` + `CONMA` // Indoor Device Error Division STB4 |
| 62 | EXEC | `kiki_Inf_tv.append(data_list.get(47))` + `CONMA` // Indoor Device Error Division STB5 |
| 63 | EXEC | `kiki_Inf_tv.append(data_list.get(48))` + `CONMA` // STB Non-Menu (STB無メニュー) |
| 64 | EXEC | `kiki_Inf_tv.append(data_list.get(49))` // Append Contract Change Comment (契約変更コメント) |
| 65 | EXEC | `kiki_Inf_tv.append(CONMA)` // Record delimiter (レコード区分) — trailing comma before record division |
| 66 | EXEC | `kiki_Inf_tv.append(CONMA)` // Record division code (rec_div placeholder) |
| 67 | EXEC | `kiki_Inf_tv.append(data_list.get(0))` // Record division code from input (レコード区分) |
| 68 | EXEC | `kiki_Inf_tv.append(KAIGYOU_CODE)` // Line feed terminator [-> KAIGYOU_CODE="
"] |

> Note: The final append sequence writes all 50 field values (idx 1–49) separated by commas, then an additional trailing comma, then `data_list.get(0)` (the record division field), and finally the newline code. This produces a complete CSV record line terminated by `
`.

**Block 5** — [EXEC / RETURN] (L2413)
Debug log for method completion.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `super.logPrint.printDebugLog("setKikiInfTv_END")` // Log method end |
| 2 | RETURN | `void` // Implicit return — method always returns void |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `kiki_Inf_tv` | Field | Equipment Information (TV) — the StringBuilder holding assembled TV terminal equipment data for output |
| `data_list` | Field | CSV data list — parsed fields from a single input CSV record |
| `err_cunt` | Field | Error count — tracks the number of field validation failures in the current record |
| `CONMA` | Constant | Comma (`,`) — CSV field delimiter |
| `KAIGYOU_CODE` | Constant | Newline (`
`) — record terminator / line feed |
| `REC_DOV_D1` | Constant | Record Division D1 — identifies this record type as TV equipment information (機器情報(テレビ)) |
| V-ONU | Business term | Virtual Optical Network Unit — the customer-premises ONT/ONU device for FTTH broadband service |
| STB | Acronym | Set-Top Box — digital television receiver box used for cable/satellite IPTV services |
| B-CAS | Acronym | Broadcast Content Protection System — Japanese smart card-based content protection standard for digital broadcasting |
| C-CAS | Acronym | Commercial CAS — a variant of the B-CAS content protection system used for commercial/broadcast services |
| 連携年月日 | Field | Connection Date — the date the service circuit was connected/activated |
| 通番 | Field | Service Number (通番) — internal service sequence number for the installation |
| 新規変更区分 | Field | New/Change Division — indicates whether this record represents a new installation (新規) or a change/modification (変更) |
| 工事案件種別コード | Field | Work Project Type Code — classifies the type of installation work (e.g., new build, repair, modification) |
| 工事案件番号 | Field | Work Project Number — unique identifier for the installation work order |
| 工事会社配送先コード | Field | Work Company Delivery Destination Code — identifies the contractor/subcontractor assigned to the work |
| 機器型式コード | Field | Device Model Code — the product model identifier for the installed equipment |
| 機器製造番号 | Field | Device Serial Number — unique serial number of the physical equipment unit |
| 機器提供サービス契約番号 | Field | Equipment Provision Service Contract Number — the service contract number under which the equipment is provisioned |
| 自宅機器異動コード | Field | Indoor Device Error/Change Code — indicates the type of change or error state for indoor equipment |
| 自宅機器異動区分 | Field | Indoor Device Error/Change Division — categorization of the type of indoor equipment change |
| STB無メニュー | Field | STB Non-Menu — flag indicating whether the STB has a non-menu (non-interactive) configuration |
| 契約変更コメント | Field | Contract Change Comment — free-text comment about contract modifications (validated as full-width characters) |
| `isHannkakuESuuji` | Method | Half-width Alphanumeric validation — checks that a field contains only half-width alphanumeric characters, within a specified max length, with optional mandatory flag |
| `isHannkakuESuuji2` | Method | Half-width Alphanumeric variant 2 — same as `isHannkakuESuuji` but with different character set rules (likely allowing additional characters) |
| `isHannkakuSuuji1` | Method | Half-width Numeric validation — checks that a field contains only half-width numeric digits |
| `isYearMonthDay` | Method | Date format validation — checks that a field conforms to a year-month-day date format |
| `isZenkaku` | Method | Full-width character validation — checks that a field contains only full-width (Zen-kaku) characters |
| `charConverter` | Method | Character encoding converter — performs full-width/half-width conversion or character set transformation on the input string |
| K-Opticom | Business term | Japanese broadband ISP (Fujitsu-operated) providing FTTH and cable TV services |
| 機器情報(テレビ) | Field/Domain | Equipment Information (TV) — the business domain for TV/cable set-top box and V-ONU terminal equipment data |
