From 1c824c70188d366b8641d358d2e68652209ec072 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:20:55 +0900 Subject: [PATCH 01/16] chore: initialize work notes for issue #274 (revised approach) Co-Authored-By: Claude Sonnet 4.6 --- .pr/00274/notes.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .pr/00274/notes.md diff --git a/.pr/00274/notes.md b/.pr/00274/notes.md new file mode 100644 index 000000000..916311403 --- /dev/null +++ b/.pr/00274/notes.md @@ -0,0 +1,7 @@ +# Notes + +## 2026-03-31 + +### TODO + +- [ ] Define revised approach for Phase E and Phase D reliability From 8d4f2dae816fccc007c69b8a96797e3e5c4ac15f Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:51:49 +0900 Subject: [PATCH 02/16] fix: add diff guard to Phase E to prevent fix-induced regressions _extract_allowed_sections + _apply_diff_guard in phase_e_fix.py revert any section not referenced in findings back to its input state. Empty-fix detection rejects LLM output that changes nothing in scope. E2E mock updated to return per-section findings so diff guard passes. Co-Authored-By: Claude Sonnet 4.6 --- .../knowledge-creator/scripts/phase_e_fix.py | 109 ++++++++ tools/knowledge-creator/tests/e2e/test_e2e.py | 21 +- .../tests/ut/test_diff_guard.py | 247 ++++++++++++++++++ 3 files changed, 370 insertions(+), 7 deletions(-) create mode 100644 tools/knowledge-creator/tests/ut/test_diff_guard.py diff --git a/tools/knowledge-creator/scripts/phase_e_fix.py b/tools/knowledge-creator/scripts/phase_e_fix.py index 7e52b2a87..4aa298e98 100644 --- a/tools/knowledge-creator/scripts/phase_e_fix.py +++ b/tools/knowledge-creator/scripts/phase_e_fix.py @@ -4,11 +4,102 @@ """ import os +import re import json from concurrent.futures import ThreadPoolExecutor, as_completed from common import load_json, write_json, read_file, run_claude as _default_run_claude, aggregate_cc_metrics from logger import get_logger + +def _extract_allowed_sections(findings): + """Return (section_ids, is_full_rebuild) from findings list. + + section_ids: set of section IDs (e.g. {'s1', 's3'}) that Phase E is + allowed to modify. Derived from the 'location' field of each finding. + + is_full_rebuild: True when a no_knowledge_content_invalid finding is + present, meaning the entire file may be restructured. + """ + section_ids = set() + is_full_rebuild = False + + for f in findings: + cat = f.get("category", "") + if cat == "no_knowledge_content_invalid": + is_full_rebuild = True + break + loc = f.get("location", "") + # Extract sN identifiers from the location string + for m in re.findall(r'\bs(\d+)\b', loc): + section_ids.add(f"s{m}") + + return section_ids, is_full_rebuild + + +def _apply_diff_guard(input_knowledge, output_knowledge, allowed_sections, + is_full_rebuild=False): + """Revert any changes outside the scope of the fix instruction. + + For sections not listed in allowed_sections, the output is overwritten + with the input value — making collateral damage physically impossible. + + Index hints follow the same rule: only entries whose section ID is in + allowed_sections may change. + + Top-level metadata (id, title, official_doc_urls, no_knowledge_content) + is always restored from the input unless is_full_rebuild is True. + + Returns the guarded knowledge object. + """ + if is_full_rebuild: + # no_knowledge_content_invalid: allow the LLM to fully restructure + return output_knowledge + + guarded = dict(output_knowledge) + + # Protect metadata + for field in ("id", "title", "no_knowledge_content", "official_doc_urls"): + if field in input_knowledge: + guarded[field] = input_knowledge[field] + + # Protect sections not in scope + input_sections = input_knowledge.get("sections", {}) + output_sections = dict(output_knowledge.get("sections", {})) + + # Revert out-of-scope sections to input values + for sid, content in input_sections.items(): + if sid not in allowed_sections: + output_sections[sid] = content + + # Remove any new sections added by the LLM that are not in scope + for sid in list(output_sections.keys()): + if sid not in input_sections and sid not in allowed_sections: + del output_sections[sid] + + guarded["sections"] = output_sections + + # Protect index hints for sections not in scope + input_index = {entry["id"]: entry for entry in input_knowledge.get("index", [])} + output_index = list(output_knowledge.get("index", [])) + guarded_index = [] + + seen = set() + for entry in output_index: + sid = entry.get("id") + seen.add(sid) + if sid not in allowed_sections and sid in input_index: + guarded_index.append(dict(input_index[sid])) + else: + guarded_index.append(entry) + + # Restore index entries removed by the LLM that are not in scope + for sid, entry in input_index.items(): + if sid not in allowed_sections and sid not in seen: + guarded_index.append(dict(entry)) + + guarded["index"] = guarded_index + return guarded + KNOWLEDGE_SCHEMA = { "type": "object", "required": ["id", "title", "no_knowledge_content", "official_doc_urls", "index", "sections"], @@ -93,6 +184,24 @@ def fix_one(self, file_info) -> dict: return {"status": "error", "id": file_id, "error": f"Output too small: {output_sec_chars}/{input_sec_chars} chars"} + # Diff guard: revert changes outside the scope of findings + finding_list = findings.get("findings", []) + allowed_sections, is_full_rebuild = _extract_allowed_sections(finding_list) + fixed = _apply_diff_guard(knowledge, fixed, allowed_sections, + is_full_rebuild=is_full_rebuild) + + # Reject if no authorized sections actually changed + if not is_full_rebuild: + input_sections = knowledge.get("sections", {}) + changed = sum( + 1 for sid in allowed_sections + if input_sections.get(sid) != fixed.get("sections", {}).get(sid) + ) + if changed == 0: + self.logger.warning(f" WARNING: {file_id}: diff guard found no changes in allowed sections") + return {"status": "error", "id": file_id, + "error": "Diff guard: no changes in allowed sections"} + write_json( f"{self.ctx.knowledge_cache_dir}/{file_info['output_path']}", fixed ) diff --git a/tools/knowledge-creator/tests/e2e/test_e2e.py b/tools/knowledge-creator/tests/e2e/test_e2e.py index 2c6b81d0b..cbd6d4707 100644 --- a/tools/knowledge-creator/tests/e2e/test_e2e.py +++ b/tools/knowledge-creator/tests/e2e/test_e2e.py @@ -302,20 +302,27 @@ def mock_fn(prompt, json_schema=None, log_dir=None, file_id=None, **kwargs): ) elif "findings" in schema_str: - # Phase D: always has_issues + # Phase D: always has_issues, one finding per section so diff guard + # allows Phase E to fix all sections. counter["D"].append(file_id) + knowledge = expected_knowledge_cache.get(file_id, {}) + section_ids = list(knowledge.get("sections", {}).keys()) or ["s1"] + findings = [ + { + "category": "omission", + "severity": "minor", + "location": sid, + "description": "Missing detail", + } + for sid in section_ids + ] return subprocess.CompletedProcess( args=["claude"], returncode=0, stdout=json.dumps({ "file_id": file_id, "status": "has_issues", - "findings": [{ - "category": "omission", - "severity": "minor", - "location": "s1", - "description": "Missing detail", - }], + "findings": findings, }), stderr="", ) diff --git a/tools/knowledge-creator/tests/ut/test_diff_guard.py b/tools/knowledge-creator/tests/ut/test_diff_guard.py new file mode 100644 index 000000000..4b84779b0 --- /dev/null +++ b/tools/knowledge-creator/tests/ut/test_diff_guard.py @@ -0,0 +1,247 @@ +"""Phase E diff guard unit tests. + +Tests for _extract_allowed_sections and _apply_diff_guard, plus +integration tests verifying fix_one() applies the guard correctly. +""" +import os +import json +import subprocess +import pytest +import sys + +TOOL_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.insert(0, os.path.join(TOOL_DIR, "scripts")) + +from conftest import load_fixture +from common import load_json, write_json + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +def _make_knowledge(sections=None, index=None, extra=None): + k = { + "id": "test-file", + "title": "Test", + "no_knowledge_content": False, + "official_doc_urls": ["https://example.com"], + "index": index or [ + {"id": "s1", "title": "Section 1", "hints": ["Hint1"]}, + {"id": "s2", "title": "Section 2", "hints": ["Hint2"]}, + ], + "sections": sections or { + "s1": "original s1 content here that is long enough", + "s2": "original s2 content here that is long enough", + }, + } + if extra: + k.update(extra) + return k + + +def _mock_fn(output): + def fn(prompt, json_schema=None, log_dir=None, file_id=None, **kwargs): + return subprocess.CompletedProcess( + args=["claude"], returncode=0, + stdout=json.dumps(output), stderr="" + ) + return fn + + +# --------------------------------------------------------------------------- +# _extract_allowed_sections +# --------------------------------------------------------------------------- + +class TestExtractAllowedSections: + + def test_extracts_section_ids_from_locations(self): + from phase_e_fix import _extract_allowed_sections + findings = [ + {"category": "omission", "severity": "critical", + "location": "s1", "description": "missing"}, + {"category": "fabrication", "severity": "critical", + "location": "s3", "description": "fabricated"}, + ] + ids, is_full_rebuild = _extract_allowed_sections(findings) + assert "s1" in ids + assert "s3" in ids + assert not is_full_rebuild + + def test_no_knowledge_content_invalid_is_full_rebuild(self): + from phase_e_fix import _extract_allowed_sections + findings = [ + {"category": "no_knowledge_content_invalid", "severity": "critical", + "location": "file", "description": "has content"}, + ] + ids, is_full_rebuild = _extract_allowed_sections(findings) + assert is_full_rebuild + + def test_hints_missing_extracts_section_id(self): + from phase_e_fix import _extract_allowed_sections + findings = [ + {"category": "hints_missing", "severity": "minor", + "location": "s2", "description": "missing hints"}, + ] + ids, is_full_rebuild = _extract_allowed_sections(findings) + assert "s2" in ids + assert not is_full_rebuild + + def test_empty_findings_returns_empty_set(self): + from phase_e_fix import _extract_allowed_sections + ids, is_full_rebuild = _extract_allowed_sections([]) + assert len(ids) == 0 + assert not is_full_rebuild + + +# --------------------------------------------------------------------------- +# _apply_diff_guard — reverts unscoped, keeps scoped +# --------------------------------------------------------------------------- + +class TestDiffGuardReverts: + + def test_diff_guard_reverts_unscoped_sections(self): + """Changes to sections not in allowed_sections are reverted to input.""" + from phase_e_fix import _apply_diff_guard + input_k = _make_knowledge() + output_k = _make_knowledge(sections={ + "s1": "CHANGED s1 — not in scope", + "s2": "FIXED s2 — in scope", + }) + guarded = _apply_diff_guard(input_k, output_k, {"s2"}) + assert guarded["sections"]["s1"] == "original s1 content here that is long enough" + assert guarded["sections"]["s2"] == "FIXED s2 — in scope" + + def test_diff_guard_preserves_scoped_sections(self): + """Changes to sections in allowed_sections are kept.""" + from phase_e_fix import _apply_diff_guard + input_k = _make_knowledge() + output_k = _make_knowledge(sections={ + "s1": "original s1 content here that is long enough", + "s2": "FIXED s2 content with new info that is long enough", + }) + guarded = _apply_diff_guard(input_k, output_k, {"s2"}) + assert guarded["sections"]["s2"] == "FIXED s2 content with new info that is long enough" + + def test_diff_guard_protects_metadata(self): + """Top-level fields (id, title, official_doc_urls) are preserved from input.""" + from phase_e_fix import _apply_diff_guard + input_k = _make_knowledge() + output_k = _make_knowledge(sections={ + "s1": "FIXED s1 content here that is long enough", + "s2": "original s2 content here that is long enough", + }) + output_k["id"] = "CHANGED-id" + output_k["title"] = "CHANGED title" + output_k["official_doc_urls"] = [] + guarded = _apply_diff_guard(input_k, output_k, {"s1"}) + assert guarded["id"] == "test-file" + assert guarded["title"] == "Test" + assert guarded["official_doc_urls"] == ["https://example.com"] + + def test_diff_guard_allows_hints_update(self): + """hints_missing finding (section in allowed_sections) allows hints modification.""" + from phase_e_fix import _apply_diff_guard + input_k = _make_knowledge() + output_k = _make_knowledge(index=[ + {"id": "s1", "title": "Section 1", "hints": ["Hint1", "NewHint"]}, # allowed + {"id": "s2", "title": "Section 2", "hints": ["CHANGED"]}, # not allowed + ]) + guarded = _apply_diff_guard(input_k, output_k, {"s1"}) + s1_entry = next(e for e in guarded["index"] if e["id"] == "s1") + s2_entry = next(e for e in guarded["index"] if e["id"] == "s2") + assert "NewHint" in s1_entry["hints"] + assert s2_entry["hints"] == ["Hint2"] + + def test_diff_guard_full_rebuild_passes_through(self): + """no_knowledge_content_invalid: entire output passes through unchanged.""" + from phase_e_fix import _apply_diff_guard + input_k = {"id": "x", "title": "X", "no_knowledge_content": True, + "official_doc_urls": [], "index": [], "sections": {}} + output_k = {"id": "x", "title": "X rebuilt", "no_knowledge_content": False, + "official_doc_urls": ["https://example.com"], + "index": [{"id": "s1", "title": "S1", "hints": ["H1"]}], + "sections": {"s1": "new content"}} + # For full rebuild, caller should pass all_sections; guard accepts it as-is + guarded = _apply_diff_guard(input_k, output_k, set(), is_full_rebuild=True) + assert guarded["no_knowledge_content"] is False + assert guarded["sections"]["s1"] == "new content" + + +# --------------------------------------------------------------------------- +# fix_one() integration — diff guard wired in +# --------------------------------------------------------------------------- + +class TestDiffGuardIntegratedInFixOne: + + def _setup_file(self, ctx, file_id, knowledge): + file_info = { + "id": file_id, + "source_path": f".lw/nab-official/v6/nablarch-document/ja/{file_id}.rst", + "output_path": f"component/handlers/{file_id}.json", + "format": "rst", + } + src = f"{ctx.repo}/{file_info['source_path']}" + os.makedirs(os.path.dirname(src), exist_ok=True) + with open(src, "w") as f: + f.write("source content") + kpath = f"{ctx.knowledge_cache_dir}/{file_info['output_path']}" + os.makedirs(os.path.dirname(kpath), exist_ok=True) + write_json(kpath, knowledge) + return file_info, kpath + + def test_diff_guard_integrated_in_fix_one(self, ctx): + """fix_one reverts unscoped sections, keeps scoped changes.""" + from phase_e_fix import PhaseEFix + + input_knowledge = _make_knowledge(sections={ + "s1": "original s1 content here that is long enough", + "s2": "original s2 content here that is long enough", + }) + # LLM changes both s1 (scoped) and s2 (not scoped) + fix_output = _make_knowledge(sections={ + "s1": "FIXED s1 content here that is long enough", + "s2": "COLLATERAL DAMAGE to s2 should be reverted", + }) + + file_info, kpath = self._setup_file(ctx, "guard-int-test", input_knowledge) + + os.makedirs(ctx.findings_dir, exist_ok=True) + write_json(f"{ctx.findings_dir}/guard-int-test_r1.json", { + "file_id": "guard-int-test", "status": "has_issues", + "findings": [{"category": "omission", "severity": "critical", + "location": "s1", "description": "missing info"}] + }) + + fixer = PhaseEFix(ctx, run_claude_fn=_mock_fn(fix_output)) + fixer.round_num = 1 + result = fixer.fix_one(file_info) + + assert result["status"] == "fixed" + saved = load_json(kpath) + assert saved["sections"]["s1"] == "FIXED s1 content here that is long enough" + assert saved["sections"]["s2"] == "original s2 content here that is long enough" + + def test_diff_guard_rejects_empty_fix(self, ctx): + """fix_one returns error when LLM makes no changes in allowed sections.""" + from phase_e_fix import PhaseEFix + + input_knowledge = _make_knowledge() + # LLM returns unchanged content for s1 (the scoped section) + fix_output = _make_knowledge() # identical to input + + file_info, kpath = self._setup_file(ctx, "empty-fix-test", input_knowledge) + + os.makedirs(ctx.findings_dir, exist_ok=True) + write_json(f"{ctx.findings_dir}/empty-fix-test_r1.json", { + "file_id": "empty-fix-test", "status": "has_issues", + "findings": [{"category": "omission", "severity": "critical", + "location": "s1", "description": "missing info"}] + }) + + fixer = PhaseEFix(ctx, run_claude_fn=_mock_fn(fix_output)) + fixer.round_num = 1 + result = fixer.fix_one(file_info) + + assert result["status"] == "error" + assert "no changes" in result.get("error", "").lower() From fee19347c80579db92a3939db4b71e7ff212f614 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:51:53 +0900 Subject: [PATCH 03/16] fix: add severity flip detection logging to Phase D _detect_severity_flips compares current round findings against the previous round and logs a WARNING for any finding whose severity changed at the same location+category. Wired into check_one for round >= 2 to track D-1 instability in production runs. Co-Authored-By: Claude Sonnet 4.6 --- .../scripts/phase_d_content_check.py | 26 +++ .../tests/ut/test_severity_flip.py | 151 ++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 tools/knowledge-creator/tests/ut/test_severity_flip.py diff --git a/tools/knowledge-creator/scripts/phase_d_content_check.py b/tools/knowledge-creator/scripts/phase_d_content_check.py index 4ff83463d..27a3f2bd3 100644 --- a/tools/knowledge-creator/scripts/phase_d_content_check.py +++ b/tools/knowledge-creator/scripts/phase_d_content_check.py @@ -94,6 +94,29 @@ def _build_prompt(self, file_info, knowledge, source_content, warnings=None): prompt = prompt.replace("{CONTENT_WARNINGS}", "なし") return prompt + def _detect_severity_flips(self, current_findings, prev_findings_path): + """Log a warning for each finding whose severity changed since the previous round. + + current_findings: findings dict for the current round + prev_findings_path: path to the previous round's findings JSON file + """ + if not os.path.exists(prev_findings_path): + return + + prev = load_json(prev_findings_path) + prev_map = {} + for f in prev.get("findings", []): + key = (f.get("location", ""), f.get("category", "")) + prev_map[key] = f.get("severity", "") + + for f in current_findings.get("findings", []): + key = (f.get("location", ""), f.get("category", "")) + if key in prev_map and prev_map[key] != f.get("severity", ""): + self.logger.warning( + f"Severity flip: {key[0]} [{key[1]}]: " + f"{prev_map[key]} → {f.get('severity')}" + ) + def check_one(self, file_info) -> dict: file_id = file_info["id"] findings_path = f"{self.ctx.findings_dir}/{file_id}_r{self.round_num}.json" @@ -130,6 +153,9 @@ def check_one(self, file_info) -> dict: if result.returncode == 0: findings = json.loads(result.stdout) write_json(findings_path, findings) + if self.round_num > 1: + prev_path = f"{self.ctx.findings_dir}/{file_id}_r{self.round_num - 1}.json" + self._detect_severity_flips(findings, prev_path) return findings except Exception: pass diff --git a/tools/knowledge-creator/tests/ut/test_severity_flip.py b/tools/knowledge-creator/tests/ut/test_severity_flip.py new file mode 100644 index 000000000..8a2968ce0 --- /dev/null +++ b/tools/knowledge-creator/tests/ut/test_severity_flip.py @@ -0,0 +1,151 @@ +"""Phase D severity flip detection unit tests.""" +import os +import json +import logging +import pytest +import sys + +TOOL_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.insert(0, os.path.join(TOOL_DIR, "scripts")) + +from common import write_json + + +class TestSeverityFlipDetection: + + def test_severity_flip_detection(self, ctx, caplog): + """Same location+category with different severity across rounds → logged as warning.""" + from phase_d_content_check import PhaseDContentCheck + + os.makedirs(ctx.findings_dir, exist_ok=True) + write_json(f"{ctx.findings_dir}/flip-test_r1.json", { + "file_id": "flip-test", "status": "has_issues", + "findings": [ + {"category": "omission", "severity": "critical", + "location": "s1", "description": "old finding"}, + ] + }) + + checker = PhaseDContentCheck(ctx) + # Ensure propagation AFTER init (setup_logger resets it to False) + logging.getLogger("knowledge_creator").propagate = True + current = { + "file_id": "flip-test", "status": "has_issues", + "findings": [ + {"category": "omission", "severity": "minor", + "location": "s1", "description": "same location, flipped severity"}, + ] + } + prev_path = f"{ctx.findings_dir}/flip-test_r1.json" + + with caplog.at_level(logging.WARNING, logger="knowledge_creator"): + checker._detect_severity_flips(current, prev_path) + + assert any( + "flip" in r.message.lower() or "severity" in r.message.lower() + for r in caplog.records + ) + + def test_no_flip_when_severity_same(self, ctx, caplog): + """Same severity in both rounds → no warning.""" + from phase_d_content_check import PhaseDContentCheck + + os.makedirs(ctx.findings_dir, exist_ok=True) + write_json(f"{ctx.findings_dir}/stable-test_r1.json", { + "file_id": "stable-test", "status": "has_issues", + "findings": [ + {"category": "fabrication", "severity": "critical", + "location": "s2", "description": "same"}, + ] + }) + + checker = PhaseDContentCheck(ctx) + current = { + "file_id": "stable-test", "status": "has_issues", + "findings": [ + {"category": "fabrication", "severity": "critical", + "location": "s2", "description": "same content"}, + ] + } + prev_path = f"{ctx.findings_dir}/stable-test_r1.json" + + with caplog.at_level(logging.WARNING, logger="knowledge_creator"): + checker._detect_severity_flips(current, prev_path) + + assert len(caplog.records) == 0 + + def test_no_flip_when_prev_file_missing(self, ctx, caplog): + """No warning when previous round file does not exist.""" + from phase_d_content_check import PhaseDContentCheck + + checker = PhaseDContentCheck(ctx) + current = { + "file_id": "new-file", "status": "has_issues", + "findings": [ + {"category": "omission", "severity": "critical", + "location": "s1", "description": "first time"}, + ] + } + prev_path = f"{ctx.findings_dir}/nonexistent_r1.json" + + with caplog.at_level(logging.WARNING, logger="knowledge_creator"): + checker._detect_severity_flips(current, prev_path) + + assert len(caplog.records) == 0 + + def test_flip_detection_wired_in_check_one(self, ctx, caplog): + """check_one calls flip detection for round >= 2.""" + from phase_d_content_check import PhaseDContentCheck + import subprocess + + os.makedirs(ctx.findings_dir, exist_ok=True) + # Round 1 findings: critical + write_json(f"{ctx.findings_dir}/wire-test_r1.json", { + "file_id": "wire-test", "status": "has_issues", + "findings": [ + {"category": "omission", "severity": "critical", + "location": "s1", "description": "r1 finding"}, + ] + }) + + # Round 2 LLM output: same location but minor + findings_r2 = { + "file_id": "wire-test", "status": "has_issues", + "findings": [ + {"category": "omission", "severity": "minor", + "location": "s1", "description": "r2 finding"}, + ] + } + + def mock_fn(prompt, json_schema=None, log_dir=None, file_id=None, **kwargs): + return subprocess.CompletedProcess( + args=["claude"], returncode=0, + stdout=json.dumps(findings_r2), stderr="" + ) + + checker = PhaseDContentCheck(ctx, run_claude_fn=mock_fn) + checker.round_num = 2 + + file_info = { + "id": "wire-test", + "source_path": ".lw/nab-official/v6/nablarch-document/ja/wire-test.rst", + "output_path": "component/handlers/wire-test.json", + "format": "rst", + } + src = f"{ctx.repo}/{file_info['source_path']}" + os.makedirs(os.path.dirname(src), exist_ok=True) + with open(src, "w") as f: + f.write("source content") + from common import write_json as wj + kpath = f"{ctx.knowledge_cache_dir}/{file_info['output_path']}" + os.makedirs(os.path.dirname(kpath), exist_ok=True) + wj(kpath, {"id": "wire-test", "title": "T", "no_knowledge_content": False, + "official_doc_urls": [], "index": [], "sections": {"s1": "content"}}) + + with caplog.at_level(logging.WARNING, logger="knowledge_creator"): + checker.check_one(file_info) + + assert any( + "flip" in r.message.lower() or "severity" in r.message.lower() + for r in caplog.records + ) From 1e6f432a94553f44db741403d8e233fa2592aacb Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:51:57 +0900 Subject: [PATCH 04/16] fix: add prompt constraints to fix.md and content_check.md fix.md: E-2 verbatim extraction rule, E-5 no-fabrication-from-patterns rule, E-3 preserve source notation, scope constraint. content_check.md: explicit severity assignment criteria for V1/V2, D-1 stability rule requiring justification in description field. Co-Authored-By: Claude Sonnet 4.6 --- .../prompts/content_check.md | 18 +++++++++++++-- tools/knowledge-creator/prompts/fix.md | 23 +++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/tools/knowledge-creator/prompts/content_check.md b/tools/knowledge-creator/prompts/content_check.md index d55bf2929..8a0936faa 100644 --- a/tools/knowledge-creator/prompts/content_check.md +++ b/tools/knowledge-creator/prompts/content_check.md @@ -34,10 +34,14 @@ If the source justifies the current state (e.g., the source section is genuinely ## Validation Checklist -### V1: Omission Check (severity: critical) +### V1: Omission Check Read the source file section by section. Identify every piece of information that an AI agent would need to make correct implementation decisions. For each one, confirm it exists in the knowledge file. +**Severity assignment:** +- **critical**: The missing information would cause an AI agent to give incorrect or incomplete implementation guidance (e.g., missing required configuration, missing constraint, missing API specification). +- **minor**: The missing information is supplementary (e.g., optional usage notes, redundant examples, style preferences). + **What counts as decision-necessary information:** - Constraints and prerequisites (ordering, required configurations, preconditions) - Warnings about incorrect behavior or failure modes @@ -64,10 +68,14 @@ Knowledge files are optimized for AI assistants to answer questions. **Accept om **Rule:** If an element serves only as navigation and contains no substantive explanation, code examples, or constraints → **accept its omission**. The detailed content in target sections is sufficient for AI to answer questions. -### V2: Fabrication Check (severity: critical) +### V2: Fabrication Check Read the knowledge file section by section. For every statement, confirm it has a basis in the source file. +**Severity assignment:** +- **critical**: The fabricated content states an incorrect fact, rule, or constraint that an AI agent would follow when giving implementation guidance. +- **minor**: The fabricated content is harmless (e.g., a generic introductory sentence, metadata that does not affect implementation decisions). + **Check each of these:** - Every sentence in description fields — does the source say this? - Every item in warnings/notes arrays — does the source contain this warning or note? @@ -78,6 +86,12 @@ Read the knowledge file section by section. For every statement, confirm it has For each fabrication found, record: "FABRICATION: section {section_id} — {the statement in knowledge file} — no basis found in source" +**D-1: Severity stability rule** + +Once you assign a severity to a finding, apply the same criteria consistently. +If you are re-checking a file in a later round, do not change a severity unless the content itself has changed. +Justify every severity assignment in the description field using the criteria above (e.g., "critical: missing required configuration property"). + ### V3: Section Issues (severity: minor) - Count split-level headings in source (RST: h2=text+------, MD: ##). Compare with knowledge section count. diff --git a/tools/knowledge-creator/prompts/fix.md b/tools/knowledge-creator/prompts/fix.md index 2bddca8a5..31eab74a8 100644 --- a/tools/knowledge-creator/prompts/fix.md +++ b/tools/knowledge-creator/prompts/fix.md @@ -30,6 +30,29 @@ For each finding, apply the fix: - **section_issue**: Fix the section structure as described in the finding. - **no_knowledge_content_invalid**: The file was incorrectly marked as `no_knowledge_content: true` but the source has Layer A/B content. Set `no_knowledge_content: false`, then extract all Layer A/B content from the source into proper sections following the same rules as generate.md Steps 2-6. Build index[] and sections{} normally. +**E-2: Verbatim extraction rule** + +When adding content to fix an omission, extract the exact wording from the source. +Do not paraphrase, summarize, or expand beyond what the source says. +Decision rule: if you cannot find the exact text in the source, do not add it. + +**E-5: No fabrication from patterns rule** + +Do not infer explicit rules, constraints, or requirements from patterns observed in code examples or implicit usage. +Only state something as a rule if the source explicitly declares it as one (e.g., "must", "should", "required", "do not"). +If the source only shows an example without commentary, reproduce the example — do not convert it into a stated rule. + +**E-3: Preserve source notation** + +Do not correct RST special syntax, typos, or non-standard notation found in the source. +If the source contains `.. code-block:: jave` (typo), preserve it as-is. +Your role is to extract information faithfully, not to fix source errors. + +**Scope constraint** + +Only modify sections referenced in the findings above. +Do not change sections that have no finding. Copy them exactly from the current knowledge file. + After all fixes, verify: - Every index[].id has a matching key in sections and vice versa - Section IDs follow sequential format: `s1`, `s2`, `s3`, ... From 16b7fe3ea3061afe5f9e7a026395a679ff328eb3 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:54:40 +0900 Subject: [PATCH 05/16] fix: apply expert review improvements to diff guard and D-1 rule phase_e_fix.py: clarify comments on full-rebuild path and new-section handling; make non-zero returncode path explicit with error message. phase_d_content_check.py: log error instead of silently swallowing exceptions in check_one, consistent with Phase E error handling. content_check.md: move D-1 stability rule to a top-level General Rules section so it clearly applies to all V1-V5 checks, not just V2. test_severity_flip.py: remove redundant write_json import alias. Co-Authored-By: Claude Sonnet 4.6 --- tools/knowledge-creator/prompts/content_check.md | 14 ++++++++------ .../scripts/phase_d_content_check.py | 4 ++-- tools/knowledge-creator/scripts/phase_e_fix.py | 7 +++++-- .../tests/ut/test_severity_flip.py | 3 +-- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/tools/knowledge-creator/prompts/content_check.md b/tools/knowledge-creator/prompts/content_check.md index 8a0936faa..1716ac1d5 100644 --- a/tools/knowledge-creator/prompts/content_check.md +++ b/tools/knowledge-creator/prompts/content_check.md @@ -32,6 +32,14 @@ If the source justifies the current state (e.g., the source section is genuinely {CONTENT_WARNINGS} +## General Rules + +**D-1: Severity stability rule** + +Apply severity criteria consistently across all checks (V1–V5). +If you are re-checking a file in a later round, do not change a severity unless the content itself has changed. +Justify every severity assignment in the description field using the criteria below (e.g., "critical: missing required configuration property"). + ## Validation Checklist ### V1: Omission Check @@ -86,12 +94,6 @@ Read the knowledge file section by section. For every statement, confirm it has For each fabrication found, record: "FABRICATION: section {section_id} — {the statement in knowledge file} — no basis found in source" -**D-1: Severity stability rule** - -Once you assign a severity to a finding, apply the same criteria consistently. -If you are re-checking a file in a later round, do not change a severity unless the content itself has changed. -Justify every severity assignment in the description field using the criteria above (e.g., "critical: missing required configuration property"). - ### V3: Section Issues (severity: minor) - Count split-level headings in source (RST: h2=text+------, MD: ##). Compare with knowledge section count. diff --git a/tools/knowledge-creator/scripts/phase_d_content_check.py b/tools/knowledge-creator/scripts/phase_d_content_check.py index 27a3f2bd3..645c1a6c1 100644 --- a/tools/knowledge-creator/scripts/phase_d_content_check.py +++ b/tools/knowledge-creator/scripts/phase_d_content_check.py @@ -157,8 +157,8 @@ def check_one(self, file_info) -> dict: prev_path = f"{self.ctx.findings_dir}/{file_id}_r{self.round_num - 1}.json" self._detect_severity_flips(findings, prev_path) return findings - except Exception: - pass + except Exception as e: + self.logger.error(f"check_one failed for {file_id}: {e}") return {"file_id": file_id, "status": "error", "findings": []} diff --git a/tools/knowledge-creator/scripts/phase_e_fix.py b/tools/knowledge-creator/scripts/phase_e_fix.py index 4aa298e98..eff0580cb 100644 --- a/tools/knowledge-creator/scripts/phase_e_fix.py +++ b/tools/knowledge-creator/scripts/phase_e_fix.py @@ -26,6 +26,7 @@ def _extract_allowed_sections(findings): for f in findings: cat = f.get("category", "") if cat == "no_knowledge_content_invalid": + # Full rebuild bypasses the guard entirely; section_ids are not needed is_full_rebuild = True break loc = f.get("location", "") @@ -71,7 +72,8 @@ def _apply_diff_guard(input_knowledge, output_knowledge, allowed_sections, if sid not in allowed_sections: output_sections[sid] = content - # Remove any new sections added by the LLM that are not in scope + # Remove any new sections added by the LLM that were not in the input + # and are not in allowed_sections; new sections in scope are kept. for sid in list(output_sections.keys()): if sid not in input_sections and sid not in allowed_sections: del output_sections[sid] @@ -209,7 +211,8 @@ def fix_one(self, file_info) -> dict: except Exception as e: return {"status": "error", "id": file_id, "error": str(e)} - return {"status": "error", "id": file_id} + # LLM returned non-zero exit code + return {"status": "error", "id": file_id, "error": "CC returned non-zero exit code"} def run(self, target_ids, round_num=1) -> dict: classified = load_json(self.ctx.classified_list_path) diff --git a/tools/knowledge-creator/tests/ut/test_severity_flip.py b/tools/knowledge-creator/tests/ut/test_severity_flip.py index 8a2968ce0..7a03ec19e 100644 --- a/tools/knowledge-creator/tests/ut/test_severity_flip.py +++ b/tools/knowledge-creator/tests/ut/test_severity_flip.py @@ -136,10 +136,9 @@ def mock_fn(prompt, json_schema=None, log_dir=None, file_id=None, **kwargs): os.makedirs(os.path.dirname(src), exist_ok=True) with open(src, "w") as f: f.write("source content") - from common import write_json as wj kpath = f"{ctx.knowledge_cache_dir}/{file_info['output_path']}" os.makedirs(os.path.dirname(kpath), exist_ok=True) - wj(kpath, {"id": "wire-test", "title": "T", "no_knowledge_content": False, + write_json(kpath, {"id": "wire-test", "title": "T", "no_knowledge_content": False, "official_doc_urls": [], "index": [], "sections": {"s1": "content"}}) with caplog.at_level(logging.WARNING, logger="knowledge_creator"): From 8ccdf0821b32618a505333146f5bdb2df6828852 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 10:55:18 +0900 Subject: [PATCH 06/16] chore: save software engineer expert review for PR #274 Co-Authored-By: Claude Sonnet 4.6 --- .pr/00274/review-by-software-engineer.md | 77 ++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .pr/00274/review-by-software-engineer.md diff --git a/.pr/00274/review-by-software-engineer.md b/.pr/00274/review-by-software-engineer.md new file mode 100644 index 000000000..153b6e3bb --- /dev/null +++ b/.pr/00274/review-by-software-engineer.md @@ -0,0 +1,77 @@ +--- +# Expert Review: Software Engineer + +**Date**: 2026-03-31 +**Reviewer**: AI Agent as Software Engineer +**Files Reviewed**: 7 files + +## Overall Assessment + +**Rating**: 4/5 +**Summary**: Well-targeted, focused change that addresses a real reliability problem with deterministic post-hoc enforcement. Implementation is generally solid with good test coverage. + +## Key Issues + +### Medium Priority + +1. **Comment on new-section handling in `_apply_diff_guard` was ambiguous** + - Description: "Remove any new sections added by the LLM that are not in scope" did not clarify that in-scope new sections are intentionally preserved + - Suggestion: Clarify comment to mention both cases + - Decision: Implement Now + - Reasoning: Trivial, improves maintainability + +2. **Silent `except Exception` in `check_one` discarded errors without logging** + - Description: Phase D swallowed all LLM call exceptions without logging, making debugging difficult. Phase E already logs errors. + - Suggestion: `except Exception as e: self.logger.error(f"check_one failed for {file_id}: {e}")` + - Decision: Implement Now + - Reasoning: Consistency with Phase E, important for observability + +3. **`_extract_allowed_sections` early-exit lacked explanatory comment** + - Description: The `break` on `no_knowledge_content_invalid` could mislead future maintainers + - Suggestion: Add comment explaining full-rebuild bypass + - Decision: Implement Now + - Reasoning: Documentation only, trivial + +### Low Priority + +4. **Redundant `write_json` import alias in test_severity_flip.py** + - Description: `from common import write_json as wj` inside test body when module-level import exists + - Suggestion: Use module-level `write_json` directly + - Decision: Implement Now + - Reasoning: Trivial cleanup + +5. **Non-zero returncode path in `fix_one` was implicit** + - Description: The fallthrough after `if result.returncode == 0` was a bare `return {"status": "error"}` without context + - Suggestion: Add explicit error message + - Decision: Implement Now + - Reasoning: Improves debuggability + +6. **D-1 stability rule placement was ambiguous (between V2 and V3)** + - Description: Reader could interpret it as a V2-only rule; it applies to all V1–V5 checks + - Suggestion: Move to a top-level "General Rules" section before the checklist + - Decision: Implement Now + - Reasoning: Clear improvement to prompt readability + +## Positive Aspects + +- Deterministic enforcement: diff guard applied post-LLM, not reliant on LLM following instructions +- Full-rebuild bypass correctly gated to `no_knowledge_content_invalid` only +- Unit tests cover both functions in isolation, integration tests verify wiring +- E2E test adaptation is minimal and correct +- Module-level functions (`_extract_allowed_sections`, `_apply_diff_guard`) are independently testable +- Prompt rules (E-2, E-5, E-3) are precise and actionable with concrete decision rules + +## Recommendations + +- Consider a Phase D post-processor that freezes severity from round 1 forward (unless section content changed) to make D-1 deterministic rather than instructional +- Consider a distinct `"status": "no_change"` for the empty-fix case to help callers decide whether to retry + +## Files Reviewed + +- `scripts/phase_e_fix.py` (source code) +- `scripts/phase_d_content_check.py` (source code) +- `prompts/fix.md` (prompt) +- `prompts/content_check.md` (prompt) +- `tests/ut/test_diff_guard.py` (tests) +- `tests/ut/test_severity_flip.py` (tests) +- `tests/e2e/test_e2e.py` (tests) From 35a4817b9bfb0f7b00a0cda2831117af5304d3a9 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 11:29:48 +0900 Subject: [PATCH 07/16] fix: address FB-1 to FB-4 from PR #285 review - FB-1: section_issue with no sN location now triggers full rebuild to prevent diff guard from nullifying structural fixes - FB-2: remove (severity: minor) from V3 header in content_check.md, move to inline note for consistency with V1/V2 - FB-3: add E-4 adjacent content preservation constraint to fix.md - FB-4: add two tests for section_issue V3-style location handling Co-Authored-By: Claude Sonnet 4.6 --- .../prompts/content_check.md | 4 ++- tools/knowledge-creator/prompts/fix.md | 5 ++++ .../knowledge-creator/scripts/phase_e_fix.py | 11 ++++++-- .../tests/ut/test_diff_guard.py | 27 +++++++++++++++++++ 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/tools/knowledge-creator/prompts/content_check.md b/tools/knowledge-creator/prompts/content_check.md index 1716ac1d5..c2267ea1d 100644 --- a/tools/knowledge-creator/prompts/content_check.md +++ b/tools/knowledge-creator/prompts/content_check.md @@ -94,7 +94,9 @@ Read the knowledge file section by section. For every statement, confirm it has For each fabrication found, record: "FABRICATION: section {section_id} — {the statement in knowledge file} — no basis found in source" -### V3: Section Issues (severity: minor) +### V3: Section Issues + +All findings in this section are minor by definition. - Count split-level headings in source (RST: h2=text+------, MD: ##). Compare with knowledge section count. - Check if any section has < 50 characters. diff --git a/tools/knowledge-creator/prompts/fix.md b/tools/knowledge-creator/prompts/fix.md index 31eab74a8..af740765d 100644 --- a/tools/knowledge-creator/prompts/fix.md +++ b/tools/knowledge-creator/prompts/fix.md @@ -48,6 +48,11 @@ Do not correct RST special syntax, typos, or non-standard notation found in the If the source contains `.. code-block:: jave` (typo), preserve it as-is. Your role is to extract information faithfully, not to fix source errors. +**E-4: Adjacent content preservation** + +When editing content within a section, copy all existing content outside the edited location exactly as it appears. +Do not alter sentences, values, or terms that are not directly related to the finding being fixed. + **Scope constraint** Only modify sections referenced in the findings above. diff --git a/tools/knowledge-creator/scripts/phase_e_fix.py b/tools/knowledge-creator/scripts/phase_e_fix.py index eff0580cb..fe3225abf 100644 --- a/tools/knowledge-creator/scripts/phase_e_fix.py +++ b/tools/knowledge-creator/scripts/phase_e_fix.py @@ -31,8 +31,15 @@ def _extract_allowed_sections(findings): break loc = f.get("location", "") # Extract sN identifiers from the location string - for m in re.findall(r'\bs(\d+)\b', loc): - section_ids.add(f"s{m}") + extracted = [f"s{m}" for m in re.findall(r'\bs(\d+)\b', loc)] + if cat == "section_issue" and not extracted: + # section_issue describes structural changes (e.g. "S9: Section count 2 < source + # headings 3") that may not reference a specific sN location. When no section + # ID can be parsed, we cannot safely scope the fix to individual sections, so + # treat this as a full rebuild to avoid the guard nullifying the fix. + is_full_rebuild = True + break + section_ids.update(extracted) return section_ids, is_full_rebuild diff --git a/tools/knowledge-creator/tests/ut/test_diff_guard.py b/tools/knowledge-creator/tests/ut/test_diff_guard.py index 4b84779b0..8d2028a32 100644 --- a/tools/knowledge-creator/tests/ut/test_diff_guard.py +++ b/tools/knowledge-creator/tests/ut/test_diff_guard.py @@ -93,6 +93,33 @@ def test_empty_findings_returns_empty_set(self): assert len(ids) == 0 assert not is_full_rebuild + def test_section_issue_with_v3_description_location_triggers_full_rebuild(self): + """section_issue finding with V3-style location (no sN ID) must trigger full rebuild. + + When LLM returns a location like "S9: Section count 2 < source headings 3", + the sN regex extracts nothing. Without the full-rebuild fallback the diff guard + would block the structural fix entirely. This test verifies the fallback fires. + """ + from phase_e_fix import _extract_allowed_sections + findings = [ + {"category": "section_issue", "severity": "minor", + "location": "S9: Section count 2 < source headings 3", + "description": "knowledge has 2 sections but source has 3 h2 headings"}, + ] + ids, is_full_rebuild = _extract_allowed_sections(findings) + assert is_full_rebuild, "section_issue with no sN location must fall back to full rebuild" + + def test_section_issue_with_sn_location_extracts_section_id(self): + """section_issue finding with a plain sN location is handled normally.""" + from phase_e_fix import _extract_allowed_sections + findings = [ + {"category": "section_issue", "severity": "minor", + "location": "s3", "description": "section too short"}, + ] + ids, is_full_rebuild = _extract_allowed_sections(findings) + assert "s3" in ids + assert not is_full_rebuild + # --------------------------------------------------------------------------- # _apply_diff_guard — reverts unscoped, keeps scoped From dfcacf44a1c4d339769aaade72e80efe97c08b49 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 15:11:19 +0900 Subject: [PATCH 08/16] fix: pass prior round findings to Phase D prompt to fix D-1 instability Root cause of D-1 bug: prior round findings were not passed to the content_check.md prompt, so the model had no anchor to judge whether a location was previously clean, leading to inconsistent verdicts across rounds for unchanged content. Co-Authored-By: Claude Sonnet 4.6 --- .../knowledge-creator/prompts/content_check.md | 9 ++++++++- .../scripts/phase_d_content_check.py | 18 ++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/tools/knowledge-creator/prompts/content_check.md b/tools/knowledge-creator/prompts/content_check.md index c2267ea1d..8180868e7 100644 --- a/tools/knowledge-creator/prompts/content_check.md +++ b/tools/knowledge-creator/prompts/content_check.md @@ -32,12 +32,19 @@ If the source justifies the current state (e.g., the source section is genuinely {CONTENT_WARNINGS} +## Prior Round Findings + +The following findings were reported in the previous round. +Use these as an anchor: do NOT report new findings for locations that were not flagged before, unless the knowledge file content at that location has changed since the previous round. + +{PRIOR_FINDINGS} + ## General Rules **D-1: Severity stability rule** Apply severity criteria consistently across all checks (V1–V5). -If you are re-checking a file in a later round, do not change a severity unless the content itself has changed. +If a location was clean in the previous round and the knowledge file content at that location has not changed, do not report a new finding for it now. Justify every severity assignment in the description field using the criteria below (e.g., "critical: missing required configuration property"). ## Validation Checklist diff --git a/tools/knowledge-creator/scripts/phase_d_content_check.py b/tools/knowledge-creator/scripts/phase_d_content_check.py index 645c1a6c1..0afb4d04d 100644 --- a/tools/knowledge-creator/scripts/phase_d_content_check.py +++ b/tools/knowledge-creator/scripts/phase_d_content_check.py @@ -79,7 +79,7 @@ def _compute_content_warnings(self, knowledge, source_content, source_format, fi return warnings - def _build_prompt(self, file_info, knowledge, source_content, warnings=None): + def _build_prompt(self, file_info, knowledge, source_content, warnings=None, prior_findings=None): prompt = self.prompt_template prompt = prompt.replace("{SOURCE_PATH}", file_info["source_path"]) prompt = prompt.replace("{FORMAT}", file_info["format"]) @@ -92,6 +92,15 @@ def _build_prompt(self, file_info, knowledge, source_content, warnings=None): "\n".join(f"- {w}" for w in warnings)) else: prompt = prompt.replace("{CONTENT_WARNINGS}", "なし") + if prior_findings is not None: + findings_list = prior_findings.get("findings", []) + if findings_list: + lines = [json.dumps(f, ensure_ascii=False) for f in findings_list] + prompt = prompt.replace("{PRIOR_FINDINGS}", "\n".join(lines)) + else: + prompt = prompt.replace("{PRIOR_FINDINGS}", "なし(前ラウンドはクリーン)") + else: + prompt = prompt.replace("{PRIOR_FINDINGS}", "なし(初回チェック)") return prompt def _detect_severity_flips(self, current_findings, prev_findings_path): @@ -141,7 +150,12 @@ def check_one(self, file_info) -> dict: source = "\n".join(lines[sr["start_line"]:sr["end_line"]]) warnings = self._compute_content_warnings(knowledge, source, file_info["format"], file_info) - prompt = self._build_prompt(file_info, knowledge, source, warnings=warnings) + prior_findings = None + if self.round_num > 1: + prev_path = f"{self.ctx.findings_dir}/{file_id}_r{self.round_num - 1}.json" + if os.path.exists(prev_path): + prior_findings = load_json(prev_path) + prompt = self._build_prompt(file_info, knowledge, source, warnings=warnings, prior_findings=prior_findings) try: result = self.run_claude( From 4065ce0913ea77e6ede9cdcb984086feb1c8d3a6 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 15:11:25 +0900 Subject: [PATCH 09/16] chore: update v1.4 cache after kc fix on targeted knowledge files Applied kc fix --target to libraries-04_Permission, libraries-07_TagReference, libraries-thread_context, and toolbox-01_DefInfoGenerator segments. Also removes libraries-05_MessagingLog--s1 which was dropped from the catalog. Co-Authored-By: Claude Sonnet 4.6 --- .../.cache/v1.4/catalog.json | 23441 ++++++++-------- .../libraries-04_Permission--s1.json | 3 +- .../libraries-04_Permission--s10.json | 2 +- .../libraries-05_MessagingLog--s1.json | 110 - .../libraries-07_TagReference--s24.json | 76 +- .../libraries-07_TagReference--s39.json | 5 +- .../libraries-thread_context--s1.json | 42 +- .../libraries-thread_context--s9.json | 6 +- .../toolbox-01_DefInfoGenerator--s13.json | 8 +- 9 files changed, 11812 insertions(+), 11881 deletions(-) delete mode 100644 tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-05_MessagingLog--s1.json diff --git a/tools/knowledge-creator/.cache/v1.4/catalog.json b/tools/knowledge-creator/.cache/v1.4/catalog.json index c23fee1a6..bdbae26da 100644 --- a/tools/knowledge-creator/.cache/v1.4/catalog.json +++ b/tools/knowledge-creator/.cache/v1.4/catalog.json @@ -11741,242 +11741,140 @@ ] }, { - "source_path": ".lw/nab-official/v1.4/document/tool/08_DefInfoGenerator/01_DefInfoGenerator.rst", + "source_path": ".lw/nab-official/v1.4/document/tool/01_JspGenerator/02_SetUpJspGeneratorTool.rst", "format": "rst", - "filename": "01_DefInfoGenerator.rst", + "filename": "02_SetUpJspGeneratorTool.rst", "type": "development-tools", "category": "toolbox", - "id": "toolbox-01_DefInfoGenerator--s1", - "base_name": "toolbox-01_DefInfoGenerator", - "output_path": "development-tools/toolbox/toolbox-01_DefInfoGenerator--s1.json", - "assets_dir": "development-tools/toolbox/assets/toolbox-01_DefInfoGenerator--s1/", + "id": "toolbox-02_SetUpJspGeneratorTool--s1", + "base_name": "toolbox-02_SetUpJspGeneratorTool", + "output_path": "development-tools/toolbox/toolbox-02_SetUpJspGeneratorTool--s1.json", + "assets_dir": "development-tools/toolbox/assets/toolbox-02_SetUpJspGeneratorTool--s1/", "section_range": { "start_line": 0, - "end_line": 363, + "end_line": 97, "sections": [ - "**出力ファイル毎の設定ファイル**", - "**共通の設定ファイル**", - "", - "環境設定ファイル", - "入力となる設計書に関する設定", - "ファイル生成に関する設定", - "", - "コンポーネント定義ファイル", - "入力ファイル読み取り設定", - "メッセージ設計書の読込設定", - "テーブル定義書の読込設定", - "コード設計書の読込設定" + "設定画面起動", + "外部プログラム選択", + "起動用バッチファイル選択", + "HTMLファイルからの起動方法", + "作成したファイルの表示" ], "section_ids": [ "s1", "s2", "s3", "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12" + "s5" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "toolbox-01_DefInfoGenerator", - "group_line_count": 363 + "total_parts": 1, + "original_id": "toolbox-02_SetUpJspGeneratorTool", + "group_line_count": 97 }, "section_map": [ { "section_id": "s1", - "heading": "**出力ファイル毎の設定ファイル**", + "heading": "設定画面起動", "rst_labels": [] }, { "section_id": "s2", - "heading": "**共通の設定ファイル**", + "heading": "外部プログラム選択", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "起動用バッチファイル選択", "rst_labels": [] }, { "section_id": "s4", - "heading": "環境設定ファイル", + "heading": "HTMLファイルからの起動方法", "rst_labels": [] }, { "section_id": "s5", - "heading": "入力となる設計書に関する設定", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "ファイル生成に関する設定", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "コンポーネント定義ファイル", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "入力ファイル読み取り設定", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "メッセージ設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "テーブル定義書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "コード設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "外部インターフェース設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "出力形式", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "メッセージ設計", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "ドメイン定義", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "精査処理定義", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "データタイプ定義", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "テーブル定義", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "コード設計", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "外部インターフェース設計", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "定義データの出力仕様", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "エスケープ処理", + "heading": "作成したファイルの表示", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/tool/08_DefInfoGenerator/01_DefInfoGenerator.rst", + "source_path": ".lw/nab-official/v1.4/document/tool/01_JspGenerator/01_JspGenerator.rst", "format": "rst", - "filename": "01_DefInfoGenerator.rst", + "filename": "01_JspGenerator.rst", "type": "development-tools", "category": "toolbox", - "id": "toolbox-01_DefInfoGenerator--s13", - "base_name": "toolbox-01_DefInfoGenerator", - "output_path": "development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json", - "assets_dir": "development-tools/toolbox/assets/toolbox-01_DefInfoGenerator--s13/", + "id": "toolbox-01_JspGenerator", + "base_name": "toolbox-01_JspGenerator", + "output_path": "development-tools/toolbox/toolbox-01_JspGenerator.json", + "assets_dir": "development-tools/toolbox/assets/toolbox-01_JspGenerator/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/tool/07_AuthGenerator/01_AuthGenerator.rst", + "format": "rst", + "filename": "01_AuthGenerator.rst", + "type": "development-tools", + "category": "toolbox", + "id": "toolbox-01_AuthGenerator--s1", + "base_name": "toolbox-01_AuthGenerator", + "output_path": "development-tools/toolbox/toolbox-01_AuthGenerator--s1.json", + "assets_dir": "development-tools/toolbox/assets/toolbox-01_AuthGenerator--s1/", "section_range": { - "start_line": 363, - "end_line": 664, + "start_line": 0, + "end_line": 329, "sections": [ - "外部インターフェース設計書の読込設定", "", - "出力形式", - "メッセージ設計", - "ドメイン定義", - "精査処理定義", - "データタイプ定義", - "テーブル定義", - "コード設計", - "外部インターフェース設計", + "ツール利用の流れ", "", - "定義データの出力仕様", - "エスケープ処理" + "コンポーネント定義ファイル", + "", + "環境設定ファイル", + "", + "通常のテーブル", + "", + "関連テーブル", + "PERMISSION_UNIT_REQUEST", + "認可データ作成シート編集", + "コンポーネント定義ファイル編集" ], "section_ids": [ - "s13", - "s14", - "s15", - "s16", - "s17", - "s18", - "s19", - "s20", - "s21", - "s22", - "s23", - "s24", - "s25" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "toolbox-01_DefInfoGenerator", - "group_line_count": 301 + "part": 1, + "total_parts": 1, + "original_id": "toolbox-01_AuthGenerator", + "group_line_count": 329 }, "section_map": [ { "section_id": "s1", - "heading": "**出力ファイル毎の設定ファイル**", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "**共通の設定ファイル**", + "heading": "ツール利用の流れ", "rst_labels": [] }, { @@ -11986,17 +11884,17 @@ }, { "section_id": "s4", - "heading": "環境設定ファイル", + "heading": "コンポーネント定義ファイル", "rst_labels": [] }, { "section_id": "s5", - "heading": "入力となる設計書に関する設定", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "ファイル生成に関する設定", + "heading": "環境設定ファイル", "rst_labels": [] }, { @@ -12006,271 +11904,17 @@ }, { "section_id": "s8", - "heading": "コンポーネント定義ファイル", + "heading": "通常のテーブル", "rst_labels": [] }, { "section_id": "s9", - "heading": "入力ファイル読み取り設定", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "メッセージ設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "テーブル定義書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "コード設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "外部インターフェース設計書の読込設定", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "出力形式", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "メッセージ設計", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "ドメイン定義", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "精査処理定義", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "データタイプ定義", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "テーブル定義", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "コード設計", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "外部インターフェース設計", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "定義データの出力仕様", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "エスケープ処理", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/tool/01_JspGenerator/02_SetUpJspGeneratorTool.rst", - "format": "rst", - "filename": "02_SetUpJspGeneratorTool.rst", - "type": "development-tools", - "category": "toolbox", - "id": "toolbox-02_SetUpJspGeneratorTool--s1", - "base_name": "toolbox-02_SetUpJspGeneratorTool", - "output_path": "development-tools/toolbox/toolbox-02_SetUpJspGeneratorTool--s1.json", - "assets_dir": "development-tools/toolbox/assets/toolbox-02_SetUpJspGeneratorTool--s1/", - "section_range": { - "start_line": 0, - "end_line": 97, - "sections": [ - "設定画面起動", - "外部プログラム選択", - "起動用バッチファイル選択", - "HTMLファイルからの起動方法", - "作成したファイルの表示" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "toolbox-02_SetUpJspGeneratorTool", - "group_line_count": 97 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "設定画面起動", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "外部プログラム選択", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "起動用バッチファイル選択", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "HTMLファイルからの起動方法", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "作成したファイルの表示", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/tool/01_JspGenerator/01_JspGenerator.rst", - "format": "rst", - "filename": "01_JspGenerator.rst", - "type": "development-tools", - "category": "toolbox", - "id": "toolbox-01_JspGenerator", - "base_name": "toolbox-01_JspGenerator", - "output_path": "development-tools/toolbox/toolbox-01_JspGenerator.json", - "assets_dir": "development-tools/toolbox/assets/toolbox-01_JspGenerator/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/tool/07_AuthGenerator/01_AuthGenerator.rst", - "format": "rst", - "filename": "01_AuthGenerator.rst", - "type": "development-tools", - "category": "toolbox", - "id": "toolbox-01_AuthGenerator--s1", - "base_name": "toolbox-01_AuthGenerator", - "output_path": "development-tools/toolbox/toolbox-01_AuthGenerator--s1.json", - "assets_dir": "development-tools/toolbox/assets/toolbox-01_AuthGenerator--s1/", - "section_range": { - "start_line": 0, - "end_line": 329, - "sections": [ - "", - "ツール利用の流れ", - "", - "コンポーネント定義ファイル", - "", - "環境設定ファイル", - "", - "通常のテーブル", - "", - "関連テーブル", - "PERMISSION_UNIT_REQUEST", - "認可データ作成シート編集", - "コンポーネント定義ファイル編集" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "toolbox-01_AuthGenerator", - "group_line_count": 329 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "ツール利用の流れ", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "コンポーネント定義ファイル", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "環境設定ファイル", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "通常のテーブル", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "関連テーブル", + "heading": "関連テーブル", "rst_labels": [] }, { @@ -17218,187 +16862,7 @@ ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/04_Permission.rst", - "format": "rst", - "filename": "04_Permission.rst", - "type": "component", - "category": "libraries", - "id": "libraries-04_Permission--s1", - "base_name": "libraries-04_Permission", - "output_path": "component/libraries/libraries-04_Permission--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_Permission--s1/", - "section_range": { - "start_line": 0, - "end_line": 265, - "sections": [ - "", - "概要", - "", - "特徴", - "", - "要求", - "", - "構成", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-04_Permission", - "group_line_count": 265 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "permission" - ] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "特徴", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "使用方法", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/04_Permission.rst", - "format": "rst", - "filename": "04_Permission.rst", - "type": "component", - "category": "libraries", - "id": "libraries-04_Permission--s10", - "base_name": "libraries-04_Permission", - "output_path": "component/libraries/libraries-04_Permission--s10.json", - "assets_dir": "component/libraries/assets/libraries-04_Permission--s10/", - "section_range": { - "start_line": 265, - "end_line": 563, - "sections": [ - "使用方法" - ], - "section_ids": [ - "s10" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-04_Permission", - "group_line_count": 298 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "permission" - ] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "特徴", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "使用方法", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_HowToSettingCustomTag.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_HowToSettingCustomTag.rst", "format": "rst", "filename": "07_HowToSettingCustomTag.rst", "type": "component", @@ -18508,29 +17972,34 @@ ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTag.rst", "format": "rst", - "filename": "07_TagReference.rst", + "filename": "07_FormTag.rst", "type": "component", "category": "libraries", - "id": "libraries-07_TagReference--s1", - "base_name": "libraries-07_TagReference", - "output_path": "component/libraries/libraries-07_TagReference--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_TagReference--s1/", + "id": "libraries-07_FormTag--s1", + "base_name": "libraries-07_FormTag", + "output_path": "component/libraries/libraries-07_FormTag--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_FormTag--s1/", "section_range": { "start_line": 0, - "end_line": 400, + "end_line": 379, "sections": [ "", - "カスタムタグ一覧", - "全てのHTMLタグ", - "フォーカスを取得可能なHTMLタグ", - "formタグ", - "textタグ", - "textareaタグ", - "passwordタグ", - "radioButtonタグ", - "checkboxタグ" + "エンティティのプロパティにアクセスする場合の実装例", + "", + "Listのプロパティにアクセスする場合の実装例", + "", + "windowScopePrefixes属性の使用方法", + "", + "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", + "", + "アクションの実装方法", + "", + "hiddenタグの暗号化機能の処理イメージ", + "", + "hiddenタグの暗号化機能の設定", + "" ], "section_ids": [ "s1", @@ -18542,15 +18011,20 @@ "s7", "s8", "s9", - "s10" + "s10", + "s11", + "s12", + "s13", + "s14", + "s15" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 4, - "original_id": "libraries-07_TagReference", - "group_line_count": 400 + "total_parts": 2, + "original_id": "libraries-07_FormTag", + "group_line_count": 379 }, "section_map": [ { @@ -18560,290 +18034,146 @@ }, { "section_id": "s2", - "heading": "カスタムタグ一覧", + "heading": "エンティティのプロパティにアクセスする場合の実装例", "rst_labels": [] }, { "section_id": "s3", - "heading": "全てのHTMLタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "フォーカスを取得可能なHTMLタグ", + "heading": "Listのプロパティにアクセスする場合の実装例", "rst_labels": [] }, { "section_id": "s5", - "heading": "formタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "textタグ", + "heading": "windowScopePrefixes属性の使用方法", "rst_labels": [] }, { "section_id": "s7", - "heading": "textareaタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "passwordタグ", + "heading": "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", "rst_labels": [] }, { "section_id": "s9", - "heading": "radioButtonタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "checkboxタグ", + "heading": "アクションの実装方法", "rst_labels": [] }, { "section_id": "s11", - "heading": "compositeKeyCheckboxタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "compositeKeyRadioButtonタグ", + "heading": "hiddenタグの暗号化機能の処理イメージ", "rst_labels": [] }, { "section_id": "s13", - "heading": "fileタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグ", + "heading": "hiddenタグの暗号化機能の設定", "rst_labels": [] }, { "section_id": "s15", - "heading": "plainHiddenタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "selectタグ", + "heading": "hiddenの暗号化処理", "rst_labels": [] }, { "section_id": "s17", - "heading": "radioButtonsタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s18", - "heading": "checkboxesタグ", + "heading": "hiddenの復号処理", "rst_labels": [] }, { "section_id": "s19", - "heading": "submitタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s20", - "heading": "buttonタグ", + "heading": "textタグの出力例", "rst_labels": [] }, { "section_id": "s21", - "heading": "submitLinkタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s22", - "heading": "popupSubmitタグ", + "heading": "passwordタグの出力例", "rst_labels": [] }, { "section_id": "s23", - "heading": "popupButtonタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s24", - "heading": "popupLinkタグ", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "downloadSubmitタグ", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "downloadButtonタグ", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "downloadLinkタグ", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "paramタグ", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "changeParamNameタグ", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "aタグ", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "imgタグ", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "linkタグ", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "scriptタグ", - "rst_labels": [] - }, - { - "section_id": "s34", - "heading": "errorsタグ", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "errorタグ", - "rst_labels": [] - }, - { - "section_id": "s36", - "heading": "noCacheタグ", - "rst_labels": [] - }, - { - "section_id": "s37", - "heading": "codeSelectタグ", - "rst_labels": [] - }, - { - "section_id": "s38", - "heading": "codeRadioButtonsタグ", - "rst_labels": [] - }, - { - "section_id": "s39", - "heading": "codeCheckboxesタグ", - "rst_labels": [] - }, - { - "section_id": "s40", - "heading": "codeCheckboxタグ", - "rst_labels": [] - }, - { - "section_id": "s41", - "heading": "codeタグ", - "rst_labels": [] - }, - { - "section_id": "s42", - "heading": "messageタグ", - "rst_labels": [] - }, - { - "section_id": "s43", - "heading": "writeタグ", - "rst_labels": [] - }, - { - "section_id": "s44", - "heading": "prettyPrintタグ", - "rst_labels": [] - }, - { - "section_id": "s45", - "heading": "rawWriteタグ", - "rst_labels": [] - }, - { - "section_id": "s46", - "heading": "includeタグ", - "rst_labels": [] - }, - { - "section_id": "s47", - "heading": "includeParamタグ", - "rst_labels": [] - }, - { - "section_id": "s48", - "heading": "confirmationPageタグ", - "rst_labels": [] - }, - { - "section_id": "s49", - "heading": "ignoreConfirmationタグ", - "rst_labels": [] - }, - { - "section_id": "s50", - "heading": "forInputPageタグ", - "rst_labels": [] - }, - { - "section_id": "s51", - "heading": "forConfirmationPageタグ", + "heading": "selectタグの出力例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTag.rst", "format": "rst", - "filename": "07_TagReference.rst", + "filename": "07_FormTag.rst", "type": "component", "category": "libraries", - "id": "libraries-07_TagReference--s11", - "base_name": "libraries-07_TagReference", - "output_path": "component/libraries/libraries-07_TagReference--s11.json", - "assets_dir": "component/libraries/assets/libraries-07_TagReference--s11/", + "id": "libraries-07_FormTag--s16", + "base_name": "libraries-07_FormTag", + "output_path": "component/libraries/libraries-07_FormTag--s16.json", + "assets_dir": "component/libraries/assets/libraries-07_FormTag--s16/", "section_range": { - "start_line": 400, - "end_line": 794, + "start_line": 379, + "end_line": 566, "sections": [ - "compositeKeyCheckboxタグ", - "compositeKeyRadioButtonタグ", - "fileタグ", - "hiddenタグ", - "plainHiddenタグ", - "selectタグ", - "radioButtonsタグ", - "checkboxesタグ", - "submitタグ", - "buttonタグ", - "submitLinkタグ", - "popupSubmitタグ", - "popupButtonタグ" + "hiddenの暗号化処理", + "", + "hiddenの復号処理", + "", + "textタグの出力例", + "", + "passwordタグの出力例", + "", + "selectタグの出力例" ], "section_ids": [ - "s11", - "s12", - "s13", - "s14", - "s15", "s16", "s17", "s18", @@ -18851,15 +18181,16 @@ "s20", "s21", "s22", - "s23" + "s23", + "s24" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 4, - "original_id": "libraries-07_TagReference", - "group_line_count": 394 + "total_parts": 2, + "original_id": "libraries-07_FormTag", + "group_line_count": 187 }, "section_map": [ { @@ -18869,619 +18200,697 @@ }, { "section_id": "s2", - "heading": "カスタムタグ一覧", + "heading": "エンティティのプロパティにアクセスする場合の実装例", "rst_labels": [] }, { "section_id": "s3", - "heading": "全てのHTMLタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "フォーカスを取得可能なHTMLタグ", + "heading": "Listのプロパティにアクセスする場合の実装例", "rst_labels": [] }, { "section_id": "s5", - "heading": "formタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "textタグ", + "heading": "windowScopePrefixes属性の使用方法", "rst_labels": [] }, { "section_id": "s7", - "heading": "textareaタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "passwordタグ", + "heading": "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", "rst_labels": [] }, { "section_id": "s9", - "heading": "radioButtonタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "checkboxタグ", + "heading": "アクションの実装方法", "rst_labels": [] }, { "section_id": "s11", - "heading": "compositeKeyCheckboxタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "compositeKeyRadioButtonタグ", + "heading": "hiddenタグの暗号化機能の処理イメージ", "rst_labels": [] }, { "section_id": "s13", - "heading": "fileタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグ", + "heading": "hiddenタグの暗号化機能の設定", "rst_labels": [] }, { "section_id": "s15", - "heading": "plainHiddenタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "selectタグ", + "heading": "hiddenの暗号化処理", "rst_labels": [] }, { "section_id": "s17", - "heading": "radioButtonsタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s18", - "heading": "checkboxesタグ", + "heading": "hiddenの復号処理", "rst_labels": [] }, { "section_id": "s19", - "heading": "submitタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s20", - "heading": "buttonタグ", + "heading": "textタグの出力例", "rst_labels": [] }, { "section_id": "s21", - "heading": "submitLinkタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s22", - "heading": "popupSubmitタグ", + "heading": "passwordタグの出力例", "rst_labels": [] }, { "section_id": "s23", - "heading": "popupButtonタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s24", - "heading": "popupLinkタグ", + "heading": "selectタグの出力例", "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "downloadSubmitタグ", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "downloadButtonタグ", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "downloadLinkタグ", - "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FacilitateTag.rst", + "format": "rst", + "filename": "07_FacilitateTag.rst", + "type": "component", + "category": "libraries", + "id": "libraries-07_FacilitateTag--s1", + "base_name": "libraries-07_FacilitateTag", + "output_path": "component/libraries/libraries-07_FacilitateTag--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_FacilitateTag--s1/", + "section_range": { + "start_line": 0, + "end_line": 117, + "sections": [ + "", + "入力画面と確認画面の表示切り替え", + "", + "確認画面での入力項目の表示" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-07_FacilitateTag", + "group_line_count": 117 + }, + "section_map": [ { - "section_id": "s28", - "heading": "paramタグ", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s29", - "heading": "changeParamNameタグ", + "section_id": "s2", + "heading": "入力画面と確認画面の表示切り替え", "rst_labels": [] }, { - "section_id": "s30", - "heading": "aタグ", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s31", - "heading": "imgタグ", + "section_id": "s4", + "heading": "確認画面での入力項目の表示", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_BasicRules.rst", + "format": "rst", + "filename": "07_BasicRules.rst", + "type": "component", + "category": "libraries", + "id": "libraries-07_BasicRules--s1", + "base_name": "libraries-07_BasicRules", + "output_path": "component/libraries/libraries-07_BasicRules--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_BasicRules--s1/", + "section_range": { + "start_line": 0, + "end_line": 260, + "sections": [ + "", + "HTMLエスケープ", + "", + "改行、半角スペース変換", + "", + "HTMLエスケープせずに値を出力する方法" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-07_BasicRules", + "group_line_count": 260 + }, + "section_map": [ { - "section_id": "s32", - "heading": "linkタグ", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s33", - "heading": "scriptタグ", + "section_id": "s2", + "heading": "HTMLエスケープ", "rst_labels": [] }, { - "section_id": "s34", - "heading": "errorsタグ", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s35", - "heading": "errorタグ", + "section_id": "s4", + "heading": "改行、半角スペース変換", "rst_labels": [] }, { - "section_id": "s36", - "heading": "noCacheタグ", + "section_id": "s5", + "heading": "", "rst_labels": [] }, { - "section_id": "s37", - "heading": "codeSelectタグ", + "section_id": "s6", + "heading": "HTMLエスケープせずに値を出力する方法", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_OtherTag.rst", + "format": "rst", + "filename": "07_OtherTag.rst", + "type": "component", + "category": "libraries", + "id": "libraries-07_OtherTag", + "base_name": "libraries-07_OtherTag", + "output_path": "component/libraries/libraries-07_OtherTag.json", + "assets_dir": "component/libraries/assets/libraries-07_OtherTag/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTagList.rst", + "format": "rst", + "filename": "07_FormTagList.rst", + "type": "component", + "category": "libraries", + "id": "libraries-07_FormTagList--s1", + "base_name": "libraries-07_FormTagList", + "output_path": "component/libraries/libraries-07_FormTagList--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_FormTagList--s1/", + "section_range": { + "start_line": 0, + "end_line": 383, + "sections": [ + "", + "passwordタグ", + "", + "radioButtonタグ", + "", + "checkboxタグ", + "", + "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", + "", + "List型変数に対応するカスタムタグの共通属性", + "" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "libraries-07_FormTagList", + "group_line_count": 383 + }, + "section_map": [ { - "section_id": "s38", - "heading": "codeRadioButtonsタグ", - "rst_labels": [] + "section_id": "s1", + "heading": "", + "rst_labels": [ + "form_input" + ] }, { - "section_id": "s39", - "heading": "codeCheckboxesタグ", + "section_id": "s2", + "heading": "passwordタグ", "rst_labels": [] }, { - "section_id": "s40", - "heading": "codeCheckboxタグ", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s41", - "heading": "codeタグ", + "section_id": "s4", + "heading": "radioButtonタグ", "rst_labels": [] }, { - "section_id": "s42", - "heading": "messageタグ", + "section_id": "s5", + "heading": "", "rst_labels": [] }, { - "section_id": "s43", - "heading": "writeタグ", + "section_id": "s6", + "heading": "checkboxタグ", "rst_labels": [] }, { - "section_id": "s44", - "heading": "prettyPrintタグ", + "section_id": "s7", + "heading": "", "rst_labels": [] }, { - "section_id": "s45", - "heading": "rawWriteタグ", + "section_id": "s8", + "heading": "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", "rst_labels": [] }, { - "section_id": "s46", - "heading": "includeタグ", + "section_id": "s9", + "heading": "", "rst_labels": [] }, { - "section_id": "s47", - "heading": "includeParamタグ", + "section_id": "s10", + "heading": "List型変数に対応するカスタムタグの共通属性", "rst_labels": [] }, { - "section_id": "s48", - "heading": "confirmationPageタグ", + "section_id": "s11", + "heading": "", "rst_labels": [] }, { - "section_id": "s49", - "heading": "ignoreConfirmationタグ", + "section_id": "s12", + "heading": "radioButtonsタグ、checkboxesタグ", "rst_labels": [] }, { - "section_id": "s50", - "heading": "forInputPageタグ", + "section_id": "s13", + "heading": "", "rst_labels": [] }, { - "section_id": "s51", - "heading": "forConfirmationPageタグ", + "section_id": "s14", + "heading": "selectタグ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTagList.rst", "format": "rst", - "filename": "07_TagReference.rst", + "filename": "07_FormTagList.rst", "type": "component", "category": "libraries", - "id": "libraries-07_TagReference--s24", - "base_name": "libraries-07_TagReference", - "output_path": "component/libraries/libraries-07_TagReference--s24.json", - "assets_dir": "component/libraries/assets/libraries-07_TagReference--s24/", + "id": "libraries-07_FormTagList--s12", + "base_name": "libraries-07_FormTagList", + "output_path": "component/libraries/libraries-07_FormTagList--s12.json", + "assets_dir": "component/libraries/assets/libraries-07_FormTagList--s12/", "section_range": { - "start_line": 794, - "end_line": 1175, + "start_line": 383, + "end_line": 467, "sections": [ - "popupLinkタグ", - "downloadSubmitタグ", - "downloadButtonタグ", - "downloadLinkタグ", - "paramタグ", - "changeParamNameタグ", - "aタグ", - "imgタグ", - "linkタグ", - "scriptタグ", - "errorsタグ", - "errorタグ", - "noCacheタグ", - "codeSelectタグ", - "codeRadioButtonsタグ" + "radioButtonsタグ、checkboxesタグ", + "", + "selectタグ" ], "section_ids": [ - "s24", - "s25", - "s26", - "s27", - "s28", - "s29", - "s30", - "s31", - "s32", - "s33", - "s34", - "s35", - "s36", - "s37", - "s38" + "s12", + "s13", + "s14" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 4, - "original_id": "libraries-07_TagReference", - "group_line_count": 381 + "part": 2, + "total_parts": 2, + "original_id": "libraries-07_FormTagList", + "group_line_count": 84 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "form_input" + ] }, { "section_id": "s2", - "heading": "カスタムタグ一覧", + "heading": "passwordタグ", "rst_labels": [] }, { "section_id": "s3", - "heading": "全てのHTMLタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "フォーカスを取得可能なHTMLタグ", + "heading": "radioButtonタグ", "rst_labels": [] }, { "section_id": "s5", - "heading": "formタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "textタグ", + "heading": "checkboxタグ", "rst_labels": [] }, { "section_id": "s7", - "heading": "textareaタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "passwordタグ", + "heading": "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", "rst_labels": [] }, { "section_id": "s9", - "heading": "radioButtonタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "checkboxタグ", + "heading": "List型変数に対応するカスタムタグの共通属性", "rst_labels": [] }, { "section_id": "s11", - "heading": "compositeKeyCheckboxタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "compositeKeyRadioButtonタグ", + "heading": "radioButtonsタグ、checkboxesタグ", "rst_labels": [] }, { "section_id": "s13", - "heading": "fileタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグ", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "plainHiddenタグ", - "rst_labels": [] - }, - { - "section_id": "s16", "heading": "selectタグ", "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "radioButtonsタグ", - "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04_DbAccessSpec.rst", + "format": "rst", + "filename": "04_DbAccessSpec.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_DbAccessSpec--s1", + "base_name": "libraries-04_DbAccessSpec", + "output_path": "component/libraries/libraries-04_DbAccessSpec--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_DbAccessSpec--s1/", + "section_range": { + "start_line": 0, + "end_line": 333, + "sections": [ + "" + ], + "section_ids": [ + "s1" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "libraries-04_DbAccessSpec", + "group_line_count": 333 + }, + "section_map": [ { - "section_id": "s18", - "heading": "checkboxesタグ", - "rst_labels": [] + "section_id": "s1", + "heading": "", + "rst_labels": [ + "db-summary-label", + "db-feature-label", + "db-feature-2-label", + "db-feature-4-label", + "db-feature-5-label", + "db-feature-6-label", + "db-feature-7-label" + ] }, { - "section_id": "s19", - "heading": "submitタグ", - "rst_labels": [] + "section_id": "s2", + "heading": "注意点", + "rst_labels": [ + "db-sql-injection-label", + "sql-injection-logic" + ] }, { - "section_id": "s20", - "heading": "buttonタグ", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s21", - "heading": "submitLinkタグ", + "section_id": "s4", + "heading": "全体構造", "rst_labels": [] }, { - "section_id": "s22", - "heading": "popupSubmitタグ", + "section_id": "s5", + "heading": "", "rst_labels": [] }, { - "section_id": "s23", - "heading": "popupButtonタグ", + "section_id": "s6", + "heading": "各機能単位の構造", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04_DbAccessSpec.rst", + "format": "rst", + "filename": "04_DbAccessSpec.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_DbAccessSpec--s2", + "base_name": "libraries-04_DbAccessSpec", + "output_path": "component/libraries/libraries-04_DbAccessSpec--s2.json", + "assets_dir": "component/libraries/assets/libraries-04_DbAccessSpec--s2/", + "section_range": { + "start_line": 333, + "end_line": 479, + "sections": [ + "注意点", + "", + "全体構造", + "", + "各機能単位の構造" + ], + "section_ids": [ + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-04_DbAccessSpec", + "group_line_count": 146 + }, + "section_map": [ { - "section_id": "s24", - "heading": "popupLinkタグ", - "rst_labels": [] + "section_id": "s1", + "heading": "", + "rst_labels": [ + "db-summary-label", + "db-feature-label", + "db-feature-2-label", + "db-feature-4-label", + "db-feature-5-label", + "db-feature-6-label", + "db-feature-7-label" + ] }, { - "section_id": "s25", - "heading": "downloadSubmitタグ", - "rst_labels": [] + "section_id": "s2", + "heading": "注意点", + "rst_labels": [ + "db-sql-injection-label", + "sql-injection-logic" + ] }, { - "section_id": "s26", - "heading": "downloadButtonタグ", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s27", - "heading": "downloadLinkタグ", + "section_id": "s4", + "heading": "全体構造", "rst_labels": [] }, { - "section_id": "s28", - "heading": "paramタグ", + "section_id": "s5", + "heading": "", "rst_labels": [] }, { - "section_id": "s29", - "heading": "changeParamNameタグ", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "aタグ", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "imgタグ", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "linkタグ", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "scriptタグ", - "rst_labels": [] - }, - { - "section_id": "s34", - "heading": "errorsタグ", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "errorタグ", - "rst_labels": [] - }, - { - "section_id": "s36", - "heading": "noCacheタグ", - "rst_labels": [] - }, - { - "section_id": "s37", - "heading": "codeSelectタグ", - "rst_labels": [] - }, - { - "section_id": "s38", - "heading": "codeRadioButtonsタグ", - "rst_labels": [] - }, - { - "section_id": "s39", - "heading": "codeCheckboxesタグ", - "rst_labels": [] - }, - { - "section_id": "s40", - "heading": "codeCheckboxタグ", - "rst_labels": [] - }, - { - "section_id": "s41", - "heading": "codeタグ", - "rst_labels": [] - }, - { - "section_id": "s42", - "heading": "messageタグ", - "rst_labels": [] - }, - { - "section_id": "s43", - "heading": "writeタグ", - "rst_labels": [] - }, - { - "section_id": "s44", - "heading": "prettyPrintタグ", - "rst_labels": [] - }, - { - "section_id": "s45", - "heading": "rawWriteタグ", - "rst_labels": [] - }, - { - "section_id": "s46", - "heading": "includeタグ", - "rst_labels": [] - }, - { - "section_id": "s47", - "heading": "includeParamタグ", - "rst_labels": [] - }, - { - "section_id": "s48", - "heading": "confirmationPageタグ", - "rst_labels": [] - }, - { - "section_id": "s49", - "heading": "ignoreConfirmationタグ", - "rst_labels": [] - }, - { - "section_id": "s50", - "heading": "forInputPageタグ", - "rst_labels": [] - }, - { - "section_id": "s51", - "heading": "forConfirmationPageタグ", + "section_id": "s6", + "heading": "各機能単位の構造", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02_Repository.rst", "format": "rst", - "filename": "07_TagReference.rst", + "filename": "02_Repository.rst", "type": "component", "category": "libraries", - "id": "libraries-07_TagReference--s39", - "base_name": "libraries-07_TagReference", - "output_path": "component/libraries/libraries-07_TagReference--s39.json", - "assets_dir": "component/libraries/assets/libraries-07_TagReference--s39/", + "id": "libraries-02_Repository--s1", + "base_name": "libraries-02_Repository", + "output_path": "component/libraries/libraries-02_Repository--s1.json", + "assets_dir": "component/libraries/assets/libraries-02_Repository--s1/", "section_range": { - "start_line": 1175, - "end_line": 1505, + "start_line": 0, + "end_line": 209, "sections": [ - "codeCheckboxesタグ", - "codeCheckboxタグ", - "codeタグ", - "messageタグ", - "writeタグ", - "prettyPrintタグ", - "rawWriteタグ", - "includeタグ", - "includeParamタグ", - "confirmationPageタグ", - "ignoreConfirmationタグ", - "forInputPageタグ", - "forConfirmationPageタグ" + "", + "概要", + "", + "特徴", + "", + "要求", + "", + "構成", + "インタフェース定義", + "クラス定義", + "", + "リポジトリの設定方法と使用方法", + "", + "コンポーネント初期化機能", + "", + "ファクトリインジェクション", + "", + "設定の上書き" ], "section_ids": [ - "s39", - "s40", - "s41", - "s42", - "s43", - "s44", - "s45", - "s46", - "s47", - "s48", - "s49", - "s50", - "s51" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17", + "s18" ] }, "split_info": { "is_split": true, - "part": 4, - "total_parts": 4, - "original_id": "libraries-07_TagReference", - "group_line_count": 330 + "part": 1, + "total_parts": 1, + "original_id": "libraries-02_Repository", + "group_line_count": 209 }, "section_map": [ { @@ -19491,284 +18900,127 @@ }, { "section_id": "s2", - "heading": "カスタムタグ一覧", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "全てのHTMLタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "フォーカスを取得可能なHTMLタグ", - "rst_labels": [] + "heading": "特徴", + "rst_labels": [ + "initialize-label" + ] }, { "section_id": "s5", - "heading": "formタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "textタグ", + "heading": "要求", "rst_labels": [] }, { "section_id": "s7", - "heading": "textareaタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "passwordタグ", + "heading": "構成", "rst_labels": [] }, { "section_id": "s9", - "heading": "radioButtonタグ", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s10", - "heading": "checkboxタグ", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s11", - "heading": "compositeKeyCheckboxタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "compositeKeyRadioButtonタグ", + "heading": "リポジトリの設定方法と使用方法", "rst_labels": [] }, { "section_id": "s13", - "heading": "fileタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグ", + "heading": "コンポーネント初期化機能", "rst_labels": [] }, { "section_id": "s15", - "heading": "plainHiddenタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "selectタグ", + "heading": "ファクトリインジェクション", "rst_labels": [] }, { "section_id": "s17", - "heading": "radioButtonsタグ", + "heading": "", "rst_labels": [] }, { "section_id": "s18", - "heading": "checkboxesタグ", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "submitタグ", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "buttonタグ", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "submitLinkタグ", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "popupSubmitタグ", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "popupButtonタグ", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "popupLinkタグ", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "downloadSubmitタグ", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "downloadButtonタグ", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "downloadLinkタグ", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "paramタグ", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "changeParamNameタグ", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "aタグ", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "imgタグ", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "linkタグ", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "scriptタグ", - "rst_labels": [] - }, - { - "section_id": "s34", - "heading": "errorsタグ", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "errorタグ", - "rst_labels": [] - }, - { - "section_id": "s36", - "heading": "noCacheタグ", - "rst_labels": [] - }, - { - "section_id": "s37", - "heading": "codeSelectタグ", - "rst_labels": [] - }, - { - "section_id": "s38", - "heading": "codeRadioButtonsタグ", - "rst_labels": [] - }, - { - "section_id": "s39", - "heading": "codeCheckboxesタグ", - "rst_labels": [] - }, - { - "section_id": "s40", - "heading": "codeCheckboxタグ", - "rst_labels": [] - }, - { - "section_id": "s41", - "heading": "codeタグ", - "rst_labels": [] - }, - { - "section_id": "s42", - "heading": "messageタグ", - "rst_labels": [] - }, - { - "section_id": "s43", - "heading": "writeタグ", - "rst_labels": [] - }, - { - "section_id": "s44", - "heading": "prettyPrintタグ", - "rst_labels": [] - }, - { - "section_id": "s45", - "heading": "rawWriteタグ", - "rst_labels": [] - }, - { - "section_id": "s46", - "heading": "includeタグ", - "rst_labels": [] - }, - { - "section_id": "s47", - "heading": "includeParamタグ", - "rst_labels": [] - }, - { - "section_id": "s48", - "heading": "confirmationPageタグ", - "rst_labels": [] - }, - { - "section_id": "s49", - "heading": "ignoreConfirmationタグ", - "rst_labels": [] - }, - { - "section_id": "s50", - "heading": "forInputPageタグ", - "rst_labels": [] - }, - { - "section_id": "s51", - "heading": "forConfirmationPageタグ", + "heading": "設定の上書き", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTag.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/05_StaticDataCache.rst", "format": "rst", - "filename": "07_FormTag.rst", + "filename": "05_StaticDataCache.rst", "type": "component", "category": "libraries", - "id": "libraries-07_FormTag--s1", - "base_name": "libraries-07_FormTag", - "output_path": "component/libraries/libraries-07_FormTag--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_FormTag--s1/", + "id": "libraries-05_StaticDataCache--s1", + "base_name": "libraries-05_StaticDataCache", + "output_path": "component/libraries/libraries-05_StaticDataCache--s1.json", + "assets_dir": "component/libraries/assets/libraries-05_StaticDataCache--s1/", "section_range": { "start_line": 0, - "end_line": 379, + "end_line": 383, "sections": [ "", - "エンティティのプロパティにアクセスする場合の実装例", + "概要", "", - "Listのプロパティにアクセスする場合の実装例", + "特徴", "", - "windowScopePrefixes属性の使用方法", + "要求", "", - "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", + "構成", + "インタフェース定義", + "クラス定義", "", - "アクションの実装方法", + "キャッシュした静的データの取得", + "キャッシュされるデータを保持するクラス(ExampleData)", + "キャッシュしたデータを使用するクラス", "", - "hiddenタグの暗号化機能の処理イメージ", + "キャッシュにデータをロードする方法", "", - "hiddenタグの暗号化機能の設定", + "オンデマンドロードの使用方法", + "ExampleDataをロードするクラス", + "設定ファイル", "" ], "section_ids": [ @@ -19786,15 +19038,21 @@ "s12", "s13", "s14", - "s15" + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 2, - "original_id": "libraries-07_FormTag", - "group_line_count": 379 + "original_id": "libraries-05_StaticDataCache", + "group_line_count": 383 }, "section_map": [ { @@ -19804,7 +19062,7 @@ }, { "section_id": "s2", - "heading": "エンティティのプロパティにアクセスする場合の実装例", + "heading": "概要", "rst_labels": [] }, { @@ -19814,7 +19072,7 @@ }, { "section_id": "s4", - "heading": "Listのプロパティにアクセスする場合の実装例", + "heading": "特徴", "rst_labels": [] }, { @@ -19824,7 +19082,7 @@ }, { "section_id": "s6", - "heading": "windowScopePrefixes属性の使用方法", + "heading": "要求", "rst_labels": [] }, { @@ -19834,17 +19092,17 @@ }, { "section_id": "s8", - "heading": "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", + "heading": "構成", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s10", - "heading": "アクションの実装方法", + "heading": "クラス定義", "rst_labels": [] }, { @@ -19854,17 +19112,17 @@ }, { "section_id": "s12", - "heading": "hiddenタグの暗号化機能の処理イメージ", + "heading": "キャッシュした静的データの取得", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "キャッシュされるデータを保持するクラス(ExampleData)", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグの暗号化機能の設定", + "heading": "キャッシュしたデータを使用するクラス", "rst_labels": [] }, { @@ -19874,7 +19132,7 @@ }, { "section_id": "s16", - "heading": "hiddenの暗号化処理", + "heading": "キャッシュにデータをロードする方法", "rst_labels": [] }, { @@ -19884,17 +19142,17 @@ }, { "section_id": "s18", - "heading": "hiddenの復号処理", + "heading": "オンデマンドロードの使用方法", "rst_labels": [] }, { "section_id": "s19", - "heading": "", + "heading": "ExampleDataをロードするクラス", "rst_labels": [] }, { "section_id": "s20", - "heading": "textタグの出力例", + "heading": "設定ファイル", "rst_labels": [] }, { @@ -19904,63 +19162,72 @@ }, { "section_id": "s22", - "heading": "passwordタグの出力例", + "heading": "一括ロード", "rst_labels": [] }, { "section_id": "s23", - "heading": "", + "heading": "ExampleDataをロードするクラス", "rst_labels": [] }, { "section_id": "s24", - "heading": "selectタグの出力例", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "設定内容詳細", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "静的データの再読み込み", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTag.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/05_StaticDataCache.rst", "format": "rst", - "filename": "07_FormTag.rst", + "filename": "05_StaticDataCache.rst", "type": "component", "category": "libraries", - "id": "libraries-07_FormTag--s16", - "base_name": "libraries-07_FormTag", - "output_path": "component/libraries/libraries-07_FormTag--s16.json", - "assets_dir": "component/libraries/assets/libraries-07_FormTag--s16/", + "id": "libraries-05_StaticDataCache--s22", + "base_name": "libraries-05_StaticDataCache", + "output_path": "component/libraries/libraries-05_StaticDataCache--s22.json", + "assets_dir": "component/libraries/assets/libraries-05_StaticDataCache--s22/", "section_range": { - "start_line": 379, - "end_line": 566, + "start_line": 383, + "end_line": 578, "sections": [ - "hiddenの暗号化処理", - "", - "hiddenの復号処理", + "一括ロード", + "ExampleDataをロードするクラス", "", - "textタグの出力例", + "設定内容詳細", "", - "passwordタグの出力例", - "", - "selectタグの出力例" + "静的データの再読み込み" ], "section_ids": [ - "s16", - "s17", - "s18", - "s19", - "s20", - "s21", "s22", "s23", - "s24" + "s24", + "s25", + "s26", + "s27" ] }, "split_info": { "is_split": true, "part": 2, "total_parts": 2, - "original_id": "libraries-07_FormTag", - "group_line_count": 187 + "original_id": "libraries-05_StaticDataCache", + "group_line_count": 195 }, "section_map": [ { @@ -19970,7 +19237,7 @@ }, { "section_id": "s2", - "heading": "エンティティのプロパティにアクセスする場合の実装例", + "heading": "概要", "rst_labels": [] }, { @@ -19980,7 +19247,7 @@ }, { "section_id": "s4", - "heading": "Listのプロパティにアクセスする場合の実装例", + "heading": "特徴", "rst_labels": [] }, { @@ -19990,7 +19257,7 @@ }, { "section_id": "s6", - "heading": "windowScopePrefixes属性の使用方法", + "heading": "要求", "rst_labels": [] }, { @@ -20000,17 +19267,17 @@ }, { "section_id": "s8", - "heading": "複数画面に跨る画面遷移時のwindowScopePrefixes属性の指定方法", + "heading": "構成", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s10", - "heading": "アクションの実装方法", + "heading": "クラス定義", "rst_labels": [] }, { @@ -20020,17 +19287,17 @@ }, { "section_id": "s12", - "heading": "hiddenタグの暗号化機能の処理イメージ", + "heading": "キャッシュした静的データの取得", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "キャッシュされるデータを保持するクラス(ExampleData)", "rst_labels": [] }, { "section_id": "s14", - "heading": "hiddenタグの暗号化機能の設定", + "heading": "キャッシュしたデータを使用するクラス", "rst_labels": [] }, { @@ -20040,7 +19307,7 @@ }, { "section_id": "s16", - "heading": "hiddenの暗号化処理", + "heading": "キャッシュにデータをロードする方法", "rst_labels": [] }, { @@ -20050,17 +19317,17 @@ }, { "section_id": "s18", - "heading": "hiddenの復号処理", + "heading": "オンデマンドロードの使用方法", "rst_labels": [] }, { "section_id": "s19", - "heading": "", + "heading": "ExampleDataをロードするクラス", "rst_labels": [] }, { "section_id": "s20", - "heading": "textタグの出力例", + "heading": "設定ファイル", "rst_labels": [] }, { @@ -20070,97 +19337,61 @@ }, { "section_id": "s22", - "heading": "passwordタグの出力例", + "heading": "一括ロード", "rst_labels": [] }, { "section_id": "s23", - "heading": "", + "heading": "ExampleDataをロードするクラス", "rst_labels": [] }, { "section_id": "s24", - "heading": "selectタグの出力例", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FacilitateTag.rst", - "format": "rst", - "filename": "07_FacilitateTag.rst", - "type": "component", - "category": "libraries", - "id": "libraries-07_FacilitateTag--s1", - "base_name": "libraries-07_FacilitateTag", - "output_path": "component/libraries/libraries-07_FacilitateTag--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_FacilitateTag--s1/", - "section_range": { - "start_line": 0, - "end_line": 117, - "sections": [ - "", - "入力画面と確認画面の表示切り替え", - "", - "確認画面での入力項目の表示" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-07_FacilitateTag", - "group_line_count": 117 - }, - "section_map": [ - { - "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "入力画面と確認画面の表示切り替え", + "section_id": "s25", + "heading": "設定内容詳細", "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s26", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "確認画面での入力項目の表示", + "section_id": "s27", + "heading": "静的データの再読み込み", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_BasicRules.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/06_SystemTimeProvider.rst", "format": "rst", - "filename": "07_BasicRules.rst", + "filename": "06_SystemTimeProvider.rst", "type": "component", "category": "libraries", - "id": "libraries-07_BasicRules--s1", - "base_name": "libraries-07_BasicRules", - "output_path": "component/libraries/libraries-07_BasicRules--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_BasicRules--s1/", + "id": "libraries-06_SystemTimeProvider--s1", + "base_name": "libraries-06_SystemTimeProvider", + "output_path": "component/libraries/libraries-06_SystemTimeProvider--s1.json", + "assets_dir": "component/libraries/assets/libraries-06_SystemTimeProvider--s1/", "section_range": { "start_line": 0, - "end_line": 260, + "end_line": 360, "sections": [ + "クラス図", + "SystemTimeUtilで提供される機能では不足している場合の対応方法", + "クラス図", + "テーブル定義", + "複数の業務日付の設定", + "設定ファイル", + "日付の上書き機能", + "業務日付のメンテナンス", + "BusinessDateUtilで提供される機能では不足している場合の対応方法", "", - "HTMLエスケープ", - "", - "改行、半角スペース変換", - "", - "HTMLエスケープせずに値を出力する方法" + "日付ユーティリティ" ], "section_ids": [ "s1", @@ -20168,86 +19399,107 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7", + "s8", + "s9", + "s10", + "s11" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "libraries-07_BasicRules", - "group_line_count": 260 + "original_id": "libraries-06_SystemTimeProvider", + "group_line_count": 360 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [] + "heading": "クラス図", + "rst_labels": [ + "system-date-time-feature" + ] }, { "section_id": "s2", - "heading": "HTMLエスケープ", + "heading": "SystemTimeUtilで提供される機能では不足している場合の対応方法", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "クラス図", "rst_labels": [] }, { "section_id": "s4", - "heading": "改行、半角スペース変換", - "rst_labels": [] + "heading": "テーブル定義", + "rst_labels": [ + "date_table" + ] }, { "section_id": "s5", - "heading": "", + "heading": "複数の業務日付の設定", "rst_labels": [] }, { "section_id": "s6", - "heading": "HTMLエスケープせずに値を出力する方法", + "heading": "設定ファイル", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "日付の上書き機能", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "業務日付のメンテナンス", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "BusinessDateUtilで提供される機能では不足している場合の対応方法", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "日付ユーティリティ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_OtherTag.rst", - "format": "rst", - "filename": "07_OtherTag.rst", - "type": "component", - "category": "libraries", - "id": "libraries-07_OtherTag", - "base_name": "libraries-07_OtherTag", - "output_path": "component/libraries/libraries-07_OtherTag.json", - "assets_dir": "component/libraries/assets/libraries-07_OtherTag/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTagList.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/03_TransactionManager.rst", "format": "rst", - "filename": "07_FormTagList.rst", + "filename": "03_TransactionManager.rst", "type": "component", "category": "libraries", - "id": "libraries-07_FormTagList--s1", - "base_name": "libraries-07_FormTagList", - "output_path": "component/libraries/libraries-07_FormTagList--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_FormTagList--s1/", + "id": "libraries-03_TransactionManager--s1", + "base_name": "libraries-03_TransactionManager", + "output_path": "component/libraries/libraries-03_TransactionManager--s1.json", + "assets_dir": "component/libraries/assets/libraries-03_TransactionManager--s1/", "section_range": { "start_line": 0, - "end_line": 383, + "end_line": 123, "sections": [ "", - "passwordタグ", + "概要", "", - "radioButtonタグ", + "特徴", "", - "checkboxタグ", + "要求", "", - "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", + "構造", "", - "List型変数に対応するカスタムタグの共通属性", - "" + "使用例" ], "section_ids": [ "s1", @@ -20259,28 +19511,25 @@ "s7", "s8", "s9", - "s10", - "s11" + "s10" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "libraries-07_FormTagList", - "group_line_count": 383 + "total_parts": 1, + "original_id": "libraries-03_TransactionManager", + "group_line_count": 123 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "form_input" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "passwordタグ", + "heading": "概要", "rst_labels": [] }, { @@ -20290,7 +19539,7 @@ }, { "section_id": "s4", - "heading": "radioButtonタグ", + "heading": "特徴", "rst_labels": [] }, { @@ -20300,7 +19549,7 @@ }, { "section_id": "s6", - "heading": "checkboxタグ", + "heading": "要求", "rst_labels": [] }, { @@ -20310,7 +19559,7 @@ }, { "section_id": "s8", - "heading": "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", + "heading": "構造", "rst_labels": [] }, { @@ -20320,73 +19569,71 @@ }, { "section_id": "s10", - "heading": "List型変数に対応するカスタムタグの共通属性", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "radioButtonsタグ、checkboxesタグ", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "selectタグ", + "heading": "使用例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_FormTagList.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", "format": "rst", - "filename": "07_FormTagList.rst", + "filename": "01_Log.rst", "type": "component", "category": "libraries", - "id": "libraries-07_FormTagList--s12", - "base_name": "libraries-07_FormTagList", - "output_path": "component/libraries/libraries-07_FormTagList--s12.json", - "assets_dir": "component/libraries/assets/libraries-07_FormTagList--s12/", + "id": "libraries-01_Log--s1", + "base_name": "libraries-01_Log", + "output_path": "component/libraries/libraries-01_Log--s1.json", + "assets_dir": "component/libraries/assets/libraries-01_Log--s1/", "section_range": { - "start_line": 383, - "end_line": 467, + "start_line": 0, + "end_line": 398, "sections": [ - "radioButtonsタグ、checkboxesタグ", "", - "selectタグ" + "概要", + "", + "特徴", + "", + "要求", + "", + "ログ出力要求受付処理", + "", + "各クラスの責務", + "インタフェース定義", + "クラス定義" ], "section_ids": [ - "s12", - "s13", - "s14" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-07_FormTagList", - "group_line_count": 84 + "part": 1, + "total_parts": 4, + "original_id": "libraries-01_Log", + "group_line_count": 398 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "form_input" + "logging" ] }, { "section_id": "s2", - "heading": "passwordタグ", + "heading": "概要", "rst_labels": [] }, { @@ -20396,7 +19643,7 @@ }, { "section_id": "s4", - "heading": "radioButtonタグ", + "heading": "特徴", "rst_labels": [] }, { @@ -20406,7 +19653,7 @@ }, { "section_id": "s6", - "heading": "checkboxタグ", + "heading": "要求", "rst_labels": [] }, { @@ -20416,7 +19663,7 @@ }, { "section_id": "s8", - "heading": "compositeKeyRadioButtonタグ、compositeKeyCheckboxタグ", + "heading": "ログ出力要求受付処理", "rst_labels": [] }, { @@ -20426,79 +19673,189 @@ }, { "section_id": "s10", - "heading": "List型変数に対応するカスタムタグの共通属性", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s12", - "heading": "radioButtonsタグ、checkboxesタグ", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "列挙型", "rst_labels": [] }, { "section_id": "s14", - "heading": "selectタグ", + "heading": "ロガー設定", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "ロガーのインスタンス構造", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "FileLogWriter", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "SynchronousFileLogWriter", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "ログライタにおけるレベルに応じた出力制御", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "StandardOutputLogWriter", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "BasicLogFormatter", + "rst_labels": [ + "boot_process" + ] + }, + { + "section_id": "s21", + "heading": "起動プロセス", + "rst_labels": [ + "processing_system" + ] + }, + { + "section_id": "s22", + "heading": "処理方式", + "rst_labels": [ + "execution_id" + ] + }, + { + "section_id": "s23", + "heading": "実行時ID", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "BasicLogFormatterのフォーマット指定", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "BasicLogFormatterの出力例", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "ログに出力するログレベルを表す文言の変更方法", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "ログライタのカスタマイズ方法", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "ログフォーマッタのカスタマイズ方法", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "ログ出力項目の変更方法", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "プロパティファイルの記述ルール", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s33", + "heading": "各種ログの出力", + "rst_labels": [ + "fw_log_policy" + ] + }, + { + "section_id": "s34", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s35", + "heading": "フレームワークのログ出力方針", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04_DbAccessSpec.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", "format": "rst", - "filename": "04_DbAccessSpec.rst", + "filename": "01_Log.rst", "type": "component", "category": "libraries", - "id": "libraries-04_DbAccessSpec--s1", - "base_name": "libraries-04_DbAccessSpec", - "output_path": "component/libraries/libraries-04_DbAccessSpec--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_DbAccessSpec--s1/", + "id": "libraries-01_Log--s13", + "base_name": "libraries-01_Log", + "output_path": "component/libraries/libraries-01_Log--s13.json", + "assets_dir": "component/libraries/assets/libraries-01_Log--s13/", "section_range": { - "start_line": 0, - "end_line": 333, + "start_line": 398, + "end_line": 707, "sections": [ - "" + "列挙型", + "ロガー設定", + "ロガーのインスタンス構造", + "FileLogWriter" ], "section_ids": [ - "s1" + "s13", + "s14", + "s15", + "s16" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-04_DbAccessSpec", - "group_line_count": 333 + "part": 2, + "total_parts": 4, + "original_id": "libraries-01_Log", + "group_line_count": 309 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "db-summary-label", - "db-feature-label", - "db-feature-2-label", - "db-feature-4-label", - "db-feature-5-label", - "db-feature-6-label", - "db-feature-7-label" + "logging" ] }, { "section_id": "s2", - "heading": "注意点", - "rst_labels": [ - "db-sql-injection-label", - "sql-injection-logic" - ] + "heading": "概要", + "rst_labels": [] }, { "section_id": "s3", @@ -20507,7 +19864,7 @@ }, { "section_id": "s4", - "heading": "全体構造", + "heading": "特徴", "rst_labels": [] }, { @@ -20517,318 +19874,214 @@ }, { "section_id": "s6", - "heading": "各機能単位の構造", + "heading": "要求", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04_DbAccessSpec.rst", - "format": "rst", - "filename": "04_DbAccessSpec.rst", - "type": "component", - "category": "libraries", - "id": "libraries-04_DbAccessSpec--s2", - "base_name": "libraries-04_DbAccessSpec", - "output_path": "component/libraries/libraries-04_DbAccessSpec--s2.json", - "assets_dir": "component/libraries/assets/libraries-04_DbAccessSpec--s2/", - "section_range": { - "start_line": 333, - "end_line": 479, - "sections": [ - "注意点", - "", - "全体構造", - "", - "各機能単位の構造" - ], - "section_ids": [ - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-04_DbAccessSpec", - "group_line_count": 146 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s7", "heading": "", - "rst_labels": [ - "db-summary-label", - "db-feature-label", - "db-feature-2-label", - "db-feature-4-label", - "db-feature-5-label", - "db-feature-6-label", - "db-feature-7-label" - ] + "rst_labels": [] }, { - "section_id": "s2", - "heading": "注意点", - "rst_labels": [ - "db-sql-injection-label", - "sql-injection-logic" - ] + "section_id": "s8", + "heading": "ログ出力要求受付処理", + "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s9", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "全体構造", + "section_id": "s10", + "heading": "各クラスの責務", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s11", + "heading": "インタフェース定義", "rst_labels": [] }, { - "section_id": "s6", - "heading": "各機能単位の構造", + "section_id": "s12", + "heading": "クラス定義", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02_Repository.rst", - "format": "rst", - "filename": "02_Repository.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_Repository--s1", - "base_name": "libraries-02_Repository", - "output_path": "component/libraries/libraries-02_Repository--s1.json", - "assets_dir": "component/libraries/assets/libraries-02_Repository--s1/", - "section_range": { - "start_line": 0, - "end_line": 209, - "sections": [ - "", - "概要", - "", - "特徴", - "", - "要求", - "", - "構成", - "インタフェース定義", - "クラス定義", - "", - "リポジトリの設定方法と使用方法", - "", - "コンポーネント初期化機能", - "", - "ファクトリインジェクション", - "", - "設定の上書き" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16", - "s17", - "s18" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-02_Repository", - "group_line_count": 209 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s13", + "heading": "列挙型", "rst_labels": [] }, { - "section_id": "s2", - "heading": "概要", + "section_id": "s14", + "heading": "ロガー設定", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s15", + "heading": "ロガーのインスタンス構造", "rst_labels": [] }, { - "section_id": "s4", - "heading": "特徴", + "section_id": "s16", + "heading": "FileLogWriter", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "SynchronousFileLogWriter", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "ログライタにおけるレベルに応じた出力制御", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "StandardOutputLogWriter", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "BasicLogFormatter", "rst_labels": [ - "initialize-label" + "boot_process" ] }, { - "section_id": "s5", - "heading": "", - "rst_labels": [] + "section_id": "s21", + "heading": "起動プロセス", + "rst_labels": [ + "processing_system" + ] }, { - "section_id": "s6", - "heading": "要求", + "section_id": "s22", + "heading": "処理方式", + "rst_labels": [ + "execution_id" + ] + }, + { + "section_id": "s23", + "heading": "実行時ID", "rst_labels": [] }, { - "section_id": "s7", - "heading": "", + "section_id": "s24", + "heading": "BasicLogFormatterのフォーマット指定", "rst_labels": [] }, { - "section_id": "s8", - "heading": "構成", + "section_id": "s25", + "heading": "BasicLogFormatterの出力例", "rst_labels": [] }, { - "section_id": "s9", - "heading": "インタフェース定義", + "section_id": "s26", + "heading": "ログに出力するログレベルを表す文言の変更方法", "rst_labels": [] }, { - "section_id": "s10", - "heading": "クラス定義", + "section_id": "s27", + "heading": "ログライタのカスタマイズ方法", "rst_labels": [] }, { - "section_id": "s11", - "heading": "", + "section_id": "s28", + "heading": "ログフォーマッタのカスタマイズ方法", "rst_labels": [] }, { - "section_id": "s12", - "heading": "リポジトリの設定方法と使用方法", + "section_id": "s29", + "heading": "ログ出力項目の変更方法", "rst_labels": [] }, { - "section_id": "s13", + "section_id": "s30", "heading": "", "rst_labels": [] }, { - "section_id": "s14", - "heading": "コンポーネント初期化機能", + "section_id": "s31", + "heading": "プロパティファイルの記述ルール", "rst_labels": [] }, { - "section_id": "s15", + "section_id": "s32", "heading": "", "rst_labels": [] }, { - "section_id": "s16", - "heading": "ファクトリインジェクション", - "rst_labels": [] + "section_id": "s33", + "heading": "各種ログの出力", + "rst_labels": [ + "fw_log_policy" + ] }, { - "section_id": "s17", + "section_id": "s34", "heading": "", "rst_labels": [] }, { - "section_id": "s18", - "heading": "設定の上書き", + "section_id": "s35", + "heading": "フレームワークのログ出力方針", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/05_StaticDataCache.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", "format": "rst", - "filename": "05_StaticDataCache.rst", + "filename": "01_Log.rst", "type": "component", "category": "libraries", - "id": "libraries-05_StaticDataCache--s1", - "base_name": "libraries-05_StaticDataCache", - "output_path": "component/libraries/libraries-05_StaticDataCache--s1.json", - "assets_dir": "component/libraries/assets/libraries-05_StaticDataCache--s1/", + "id": "libraries-01_Log--s17", + "base_name": "libraries-01_Log", + "output_path": "component/libraries/libraries-01_Log--s17.json", + "assets_dir": "component/libraries/assets/libraries-01_Log--s17/", "section_range": { - "start_line": 0, - "end_line": 383, + "start_line": 707, + "end_line": 1095, "sections": [ - "", - "概要", - "", - "特徴", - "", - "要求", - "", - "構成", - "インタフェース定義", - "クラス定義", - "", - "キャッシュした静的データの取得", - "キャッシュされるデータを保持するクラス(ExampleData)", - "キャッシュしたデータを使用するクラス", - "", - "キャッシュにデータをロードする方法", - "", - "オンデマンドロードの使用方法", - "ExampleDataをロードするクラス", - "設定ファイル", - "" + "SynchronousFileLogWriter", + "ログライタにおけるレベルに応じた出力制御", + "StandardOutputLogWriter", + "BasicLogFormatter", + "起動プロセス", + "処理方式", + "実行時ID", + "BasicLogFormatterのフォーマット指定", + "BasicLogFormatterの出力例" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16", "s17", "s18", "s19", "s20", - "s21" + "s21", + "s22", + "s23", + "s24", + "s25" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-05_StaticDataCache", - "group_line_count": 383 + "part": 3, + "total_parts": 4, + "original_id": "libraries-01_Log", + "group_line_count": 388 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "logging" + ] }, { "section_id": "s2", @@ -20862,148 +20115,206 @@ }, { "section_id": "s8", - "heading": "構成", + "heading": "ログ出力要求受付処理", "rst_labels": [] }, { "section_id": "s9", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "クラス定義", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s12", - "heading": "キャッシュした静的データの取得", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s13", - "heading": "キャッシュされるデータを保持するクラス(ExampleData)", + "heading": "列挙型", "rst_labels": [] }, { "section_id": "s14", - "heading": "キャッシュしたデータを使用するクラス", + "heading": "ロガー設定", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "ロガーのインスタンス構造", "rst_labels": [] }, { "section_id": "s16", - "heading": "キャッシュにデータをロードする方法", + "heading": "FileLogWriter", "rst_labels": [] }, { "section_id": "s17", - "heading": "", + "heading": "SynchronousFileLogWriter", "rst_labels": [] }, { "section_id": "s18", - "heading": "オンデマンドロードの使用方法", + "heading": "ログライタにおけるレベルに応じた出力制御", "rst_labels": [] }, { "section_id": "s19", - "heading": "ExampleDataをロードするクラス", + "heading": "StandardOutputLogWriter", "rst_labels": [] }, { "section_id": "s20", - "heading": "設定ファイル", - "rst_labels": [] + "heading": "BasicLogFormatter", + "rst_labels": [ + "boot_process" + ] }, { "section_id": "s21", - "heading": "", - "rst_labels": [] + "heading": "起動プロセス", + "rst_labels": [ + "processing_system" + ] }, { "section_id": "s22", - "heading": "一括ロード", - "rst_labels": [] + "heading": "処理方式", + "rst_labels": [ + "execution_id" + ] }, { "section_id": "s23", - "heading": "ExampleDataをロードするクラス", + "heading": "実行時ID", "rst_labels": [] }, { "section_id": "s24", - "heading": "", + "heading": "BasicLogFormatterのフォーマット指定", "rst_labels": [] }, { "section_id": "s25", - "heading": "設定内容詳細", + "heading": "BasicLogFormatterの出力例", "rst_labels": [] }, { "section_id": "s26", - "heading": "", + "heading": "ログに出力するログレベルを表す文言の変更方法", "rst_labels": [] }, { "section_id": "s27", - "heading": "静的データの再読み込み", + "heading": "ログライタのカスタマイズ方法", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "ログフォーマッタのカスタマイズ方法", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "ログ出力項目の変更方法", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "プロパティファイルの記述ルール", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s33", + "heading": "各種ログの出力", + "rst_labels": [ + "fw_log_policy" + ] + }, + { + "section_id": "s34", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s35", + "heading": "フレームワークのログ出力方針", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/05_StaticDataCache.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", "format": "rst", - "filename": "05_StaticDataCache.rst", + "filename": "01_Log.rst", "type": "component", "category": "libraries", - "id": "libraries-05_StaticDataCache--s22", - "base_name": "libraries-05_StaticDataCache", - "output_path": "component/libraries/libraries-05_StaticDataCache--s22.json", - "assets_dir": "component/libraries/assets/libraries-05_StaticDataCache--s22/", + "id": "libraries-01_Log--s26", + "base_name": "libraries-01_Log", + "output_path": "component/libraries/libraries-01_Log--s26.json", + "assets_dir": "component/libraries/assets/libraries-01_Log--s26/", "section_range": { - "start_line": 383, - "end_line": 578, + "start_line": 1095, + "end_line": 1495, "sections": [ - "一括ロード", - "ExampleDataをロードするクラス", + "ログに出力するログレベルを表す文言の変更方法", + "ログライタのカスタマイズ方法", + "ログフォーマッタのカスタマイズ方法", + "ログ出力項目の変更方法", "", - "設定内容詳細", + "プロパティファイルの記述ルール", "", - "静的データの再読み込み" + "各種ログの出力", + "", + "フレームワークのログ出力方針" ], "section_ids": [ - "s22", - "s23", - "s24", - "s25", "s26", - "s27" + "s27", + "s28", + "s29", + "s30", + "s31", + "s32", + "s33", + "s34", + "s35" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-05_StaticDataCache", - "group_line_count": 195 + "part": 4, + "total_parts": 4, + "original_id": "libraries-01_Log", + "group_line_count": 400 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "logging" + ] }, { "section_id": "s2", @@ -21037,239 +20348,185 @@ }, { "section_id": "s8", - "heading": "構成", + "heading": "ログ出力要求受付処理", "rst_labels": [] }, { "section_id": "s9", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "クラス定義", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s12", - "heading": "キャッシュした静的データの取得", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s13", - "heading": "キャッシュされるデータを保持するクラス(ExampleData)", + "heading": "列挙型", "rst_labels": [] }, { "section_id": "s14", - "heading": "キャッシュしたデータを使用するクラス", + "heading": "ロガー設定", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "ロガーのインスタンス構造", "rst_labels": [] }, { "section_id": "s16", - "heading": "キャッシュにデータをロードする方法", + "heading": "FileLogWriter", "rst_labels": [] }, { "section_id": "s17", - "heading": "", + "heading": "SynchronousFileLogWriter", "rst_labels": [] }, { "section_id": "s18", - "heading": "オンデマンドロードの使用方法", + "heading": "ログライタにおけるレベルに応じた出力制御", "rst_labels": [] }, { "section_id": "s19", - "heading": "ExampleDataをロードするクラス", + "heading": "StandardOutputLogWriter", "rst_labels": [] }, { "section_id": "s20", - "heading": "設定ファイル", - "rst_labels": [] + "heading": "BasicLogFormatter", + "rst_labels": [ + "boot_process" + ] }, { "section_id": "s21", - "heading": "", - "rst_labels": [] + "heading": "起動プロセス", + "rst_labels": [ + "processing_system" + ] }, { "section_id": "s22", - "heading": "一括ロード", - "rst_labels": [] + "heading": "処理方式", + "rst_labels": [ + "execution_id" + ] }, { "section_id": "s23", - "heading": "ExampleDataをロードするクラス", + "heading": "実行時ID", "rst_labels": [] }, { "section_id": "s24", - "heading": "", + "heading": "BasicLogFormatterのフォーマット指定", "rst_labels": [] }, { "section_id": "s25", - "heading": "設定内容詳細", + "heading": "BasicLogFormatterの出力例", "rst_labels": [] }, { "section_id": "s26", - "heading": "", + "heading": "ログに出力するログレベルを表す文言の変更方法", "rst_labels": [] }, { "section_id": "s27", - "heading": "静的データの再読み込み", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/06_SystemTimeProvider.rst", - "format": "rst", - "filename": "06_SystemTimeProvider.rst", - "type": "component", - "category": "libraries", - "id": "libraries-06_SystemTimeProvider--s1", - "base_name": "libraries-06_SystemTimeProvider", - "output_path": "component/libraries/libraries-06_SystemTimeProvider--s1.json", - "assets_dir": "component/libraries/assets/libraries-06_SystemTimeProvider--s1/", - "section_range": { - "start_line": 0, - "end_line": 360, - "sections": [ - "クラス図", - "SystemTimeUtilで提供される機能では不足している場合の対応方法", - "クラス図", - "テーブル定義", - "複数の業務日付の設定", - "設定ファイル", - "日付の上書き機能", - "業務日付のメンテナンス", - "BusinessDateUtilで提供される機能では不足している場合の対応方法", - "", - "日付ユーティリティ" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-06_SystemTimeProvider", - "group_line_count": 360 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "クラス図", - "rst_labels": [ - "system-date-time-feature" - ] - }, - { - "section_id": "s2", - "heading": "SystemTimeUtilで提供される機能では不足している場合の対応方法", + "heading": "ログライタのカスタマイズ方法", "rst_labels": [] }, { - "section_id": "s3", - "heading": "クラス図", + "section_id": "s28", + "heading": "ログフォーマッタのカスタマイズ方法", "rst_labels": [] }, { - "section_id": "s4", - "heading": "テーブル定義", - "rst_labels": [ - "date_table" - ] - }, - { - "section_id": "s5", - "heading": "複数の業務日付の設定", + "section_id": "s29", + "heading": "ログ出力項目の変更方法", "rst_labels": [] }, { - "section_id": "s6", - "heading": "設定ファイル", + "section_id": "s30", + "heading": "", "rst_labels": [] }, { - "section_id": "s7", - "heading": "日付の上書き機能", + "section_id": "s31", + "heading": "プロパティファイルの記述ルール", "rst_labels": [] }, { - "section_id": "s8", - "heading": "業務日付のメンテナンス", + "section_id": "s32", + "heading": "", "rst_labels": [] }, { - "section_id": "s9", - "heading": "BusinessDateUtilで提供される機能では不足している場合の対応方法", - "rst_labels": [] + "section_id": "s33", + "heading": "各種ログの出力", + "rst_labels": [ + "fw_log_policy" + ] }, { - "section_id": "s10", + "section_id": "s34", "heading": "", "rst_labels": [] }, { - "section_id": "s11", - "heading": "日付ユーティリティ", + "section_id": "s35", + "heading": "フレームワークのログ出力方針", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/03_TransactionManager.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/07_Message.rst", "format": "rst", - "filename": "03_TransactionManager.rst", + "filename": "07_Message.rst", "type": "component", "category": "libraries", - "id": "libraries-03_TransactionManager--s1", - "base_name": "libraries-03_TransactionManager", - "output_path": "component/libraries/libraries-03_TransactionManager--s1.json", - "assets_dir": "component/libraries/assets/libraries-03_TransactionManager--s1/", + "id": "libraries-07_Message--s1", + "base_name": "libraries-07_Message", + "output_path": "component/libraries/libraries-07_Message--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_Message--s1/", "section_range": { "start_line": 0, - "end_line": 123, + "end_line": 354, "sections": [ "", "概要", "", "特徴", + "メッセージテーブル", + "テーブル定義の例", "", - "要求", + "メッセージの取得", "", - "構造", + "メッセージのフォーマット", "", - "使用例" + "国際化", + "", + "オプションパラメータの国際化", + "", + "例外によるメッセージの通知", + "" ], "section_ids": [ "s1", @@ -21281,15 +20538,22 @@ "s7", "s8", "s9", - "s10" + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "libraries-03_TransactionManager", - "group_line_count": 123 + "total_parts": 2, + "original_id": "libraries-07_Message", + "group_line_count": 354 }, "section_map": [ { @@ -21314,12 +20578,12 @@ }, { "section_id": "s5", - "heading": "", + "heading": "メッセージテーブル", "rst_labels": [] }, { "section_id": "s6", - "heading": "要求", + "heading": "テーブル定義の例", "rst_labels": [] }, { @@ -21329,7 +20593,7 @@ }, { "section_id": "s8", - "heading": "構造", + "heading": "メッセージの取得", "rst_labels": [] }, { @@ -21339,288 +20603,104 @@ }, { "section_id": "s10", - "heading": "使用例", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", - "format": "rst", - "filename": "01_Log.rst", - "type": "component", - "category": "libraries", - "id": "libraries-01_Log--s1", - "base_name": "libraries-01_Log", - "output_path": "component/libraries/libraries-01_Log--s1.json", - "assets_dir": "component/libraries/assets/libraries-01_Log--s1/", - "section_range": { - "start_line": 0, - "end_line": 398, - "sections": [ - "", - "概要", - "", - "特徴", - "", - "要求", - "", - "ログ出力要求受付処理", - "", - "各クラスの責務", - "インタフェース定義", - "クラス定義" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 4, - "original_id": "libraries-01_Log", - "group_line_count": 398 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "logging" - ] - }, - { - "section_id": "s2", - "heading": "概要", + "heading": "メッセージのフォーマット", "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s11", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "特徴", + "section_id": "s12", + "heading": "国際化", "rst_labels": [] }, { - "section_id": "s5", + "section_id": "s13", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "要求", + "section_id": "s14", + "heading": "オプションパラメータの国際化", "rst_labels": [] }, { - "section_id": "s7", + "section_id": "s15", "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "ログ出力要求受付処理", + "section_id": "s16", + "heading": "例外によるメッセージの通知", "rst_labels": [] }, { - "section_id": "s9", + "section_id": "s17", "heading": "", "rst_labels": [] }, { - "section_id": "s10", - "heading": "各クラスの責務", + "section_id": "s18", + "heading": "設定の記述", "rst_labels": [] }, { - "section_id": "s11", - "heading": "インタフェース定義", + "section_id": "s19", + "heading": "nablarch.core.message.StringResourceHolder の設定", "rst_labels": [] }, { - "section_id": "s12", - "heading": "クラス定義", + "section_id": "s20", + "heading": "nablarch.core.cache.BasicStaticDataCache クラスの設定", "rst_labels": [] }, { - "section_id": "s13", - "heading": "列挙型", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "ロガー設定", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "ロガーのインスタンス構造", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "FileLogWriter", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "SynchronousFileLogWriter", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "ログライタにおけるレベルに応じた出力制御", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "StandardOutputLogWriter", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "BasicLogFormatter", - "rst_labels": [ - "boot_process" - ] - }, - { - "section_id": "s21", - "heading": "起動プロセス", - "rst_labels": [ - "processing_system" - ] - }, - { - "section_id": "s22", - "heading": "処理方式", - "rst_labels": [ - "execution_id" - ] - }, - { - "section_id": "s23", - "heading": "実行時ID", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "BasicLogFormatterのフォーマット指定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "BasicLogFormatterの出力例", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "ログに出力するログレベルを表す文言の変更方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "ログライタのカスタマイズ方法", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "ログフォーマッタのカスタマイズ方法", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "ログ出力項目の変更方法", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "プロパティファイルの記述ルール", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "各種ログの出力", - "rst_labels": [ - "fw_log_policy" - ] - }, - { - "section_id": "s34", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "フレームワークのログ出力方針", + "section_id": "s21", + "heading": "nablarch.core.message.BasicStringResourceLoader クラスの設定", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/07_Message.rst", "format": "rst", - "filename": "01_Log.rst", + "filename": "07_Message.rst", "type": "component", "category": "libraries", - "id": "libraries-01_Log--s13", - "base_name": "libraries-01_Log", - "output_path": "component/libraries/libraries-01_Log--s13.json", - "assets_dir": "component/libraries/assets/libraries-01_Log--s13/", + "id": "libraries-07_Message--s18", + "base_name": "libraries-07_Message", + "output_path": "component/libraries/libraries-07_Message--s18.json", + "assets_dir": "component/libraries/assets/libraries-07_Message--s18/", "section_range": { - "start_line": 398, - "end_line": 707, + "start_line": 354, + "end_line": 434, "sections": [ - "列挙型", - "ロガー設定", - "ロガーのインスタンス構造", - "FileLogWriter" + "設定の記述", + "nablarch.core.message.StringResourceHolder の設定", + "nablarch.core.cache.BasicStaticDataCache クラスの設定", + "nablarch.core.message.BasicStringResourceLoader クラスの設定" ], "section_ids": [ - "s13", - "s14", - "s15", - "s16" + "s18", + "s19", + "s20", + "s21" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 4, - "original_id": "libraries-01_Log", - "group_line_count": 309 + "total_parts": 2, + "original_id": "libraries-07_Message", + "group_line_count": 80 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "logging" - ] + "rst_labels": [] }, { "section_id": "s2", @@ -21639,12 +20719,12 @@ }, { "section_id": "s5", - "heading": "", + "heading": "メッセージテーブル", "rst_labels": [] }, { "section_id": "s6", - "heading": "要求", + "heading": "テーブル定義の例", "rst_labels": [] }, { @@ -21654,7 +20734,7 @@ }, { "section_id": "s8", - "heading": "ログ出力要求受付処理", + "heading": "メッセージの取得", "rst_labels": [] }, { @@ -21664,639 +20744,659 @@ }, { "section_id": "s10", - "heading": "各クラスの責務", + "heading": "メッセージのフォーマット", "rst_labels": [] }, { "section_id": "s11", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "クラス定義", + "heading": "国際化", "rst_labels": [] }, { "section_id": "s13", - "heading": "列挙型", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "ロガー設定", + "heading": "オプションパラメータの国際化", "rst_labels": [] }, { "section_id": "s15", - "heading": "ロガーのインスタンス構造", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "FileLogWriter", + "heading": "例外によるメッセージの通知", "rst_labels": [] }, { "section_id": "s17", - "heading": "SynchronousFileLogWriter", + "heading": "", "rst_labels": [] }, { "section_id": "s18", - "heading": "ログライタにおけるレベルに応じた出力制御", + "heading": "設定の記述", "rst_labels": [] }, { "section_id": "s19", - "heading": "StandardOutputLogWriter", + "heading": "nablarch.core.message.StringResourceHolder の設定", "rst_labels": [] }, { "section_id": "s20", - "heading": "BasicLogFormatter", - "rst_labels": [ - "boot_process" - ] + "heading": "nablarch.core.cache.BasicStaticDataCache クラスの設定", + "rst_labels": [] }, { "section_id": "s21", - "heading": "起動プロセス", - "rst_labels": [ - "processing_system" - ] - }, + "heading": "nablarch.core.message.BasicStringResourceLoader クラスの設定", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08_Validation.rst", + "format": "rst", + "filename": "08_Validation.rst", + "type": "component", + "category": "libraries", + "id": "libraries-08_Validation--s1", + "base_name": "libraries-08_Validation", + "output_path": "component/libraries/libraries-08_Validation--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_Validation--s1/", + "section_range": { + "start_line": 0, + "end_line": 136, + "sections": [ + "", + "概要", + "", + "特徴", + "", + "要求" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-08_Validation", + "group_line_count": 136 + }, + "section_map": [ { - "section_id": "s22", - "heading": "処理方式", + "section_id": "s1", + "heading": "", "rst_labels": [ - "execution_id" + "validation-and-form", + "validation-abstract" ] }, { - "section_id": "s23", - "heading": "実行時ID", + "section_id": "s2", + "heading": "概要", "rst_labels": [] }, { - "section_id": "s24", - "heading": "BasicLogFormatterのフォーマット指定", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s25", - "heading": "BasicLogFormatterの出力例", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "ログに出力するログレベルを表す文言の変更方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "ログライタのカスタマイズ方法", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "ログフォーマッタのカスタマイズ方法", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "ログ出力項目の変更方法", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "プロパティファイルの記述ルール", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "", + "section_id": "s4", + "heading": "特徴", "rst_labels": [] }, { - "section_id": "s33", - "heading": "各種ログの出力", - "rst_labels": [ - "fw_log_policy" - ] - }, - { - "section_id": "s34", + "section_id": "s5", "heading": "", "rst_labels": [] }, { - "section_id": "s35", - "heading": "フレームワークのログ出力方針", + "section_id": "s6", + "heading": "要求", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/02_SqlLog.rst", "format": "rst", - "filename": "01_Log.rst", + "filename": "02_SqlLog.rst", "type": "component", "category": "libraries", - "id": "libraries-01_Log--s17", - "base_name": "libraries-01_Log", - "output_path": "component/libraries/libraries-01_Log--s17.json", - "assets_dir": "component/libraries/assets/libraries-01_Log--s17/", + "id": "libraries-02_SqlLog--s1", + "base_name": "libraries-02_SqlLog", + "output_path": "component/libraries/libraries-02_SqlLog--s1.json", + "assets_dir": "component/libraries/assets/libraries-02_SqlLog--s1/", "section_range": { - "start_line": 707, - "end_line": 1095, + "start_line": 0, + "end_line": 387, "sections": [ - "SynchronousFileLogWriter", - "ログライタにおけるレベルに応じた出力制御", - "StandardOutputLogWriter", - "BasicLogFormatter", - "起動プロセス", - "処理方式", - "実行時ID", - "BasicLogFormatterのフォーマット指定", - "BasicLogFormatterの出力例" + "", + "SQLログの出力", + "SqlPStatement#retrieveメソッドの検索開始時", + "SqlPStatement#retrieveメソッドの検索終了時", + "SqlPStatement#executeメソッドの実行開始時", + "SqlPStatement#executeメソッドの実行終了時", + "SqlPStatement#executeQueryメソッドの検索開始時", + "SqlPStatement#executeQueryメソッドの検索終了時", + "SqlPStatement#executeUpdateメソッドの更新開始時", + "SqlPStatement#executeUpdateメソッドの更新終了時", + "SqlPStatement#executeBatchメソッドの更新開始時", + "SqlPStatement#executeBatchメソッドの更新終了時", + "SqlPStatement#retrieveメソッドの検索開始時", + "SqlPStatement#retrieveメソッドの検索終了時", + "SqlPStatement#executeメソッドの実行開始時", + "SqlPStatement#executeメソッドの実行終了時" ], "section_ids": [ - "s17", - "s18", - "s19", - "s20", - "s21", - "s22", - "s23", - "s24", - "s25" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 4, - "original_id": "libraries-01_Log", - "group_line_count": 388 + "part": 1, + "total_parts": 2, + "original_id": "libraries-02_SqlLog", + "group_line_count": 387 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "logging" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "SQLログの出力", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "SqlPStatement#retrieveメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s4", - "heading": "特徴", + "heading": "SqlPStatement#retrieveメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "SqlPStatement#executeメソッドの実行開始時", "rst_labels": [] }, { "section_id": "s6", - "heading": "要求", + "heading": "SqlPStatement#executeメソッドの実行終了時", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "SqlPStatement#executeQueryメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s8", - "heading": "ログ出力要求受付処理", + "heading": "SqlPStatement#executeQueryメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s10", - "heading": "各クラスの責務", + "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", "rst_labels": [] }, { "section_id": "s11", - "heading": "インタフェース定義", + "heading": "SqlPStatement#executeBatchメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s12", - "heading": "クラス定義", + "heading": "SqlPStatement#executeBatchメソッドの更新終了時", "rst_labels": [] }, { "section_id": "s13", - "heading": "列挙型", + "heading": "SqlPStatement#retrieveメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s14", - "heading": "ロガー設定", + "heading": "SqlPStatement#retrieveメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s15", - "heading": "ロガーのインスタンス構造", + "heading": "SqlPStatement#executeメソッドの実行開始時", "rst_labels": [] }, { "section_id": "s16", - "heading": "FileLogWriter", + "heading": "SqlPStatement#executeメソッドの実行終了時", "rst_labels": [] }, { "section_id": "s17", - "heading": "SynchronousFileLogWriter", + "heading": "SqlPStatement#executeQueryメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s18", - "heading": "ログライタにおけるレベルに応じた出力制御", + "heading": "SqlPStatement#executeQueryメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s19", - "heading": "StandardOutputLogWriter", + "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s20", - "heading": "BasicLogFormatter", - "rst_labels": [ - "boot_process" - ] + "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "rst_labels": [] }, { "section_id": "s21", - "heading": "起動プロセス", - "rst_labels": [ - "processing_system" - ] + "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "rst_labels": [] }, { "section_id": "s22", - "heading": "処理方式", - "rst_labels": [ - "execution_id" - ] - }, - { - "section_id": "s23", - "heading": "実行時ID", + "heading": "SqlPStatement#executeBatchメソッドの更新終了時", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/02_SqlLog.rst", + "format": "rst", + "filename": "02_SqlLog.rst", + "type": "component", + "category": "libraries", + "id": "libraries-02_SqlLog--s17", + "base_name": "libraries-02_SqlLog", + "output_path": "component/libraries/libraries-02_SqlLog--s17.json", + "assets_dir": "component/libraries/assets/libraries-02_SqlLog--s17/", + "section_range": { + "start_line": 387, + "end_line": 558, + "sections": [ + "SqlPStatement#executeQueryメソッドの検索開始時", + "SqlPStatement#executeQueryメソッドの検索終了時", + "SqlPStatement#executeUpdateメソッドの更新開始時", + "SqlPStatement#executeUpdateメソッドの更新終了時", + "SqlPStatement#executeBatchメソッドの更新開始時", + "SqlPStatement#executeBatchメソッドの更新終了時" + ], + "section_ids": [ + "s17", + "s18", + "s19", + "s20", + "s21", + "s22" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-02_SqlLog", + "group_line_count": 171 + }, + "section_map": [ { - "section_id": "s24", - "heading": "BasicLogFormatterのフォーマット指定", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s25", - "heading": "BasicLogFormatterの出力例", + "section_id": "s2", + "heading": "SQLログの出力", "rst_labels": [] }, { - "section_id": "s26", - "heading": "ログに出力するログレベルを表す文言の変更方法", + "section_id": "s3", + "heading": "SqlPStatement#retrieveメソッドの検索開始時", "rst_labels": [] }, { - "section_id": "s27", - "heading": "ログライタのカスタマイズ方法", + "section_id": "s4", + "heading": "SqlPStatement#retrieveメソッドの検索終了時", "rst_labels": [] }, { - "section_id": "s28", - "heading": "ログフォーマッタのカスタマイズ方法", + "section_id": "s5", + "heading": "SqlPStatement#executeメソッドの実行開始時", "rst_labels": [] }, { - "section_id": "s29", - "heading": "ログ出力項目の変更方法", + "section_id": "s6", + "heading": "SqlPStatement#executeメソッドの実行終了時", "rst_labels": [] }, { - "section_id": "s30", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "プロパティファイルの記述ルール", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "各種ログの出力", - "rst_labels": [ - "fw_log_policy" - ] - }, - { - "section_id": "s34", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "フレームワークのログ出力方針", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01_Log.rst", - "format": "rst", - "filename": "01_Log.rst", - "type": "component", - "category": "libraries", - "id": "libraries-01_Log--s26", - "base_name": "libraries-01_Log", - "output_path": "component/libraries/libraries-01_Log--s26.json", - "assets_dir": "component/libraries/assets/libraries-01_Log--s26/", - "section_range": { - "start_line": 1095, - "end_line": 1495, - "sections": [ - "ログに出力するログレベルを表す文言の変更方法", - "ログライタのカスタマイズ方法", - "ログフォーマッタのカスタマイズ方法", - "ログ出力項目の変更方法", - "", - "プロパティファイルの記述ルール", - "", - "各種ログの出力", - "", - "フレームワークのログ出力方針" - ], - "section_ids": [ - "s26", - "s27", - "s28", - "s29", - "s30", - "s31", - "s32", - "s33", - "s34", - "s35" - ] - }, - "split_info": { - "is_split": true, - "part": 4, - "total_parts": 4, - "original_id": "libraries-01_Log", - "group_line_count": 400 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "logging" - ] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "特徴", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", + "section_id": "s7", + "heading": "SqlPStatement#executeQueryメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s8", - "heading": "ログ出力要求受付処理", + "heading": "SqlPStatement#executeQueryメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s10", - "heading": "各クラスの責務", + "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", "rst_labels": [] }, { "section_id": "s11", - "heading": "インタフェース定義", + "heading": "SqlPStatement#executeBatchメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s12", - "heading": "クラス定義", + "heading": "SqlPStatement#executeBatchメソッドの更新終了時", "rst_labels": [] }, { "section_id": "s13", - "heading": "列挙型", + "heading": "SqlPStatement#retrieveメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s14", - "heading": "ロガー設定", + "heading": "SqlPStatement#retrieveメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s15", - "heading": "ロガーのインスタンス構造", + "heading": "SqlPStatement#executeメソッドの実行開始時", "rst_labels": [] }, { "section_id": "s16", - "heading": "FileLogWriter", + "heading": "SqlPStatement#executeメソッドの実行終了時", "rst_labels": [] }, { "section_id": "s17", - "heading": "SynchronousFileLogWriter", + "heading": "SqlPStatement#executeQueryメソッドの検索開始時", "rst_labels": [] }, { "section_id": "s18", - "heading": "ログライタにおけるレベルに応じた出力制御", + "heading": "SqlPStatement#executeQueryメソッドの検索終了時", "rst_labels": [] }, { "section_id": "s19", - "heading": "StandardOutputLogWriter", + "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", "rst_labels": [] }, { "section_id": "s20", - "heading": "BasicLogFormatter", - "rst_labels": [ - "boot_process" - ] + "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "rst_labels": [] }, { "section_id": "s21", - "heading": "起動プロセス", - "rst_labels": [ - "processing_system" - ] + "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "rst_labels": [] }, { "section_id": "s22", - "heading": "処理方式", - "rst_labels": [ - "execution_id" - ] - }, + "heading": "SqlPStatement#executeBatchメソッドの更新終了時", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/03_PerformanceLog.rst", + "format": "rst", + "filename": "03_PerformanceLog.rst", + "type": "component", + "category": "libraries", + "id": "libraries-03_PerformanceLog--s1", + "base_name": "libraries-03_PerformanceLog", + "output_path": "component/libraries/libraries-03_PerformanceLog--s1.json", + "assets_dir": "component/libraries/assets/libraries-03_PerformanceLog--s1/", + "section_range": { + "start_line": 0, + "end_line": 197, + "sections": [ + "", + "パフォーマンスログの出力" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-03_PerformanceLog", + "group_line_count": 197 + }, + "section_map": [ { - "section_id": "s23", - "heading": "実行時ID", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s24", - "heading": "BasicLogFormatterのフォーマット指定", + "section_id": "s2", + "heading": "パフォーマンスログの出力", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/04_HttpAccessLog.rst", + "format": "rst", + "filename": "04_HttpAccessLog.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_HttpAccessLog--s1", + "base_name": "libraries-04_HttpAccessLog", + "output_path": "component/libraries/libraries-04_HttpAccessLog--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_HttpAccessLog--s1/", + "section_range": { + "start_line": 0, + "end_line": 336, + "sections": [ + "", + "HTTPアクセスログの出力", + "リクエスト処理開始時のログ出力に使用するフォーマット", + "hiddenパラメータ復号後のログ出力に使用するフォーマット", + "ディスパッチ先クラス決定後のログ出力に使用するフォーマット" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "libraries-04_HttpAccessLog", + "group_line_count": 336 + }, + "section_map": [ { - "section_id": "s25", - "heading": "BasicLogFormatterの出力例", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s26", - "heading": "ログに出力するログレベルを表す文言の変更方法", + "section_id": "s2", + "heading": "HTTPアクセスログの出力", "rst_labels": [] }, { - "section_id": "s27", - "heading": "ログライタのカスタマイズ方法", + "section_id": "s3", + "heading": "リクエスト処理開始時のログ出力に使用するフォーマット", "rst_labels": [] }, { - "section_id": "s28", - "heading": "ログフォーマッタのカスタマイズ方法", + "section_id": "s4", + "heading": "hiddenパラメータ復号後のログ出力に使用するフォーマット", "rst_labels": [] }, { - "section_id": "s29", - "heading": "ログ出力項目の変更方法", + "section_id": "s5", + "heading": "ディスパッチ先クラス決定後のログ出力に使用するフォーマット", "rst_labels": [] }, { - "section_id": "s30", + "section_id": "s6", + "heading": "リクエスト処理終了時のログ出力に使用するフォーマット", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/04_HttpAccessLog.rst", + "format": "rst", + "filename": "04_HttpAccessLog.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_HttpAccessLog--s6", + "base_name": "libraries-04_HttpAccessLog", + "output_path": "component/libraries/libraries-04_HttpAccessLog--s6.json", + "assets_dir": "component/libraries/assets/libraries-04_HttpAccessLog--s6/", + "section_range": { + "start_line": 336, + "end_line": 441, + "sections": [ + "リクエスト処理終了時のログ出力に使用するフォーマット" + ], + "section_ids": [ + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-04_HttpAccessLog", + "group_line_count": 105 + }, + "section_map": [ + { + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s31", - "heading": "プロパティファイルの記述ルール", + "section_id": "s2", + "heading": "HTTPアクセスログの出力", "rst_labels": [] }, { - "section_id": "s32", - "heading": "", + "section_id": "s3", + "heading": "リクエスト処理開始時のログ出力に使用するフォーマット", "rst_labels": [] }, { - "section_id": "s33", - "heading": "各種ログの出力", - "rst_labels": [ - "fw_log_policy" - ] + "section_id": "s4", + "heading": "hiddenパラメータ復号後のログ出力に使用するフォーマット", + "rst_labels": [] }, { - "section_id": "s34", - "heading": "", + "section_id": "s5", + "heading": "ディスパッチ先クラス決定後のログ出力に使用するフォーマット", "rst_labels": [] }, { - "section_id": "s35", - "heading": "フレームワークのログ出力方針", + "section_id": "s6", + "heading": "リクエスト処理終了時のログ出力に使用するフォーマット", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/07_Message.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_04_Repository_override.rst", "format": "rst", - "filename": "07_Message.rst", + "filename": "02_04_Repository_override.rst", "type": "component", "category": "libraries", - "id": "libraries-07_Message--s1", - "base_name": "libraries-07_Message", - "output_path": "component/libraries/libraries-07_Message--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_Message--s1/", + "id": "libraries-02_04_Repository_override--s1", + "base_name": "libraries-02_04_Repository_override", + "output_path": "component/libraries/libraries-02_04_Repository_override--s1.json", + "assets_dir": "component/libraries/assets/libraries-02_04_Repository_override--s1/", "section_range": { "start_line": 0, - "end_line": 354, + "end_line": 397, "sections": [ - "", - "概要", - "", - "特徴", - "メッセージテーブル", - "テーブル定義の例", - "", - "メッセージの取得", - "", - "メッセージのフォーマット", - "", - "国際化", - "", - "オプションパラメータの国際化", - "", - "例外によるメッセージの通知", - "" + "環境設定ファイル(test1.conf)", + "環境設定ファイル(test2.conf)", + "コンポーネント設定ファイルを読み込む", + "設定値の取得例", + "使用するクラス", + "コンポーネント設定ファイルの例", + "設定したコンポーネントの取得例", + "読み込み元の設定ファイル", + "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", + "import-example1.xml", + "import-example2.xml", + "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", + "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", + "環境設定ファイル(hello-system-property.config)", + "コンポーネント設定ファイル(hello-system-property.xml)", + "設定値のロードの実装例" ], "section_ids": [ "s1", @@ -22314,286 +21414,242 @@ "s13", "s14", "s15", - "s16", - "s17" + "s16" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 2, - "original_id": "libraries-07_Message", - "group_line_count": 354 + "original_id": "libraries-02_04_Repository_override", + "group_line_count": 397 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "環境設定ファイル(test1.conf)", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "環境設定ファイル(test2.conf)", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "コンポーネント設定ファイルを読み込む", "rst_labels": [] }, { "section_id": "s4", - "heading": "特徴", + "heading": "設定値の取得例", "rst_labels": [] }, { "section_id": "s5", - "heading": "メッセージテーブル", + "heading": "使用するクラス", "rst_labels": [] }, { "section_id": "s6", - "heading": "テーブル定義の例", + "heading": "コンポーネント設定ファイルの例", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "設定したコンポーネントの取得例", "rst_labels": [] }, { "section_id": "s8", - "heading": "メッセージの取得", + "heading": "読み込み元の設定ファイル", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", "rst_labels": [] }, { "section_id": "s10", - "heading": "メッセージのフォーマット", + "heading": "import-example1.xml", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "import-example2.xml", "rst_labels": [] }, { "section_id": "s12", - "heading": "国際化", + "heading": "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", "rst_labels": [] }, { "section_id": "s14", - "heading": "オプションパラメータの国際化", + "heading": "環境設定ファイル(hello-system-property.config)", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "コンポーネント設定ファイル(hello-system-property.xml)", "rst_labels": [] }, { "section_id": "s16", - "heading": "例外によるメッセージの通知", + "heading": "設定値のロードの実装例", "rst_labels": [] }, { "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "設定の記述", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "nablarch.core.message.StringResourceHolder の設定", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "nablarch.core.cache.BasicStaticDataCache クラスの設定", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "nablarch.core.message.BasicStringResourceLoader クラスの設定", + "heading": "設定したコンポーネントを取得する実装例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/07_Message.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_04_Repository_override.rst", "format": "rst", - "filename": "07_Message.rst", + "filename": "02_04_Repository_override.rst", "type": "component", "category": "libraries", - "id": "libraries-07_Message--s18", - "base_name": "libraries-07_Message", - "output_path": "component/libraries/libraries-07_Message--s18.json", - "assets_dir": "component/libraries/assets/libraries-07_Message--s18/", + "id": "libraries-02_04_Repository_override--s17", + "base_name": "libraries-02_04_Repository_override", + "output_path": "component/libraries/libraries-02_04_Repository_override--s17.json", + "assets_dir": "component/libraries/assets/libraries-02_04_Repository_override--s17/", "section_range": { - "start_line": 354, - "end_line": 434, + "start_line": 397, + "end_line": 412, "sections": [ - "設定の記述", - "nablarch.core.message.StringResourceHolder の設定", - "nablarch.core.cache.BasicStaticDataCache クラスの設定", - "nablarch.core.message.BasicStringResourceLoader クラスの設定" + "設定したコンポーネントを取得する実装例" ], "section_ids": [ - "s18", - "s19", - "s20", - "s21" + "s17" ] }, "split_info": { "is_split": true, "part": 2, "total_parts": 2, - "original_id": "libraries-07_Message", - "group_line_count": 80 + "original_id": "libraries-02_04_Repository_override", + "group_line_count": 15 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "環境設定ファイル(test1.conf)", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "環境設定ファイル(test2.conf)", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "コンポーネント設定ファイルを読み込む", "rst_labels": [] }, { "section_id": "s4", - "heading": "特徴", + "heading": "設定値の取得例", "rst_labels": [] }, { "section_id": "s5", - "heading": "メッセージテーブル", + "heading": "使用するクラス", "rst_labels": [] }, { "section_id": "s6", - "heading": "テーブル定義の例", + "heading": "コンポーネント設定ファイルの例", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "設定したコンポーネントの取得例", "rst_labels": [] }, { "section_id": "s8", - "heading": "メッセージの取得", + "heading": "読み込み元の設定ファイル", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", "rst_labels": [] }, { "section_id": "s10", - "heading": "メッセージのフォーマット", + "heading": "import-example1.xml", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "import-example2.xml", "rst_labels": [] }, { "section_id": "s12", - "heading": "国際化", + "heading": "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", "rst_labels": [] }, { "section_id": "s14", - "heading": "オプションパラメータの国際化", + "heading": "環境設定ファイル(hello-system-property.config)", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "コンポーネント設定ファイル(hello-system-property.xml)", "rst_labels": [] }, { "section_id": "s16", - "heading": "例外によるメッセージの通知", + "heading": "設定値のロードの実装例", "rst_labels": [] }, { "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "設定の記述", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "nablarch.core.message.StringResourceHolder の設定", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "nablarch.core.cache.BasicStaticDataCache クラスの設定", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "nablarch.core.message.BasicStringResourceLoader クラスの設定", + "heading": "設定したコンポーネントを取得する実装例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08_Validation.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", "format": "rst", - "filename": "08_Validation.rst", + "filename": "02_01_Repository_config.rst", "type": "component", "category": "libraries", - "id": "libraries-08_Validation--s1", - "base_name": "libraries-08_Validation", - "output_path": "component/libraries/libraries-08_Validation--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_Validation--s1/", + "id": "libraries-02_01_Repository_config--s1", + "base_name": "libraries-02_01_Repository_config", + "output_path": "component/libraries/libraries-02_01_Repository_config--s1.json", + "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s1/", "section_range": { "start_line": 0, - "end_line": 136, + "end_line": 294, "sections": [ "", - "概要", + "設定ファイルの種類とフレームワークが行うリポジトリの初期化", "", - "特徴", + "環境設定ファイルからの読み込み", "", - "要求" + "リポジトリに保持するインスタンスの生成(DIコンテナ)", + "", + "DIコンテナを ObjectLoader として使用する", + "" ], "section_ids": [ "s1", @@ -22601,29 +21657,33 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7", + "s8", + "s9" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "libraries-08_Validation", - "group_line_count": 136 + "total_parts": 4, + "original_id": "libraries-02_01_Repository_config", + "group_line_count": 294 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "validation-and-form", - "validation-abstract" + "repository_config" ] }, { "section_id": "s2", - "heading": "概要", - "rst_labels": [] + "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", + "rst_labels": [ + "repository_config_load" + ] }, { "section_id": "s3", @@ -22632,7 +21692,7 @@ }, { "section_id": "s4", - "heading": "特徴", + "heading": "環境設定ファイルからの読み込み", "rst_labels": [] }, { @@ -22642,853 +21702,796 @@ }, { "section_id": "s6", - "heading": "要求", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/05_MessagingLog.rst", - "format": "rst", - "filename": "05_MessagingLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-05_MessagingLog--s1", - "base_name": "libraries-05_MessagingLog", - "output_path": "component/libraries/libraries-05_MessagingLog--s1.json", - "assets_dir": "component/libraries/assets/libraries-05_MessagingLog--s1/", - "section_range": { - "start_line": 0, - "end_line": 396, - "sections": [ - "", - "メッセージングログの出力", - "MOM送信メッセージのログ出力に使用するフォーマット", - "MOM受信メッセージのログ出力に使用するフォーマット", - "HTTP送信メッセージのログ出力に使用するフォーマット", - "HTTP受信メッセージのログ出力に使用するフォーマット" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-05_MessagingLog", - "group_line_count": 396 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "メッセージングログの出力", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "MOM送信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "MOM受信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "HTTP送信メッセージのログ出力に使用するフォーマット", + "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", "rst_labels": [] }, { - "section_id": "s6", - "heading": "HTTP受信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/02_SqlLog.rst", - "format": "rst", - "filename": "02_SqlLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_SqlLog--s1", - "base_name": "libraries-02_SqlLog", - "output_path": "component/libraries/libraries-02_SqlLog--s1.json", - "assets_dir": "component/libraries/assets/libraries-02_SqlLog--s1/", - "section_range": { - "start_line": 0, - "end_line": 387, - "sections": [ - "", - "SQLログの出力", - "SqlPStatement#retrieveメソッドの検索開始時", - "SqlPStatement#retrieveメソッドの検索終了時", - "SqlPStatement#executeメソッドの実行開始時", - "SqlPStatement#executeメソッドの実行終了時", - "SqlPStatement#executeQueryメソッドの検索開始時", - "SqlPStatement#executeQueryメソッドの検索終了時", - "SqlPStatement#executeUpdateメソッドの更新開始時", - "SqlPStatement#executeUpdateメソッドの更新終了時", - "SqlPStatement#executeBatchメソッドの更新開始時", - "SqlPStatement#executeBatchメソッドの更新終了時", - "SqlPStatement#retrieveメソッドの検索開始時", - "SqlPStatement#retrieveメソッドの検索終了時", - "SqlPStatement#executeメソッドの実行開始時", - "SqlPStatement#executeメソッドの実行終了時" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-02_SqlLog", - "group_line_count": 387 - }, - "section_map": [ - { - "section_id": "s1", + "section_id": "s7", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "SQLログの出力", + "section_id": "s8", + "heading": "DIコンテナを ObjectLoader として使用する", "rst_labels": [] }, { - "section_id": "s3", - "heading": "SqlPStatement#retrieveメソッドの検索開始時", + "section_id": "s9", + "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "SqlPStatement#retrieveメソッドの検索終了時", + "section_id": "s10", + "heading": "property 要素の value 属性で設定できる型", "rst_labels": [] }, { - "section_id": "s5", - "heading": "SqlPStatement#executeメソッドの実行開始時", + "section_id": "s11", + "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "SqlPStatement#executeメソッドの実行終了時", + "section_id": "s12", + "heading": "List と Map をコンポーネントとして登録する", "rst_labels": [] }, { - "section_id": "s7", - "heading": "SqlPStatement#executeQueryメソッドの検索開始時", + "section_id": "s13", + "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "SqlPStatement#executeQueryメソッドの検索終了時", + "section_id": "s14", + "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", "rst_labels": [] }, { - "section_id": "s9", - "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", + "section_id": "s15", + "heading": "", "rst_labels": [] }, { - "section_id": "s10", - "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "section_id": "s16", + "heading": "複数のコンポーネント設定ファイルの読み込み", "rst_labels": [] }, { - "section_id": "s11", - "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "section_id": "s17", + "heading": "", "rst_labels": [] }, { - "section_id": "s12", - "heading": "SqlPStatement#executeBatchメソッドの更新終了時", - "rst_labels": [] + "section_id": "s18", + "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "rst_labels": [ + "directory_config" + ] }, { - "section_id": "s13", - "heading": "SqlPStatement#retrieveメソッドの検索開始時", + "section_id": "s19", + "heading": "", "rst_labels": [] }, { - "section_id": "s14", - "heading": "SqlPStatement#retrieveメソッドの検索終了時", + "section_id": "s20", + "heading": "ディレクトリに配置された設定ファイルの読み込み", "rst_labels": [] }, { - "section_id": "s15", - "heading": "SqlPStatement#executeメソッドの実行開始時", + "section_id": "s21", + "heading": "", "rst_labels": [] }, { - "section_id": "s16", - "heading": "SqlPStatement#executeメソッドの実行終了時", + "section_id": "s22", + "heading": "自動インジェクション", "rst_labels": [] }, { - "section_id": "s17", - "heading": "SqlPStatement#executeQueryメソッドの検索開始時", + "section_id": "s23", + "heading": "", "rst_labels": [] }, { - "section_id": "s18", - "heading": "SqlPStatement#executeQueryメソッドの検索終了時", + "section_id": "s24", + "heading": "ネストするコンポーネントの設定", "rst_labels": [] }, { - "section_id": "s19", - "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", + "section_id": "s25", + "heading": "", "rst_labels": [] }, { - "section_id": "s20", - "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "section_id": "s26", + "heading": "環境設定ファイル記述ルール", "rst_labels": [] }, { - "section_id": "s21", - "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "section_id": "s27", + "heading": "", "rst_labels": [] }, { - "section_id": "s22", - "heading": "SqlPStatement#executeBatchメソッドの更新終了時", + "section_id": "s28", + "heading": "コンポーネント設定ファイル 要素 リファレンス", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/02_SqlLog.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", "format": "rst", - "filename": "02_SqlLog.rst", + "filename": "02_01_Repository_config.rst", "type": "component", "category": "libraries", - "id": "libraries-02_SqlLog--s17", - "base_name": "libraries-02_SqlLog", - "output_path": "component/libraries/libraries-02_SqlLog--s17.json", - "assets_dir": "component/libraries/assets/libraries-02_SqlLog--s17/", + "id": "libraries-02_01_Repository_config--s10", + "base_name": "libraries-02_01_Repository_config", + "output_path": "component/libraries/libraries-02_01_Repository_config--s10.json", + "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s10/", "section_range": { - "start_line": 387, - "end_line": 558, + "start_line": 294, + "end_line": 666, "sections": [ - "SqlPStatement#executeQueryメソッドの検索開始時", - "SqlPStatement#executeQueryメソッドの検索終了時", - "SqlPStatement#executeUpdateメソッドの更新開始時", - "SqlPStatement#executeUpdateメソッドの更新終了時", - "SqlPStatement#executeBatchメソッドの更新開始時", - "SqlPStatement#executeBatchメソッドの更新終了時" + "property 要素の value 属性で設定できる型", + "", + "List と Map をコンポーネントとして登録する", + "", + "コンポーネント設定ファイルからの環境設定ファイル読み込み", + "", + "複数のコンポーネント設定ファイルの読み込み", + "" ], "section_ids": [ - "s17", - "s18", - "s19", - "s20", - "s21", - "s22" + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 2, - "original_id": "libraries-02_SqlLog", - "group_line_count": 171 + "total_parts": 4, + "original_id": "libraries-02_01_Repository_config", + "group_line_count": 372 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "repository_config" + ] }, { "section_id": "s2", - "heading": "SQLログの出力", - "rst_labels": [] + "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", + "rst_labels": [ + "repository_config_load" + ] }, { "section_id": "s3", - "heading": "SqlPStatement#retrieveメソッドの検索開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "SqlPStatement#retrieveメソッドの検索終了時", + "heading": "環境設定ファイルからの読み込み", "rst_labels": [] }, { "section_id": "s5", - "heading": "SqlPStatement#executeメソッドの実行開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "SqlPStatement#executeメソッドの実行終了時", + "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", "rst_labels": [] }, { "section_id": "s7", - "heading": "SqlPStatement#executeQueryメソッドの検索開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "SqlPStatement#executeQueryメソッドの検索終了時", + "heading": "DIコンテナを ObjectLoader として使用する", "rst_labels": [] }, { "section_id": "s9", - "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "heading": "property 要素の value 属性で設定できる型", "rst_labels": [] }, { "section_id": "s11", - "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "SqlPStatement#executeBatchメソッドの更新終了時", + "heading": "List と Map をコンポーネントとして登録する", "rst_labels": [] }, { "section_id": "s13", - "heading": "SqlPStatement#retrieveメソッドの検索開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "SqlPStatement#retrieveメソッドの検索終了時", + "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", "rst_labels": [] }, { "section_id": "s15", - "heading": "SqlPStatement#executeメソッドの実行開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "SqlPStatement#executeメソッドの実行終了時", + "heading": "複数のコンポーネント設定ファイルの読み込み", "rst_labels": [] }, { "section_id": "s17", - "heading": "SqlPStatement#executeQueryメソッドの検索開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s18", - "heading": "SqlPStatement#executeQueryメソッドの検索終了時", - "rst_labels": [] + "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "rst_labels": [ + "directory_config" + ] }, { "section_id": "s19", - "heading": "SqlPStatement#executeUpdateメソッドの更新開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s20", - "heading": "SqlPStatement#executeUpdateメソッドの更新終了時", + "heading": "ディレクトリに配置された設定ファイルの読み込み", "rst_labels": [] }, { "section_id": "s21", - "heading": "SqlPStatement#executeBatchメソッドの更新開始時", + "heading": "", "rst_labels": [] }, { "section_id": "s22", - "heading": "SqlPStatement#executeBatchメソッドの更新終了時", + "heading": "自動インジェクション", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/03_PerformanceLog.rst", - "format": "rst", - "filename": "03_PerformanceLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-03_PerformanceLog--s1", - "base_name": "libraries-03_PerformanceLog", - "output_path": "component/libraries/libraries-03_PerformanceLog--s1.json", - "assets_dir": "component/libraries/assets/libraries-03_PerformanceLog--s1/", - "section_range": { - "start_line": 0, - "end_line": 197, - "sections": [ - "", - "パフォーマンスログの出力" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-03_PerformanceLog", - "group_line_count": 197 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s23", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "パフォーマンスログの出力", + "section_id": "s24", + "heading": "ネストするコンポーネントの設定", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "環境設定ファイル記述ルール", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "コンポーネント設定ファイル 要素 リファレンス", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/04_HttpAccessLog.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", "format": "rst", - "filename": "04_HttpAccessLog.rst", + "filename": "02_01_Repository_config.rst", "type": "component", "category": "libraries", - "id": "libraries-04_HttpAccessLog--s1", - "base_name": "libraries-04_HttpAccessLog", - "output_path": "component/libraries/libraries-04_HttpAccessLog--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_HttpAccessLog--s1/", + "id": "libraries-02_01_Repository_config--s18", + "base_name": "libraries-02_01_Repository_config", + "output_path": "component/libraries/libraries-02_01_Repository_config--s18.json", + "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s18/", "section_range": { - "start_line": 0, - "end_line": 336, + "start_line": 666, + "end_line": 999, "sections": [ + "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", "", - "HTTPアクセスログの出力", - "リクエスト処理開始時のログ出力に使用するフォーマット", - "hiddenパラメータ復号後のログ出力に使用するフォーマット", - "ディスパッチ先クラス決定後のログ出力に使用するフォーマット" + "ディレクトリに配置された設定ファイルの読み込み", + "", + "自動インジェクション", + "", + "ネストするコンポーネントの設定", + "", + "環境設定ファイル記述ルール", + "" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" + "s18", + "s19", + "s20", + "s21", + "s22", + "s23", + "s24", + "s25", + "s26", + "s27" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-04_HttpAccessLog", - "group_line_count": 336 + "part": 3, + "total_parts": 4, + "original_id": "libraries-02_01_Repository_config", + "group_line_count": 333 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "repository_config" + ] }, { "section_id": "s2", - "heading": "HTTPアクセスログの出力", - "rst_labels": [] + "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", + "rst_labels": [ + "repository_config_load" + ] }, { "section_id": "s3", - "heading": "リクエスト処理開始時のログ出力に使用するフォーマット", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "hiddenパラメータ復号後のログ出力に使用するフォーマット", + "heading": "環境設定ファイルからの読み込み", "rst_labels": [] }, { "section_id": "s5", - "heading": "ディスパッチ先クラス決定後のログ出力に使用するフォーマット", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "リクエスト処理終了時のログ出力に使用するフォーマット", + "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/04_HttpAccessLog.rst", - "format": "rst", - "filename": "04_HttpAccessLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-04_HttpAccessLog--s6", - "base_name": "libraries-04_HttpAccessLog", - "output_path": "component/libraries/libraries-04_HttpAccessLog--s6.json", - "assets_dir": "component/libraries/assets/libraries-04_HttpAccessLog--s6/", - "section_range": { - "start_line": 336, - "end_line": 441, - "sections": [ - "リクエスト処理終了時のログ出力に使用するフォーマット" - ], - "section_ids": [ - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-04_HttpAccessLog", - "group_line_count": 105 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s7", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "HTTPアクセスログの出力", + "section_id": "s8", + "heading": "DIコンテナを ObjectLoader として使用する", "rst_labels": [] }, { - "section_id": "s3", - "heading": "リクエスト処理開始時のログ出力に使用するフォーマット", + "section_id": "s9", + "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "hiddenパラメータ復号後のログ出力に使用するフォーマット", + "section_id": "s10", + "heading": "property 要素の value 属性で設定できる型", "rst_labels": [] }, { - "section_id": "s5", - "heading": "ディスパッチ先クラス決定後のログ出力に使用するフォーマット", + "section_id": "s11", + "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "リクエスト処理終了時のログ出力に使用するフォーマット", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_04_Repository_override.rst", - "format": "rst", - "filename": "02_04_Repository_override.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_04_Repository_override--s1", - "base_name": "libraries-02_04_Repository_override", - "output_path": "component/libraries/libraries-02_04_Repository_override--s1.json", - "assets_dir": "component/libraries/assets/libraries-02_04_Repository_override--s1/", - "section_range": { - "start_line": 0, - "end_line": 397, - "sections": [ - "環境設定ファイル(test1.conf)", - "環境設定ファイル(test2.conf)", - "コンポーネント設定ファイルを読み込む", - "設定値の取得例", - "使用するクラス", - "コンポーネント設定ファイルの例", - "設定したコンポーネントの取得例", - "読み込み元の設定ファイル", - "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", - "import-example1.xml", - "import-example2.xml", - "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", - "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", - "環境設定ファイル(hello-system-property.config)", - "コンポーネント設定ファイル(hello-system-property.xml)", - "設定値のロードの実装例" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-02_04_Repository_override", - "group_line_count": 397 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "環境設定ファイル(test1.conf)", + "section_id": "s12", + "heading": "List と Map をコンポーネントとして登録する", "rst_labels": [] }, { - "section_id": "s2", - "heading": "環境設定ファイル(test2.conf)", + "section_id": "s13", + "heading": "", "rst_labels": [] }, { - "section_id": "s3", - "heading": "コンポーネント設定ファイルを読み込む", + "section_id": "s14", + "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", "rst_labels": [] }, { - "section_id": "s4", - "heading": "設定値の取得例", + "section_id": "s15", + "heading": "", "rst_labels": [] }, { - "section_id": "s5", - "heading": "使用するクラス", + "section_id": "s16", + "heading": "複数のコンポーネント設定ファイルの読み込み", "rst_labels": [] }, { - "section_id": "s6", - "heading": "コンポーネント設定ファイルの例", + "section_id": "s17", + "heading": "", "rst_labels": [] }, { - "section_id": "s7", - "heading": "設定したコンポーネントの取得例", - "rst_labels": [] + "section_id": "s18", + "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "rst_labels": [ + "directory_config" + ] }, { - "section_id": "s8", - "heading": "読み込み元の設定ファイル", + "section_id": "s19", + "heading": "", "rst_labels": [] }, { - "section_id": "s9", - "heading": "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", + "section_id": "s20", + "heading": "ディレクトリに配置された設定ファイルの読み込み", "rst_labels": [] }, { - "section_id": "s10", - "heading": "import-example1.xml", + "section_id": "s21", + "heading": "", "rst_labels": [] }, { - "section_id": "s11", - "heading": "import-example2.xml", + "section_id": "s22", + "heading": "自動インジェクション", "rst_labels": [] }, { - "section_id": "s12", - "heading": "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", + "section_id": "s23", + "heading": "", "rst_labels": [] }, { - "section_id": "s13", - "heading": "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", + "section_id": "s24", + "heading": "ネストするコンポーネントの設定", "rst_labels": [] }, { - "section_id": "s14", - "heading": "環境設定ファイル(hello-system-property.config)", + "section_id": "s25", + "heading": "", "rst_labels": [] }, { - "section_id": "s15", - "heading": "コンポーネント設定ファイル(hello-system-property.xml)", + "section_id": "s26", + "heading": "環境設定ファイル記述ルール", "rst_labels": [] }, { - "section_id": "s16", - "heading": "設定値のロードの実装例", + "section_id": "s27", + "heading": "", "rst_labels": [] }, { - "section_id": "s17", - "heading": "設定したコンポーネントを取得する実装例", + "section_id": "s28", + "heading": "コンポーネント設定ファイル 要素 リファレンス", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_04_Repository_override.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", "format": "rst", - "filename": "02_04_Repository_override.rst", + "filename": "02_01_Repository_config.rst", "type": "component", "category": "libraries", - "id": "libraries-02_04_Repository_override--s17", - "base_name": "libraries-02_04_Repository_override", - "output_path": "component/libraries/libraries-02_04_Repository_override--s17.json", - "assets_dir": "component/libraries/assets/libraries-02_04_Repository_override--s17/", + "id": "libraries-02_01_Repository_config--s28", + "base_name": "libraries-02_01_Repository_config", + "output_path": "component/libraries/libraries-02_01_Repository_config--s28.json", + "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s28/", "section_range": { - "start_line": 397, - "end_line": 412, + "start_line": 999, + "end_line": 1263, "sections": [ - "設定したコンポーネントを取得する実装例" + "コンポーネント設定ファイル 要素 リファレンス" ], "section_ids": [ - "s17" + "s28" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-02_04_Repository_override", - "group_line_count": 15 + "part": 4, + "total_parts": 4, + "original_id": "libraries-02_01_Repository_config", + "group_line_count": 264 }, "section_map": [ { "section_id": "s1", - "heading": "環境設定ファイル(test1.conf)", - "rst_labels": [] + "heading": "", + "rst_labels": [ + "repository_config" + ] }, { "section_id": "s2", - "heading": "環境設定ファイル(test2.conf)", - "rst_labels": [] + "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", + "rst_labels": [ + "repository_config_load" + ] }, { "section_id": "s3", - "heading": "コンポーネント設定ファイルを読み込む", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "設定値の取得例", + "heading": "環境設定ファイルからの読み込み", "rst_labels": [] }, { "section_id": "s5", - "heading": "使用するクラス", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "コンポーネント設定ファイルの例", + "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", "rst_labels": [] }, { "section_id": "s7", - "heading": "設定したコンポーネントの取得例", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "読み込み元の設定ファイル", + "heading": "DIコンテナを ObjectLoader として使用する", "rst_labels": [] }, { "section_id": "s9", - "heading": "テスト用の設定ファイル(/opt/testconfig/testconfig.xml)", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "import-example1.xml", + "heading": "property 要素の value 属性で設定できる型", "rst_labels": [] }, { "section_id": "s11", - "heading": "import-example2.xml", + "heading": "", "rst_labels": [] }, { "section_id": "s12", - "heading": "onefile-example.xml(import-example1.xml、import-example2.xmlと等価)", + "heading": "List と Map をコンポーネントとして登録する", "rst_labels": [] }, { "section_id": "s13", - "heading": "設定をロードする際の実装例(通常フレームワークのブートストラップ処理で行う)", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "環境設定ファイル(hello-system-property.config)", + "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", "rst_labels": [] }, { "section_id": "s15", - "heading": "コンポーネント設定ファイル(hello-system-property.xml)", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "設定値のロードの実装例", + "heading": "複数のコンポーネント設定ファイルの読み込み", "rst_labels": [] }, { "section_id": "s17", - "heading": "設定したコンポーネントを取得する実装例", + "heading": "", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", - "format": "rst", - "filename": "02_01_Repository_config.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_01_Repository_config--s1", - "base_name": "libraries-02_01_Repository_config", - "output_path": "component/libraries/libraries-02_01_Repository_config--s1.json", - "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s1/", - "section_range": { - "start_line": 0, - "end_line": 294, - "sections": [ - "", - "設定ファイルの種類とフレームワークが行うリポジトリの初期化", - "", - "環境設定ファイルからの読み込み", - "", - "リポジトリに保持するインスタンスの生成(DIコンテナ)", - "", - "DIコンテナを ObjectLoader として使用する", + }, + { + "section_id": "s18", + "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "rst_labels": [ + "directory_config" + ] + }, + { + "section_id": "s19", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "ディレクトリに配置された設定ファイルの読み込み", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "自動インジェクション", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "ネストするコンポーネントの設定", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "環境設定ファイル記述ルール", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "コンポーネント設定ファイル 要素 リファレンス", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_02_Repository_initialize.rst", + "format": "rst", + "filename": "02_02_Repository_initialize.rst", + "type": "component", + "category": "libraries", + "id": "libraries-02_02_Repository_initialize", + "base_name": "libraries-02_02_Repository_initialize", + "output_path": "component/libraries/libraries-02_02_Repository_initialize.json", + "assets_dir": "component/libraries/assets/libraries-02_02_Repository_initialize/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_03_Repository_factory.rst", + "format": "rst", + "filename": "02_03_Repository_factory.rst", + "type": "component", + "category": "libraries", + "id": "libraries-02_03_Repository_factory", + "base_name": "libraries-02_03_Repository_factory", + "output_path": "component/libraries/libraries-02_03_Repository_factory.json", + "assets_dir": "component/libraries/assets/libraries-02_03_Repository_factory/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_TransactionConnectionName.rst", + "format": "rst", + "filename": "04_TransactionConnectionName.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_TransactionConnectionName--s1", + "base_name": "libraries-04_TransactionConnectionName", + "output_path": "component/libraries/libraries-04_TransactionConnectionName--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_TransactionConnectionName--s1/", + "section_range": { + "start_line": 0, + "end_line": 147, + "sections": [ + "", + "データベースコネクション名", + "", + "トランザクション名", + "実装コードで見るトランザクション制御" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-04_TransactionConnectionName", + "group_line_count": 147 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "データベースコネクション名", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "トランザクション名", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "実装コードで見るトランザクション制御", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_QueryCache.rst", + "format": "rst", + "filename": "04_QueryCache.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_QueryCache--s1", + "base_name": "libraries-04_QueryCache", + "output_path": "component/libraries/libraries-04_QueryCache--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_QueryCache--s1/", + "section_range": { + "start_line": 0, + "end_line": 329, + "sections": [ + "キャッシュ機能", + "有効期限", + "キャッシュ保存先", + "その他の要件", + "基本実装", + "", + "構成", + "全体図", + "有効期限付きキャッシュ", + "キャッシュしたSqlResultSetの保護", + "SqlPStatementの生成", + "キャッシュへのアクセス", "" ], "section_ids": [ @@ -23500,79 +22503,79 @@ "s6", "s7", "s8", - "s9" + "s9", + "s10", + "s11", + "s12", + "s13" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 4, - "original_id": "libraries-02_01_Repository_config", - "group_line_count": 294 + "total_parts": 2, + "original_id": "libraries-04_QueryCache", + "group_line_count": 329 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "repository_config" - ] + "heading": "キャッシュ機能", + "rst_labels": [] }, { "section_id": "s2", - "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", - "rst_labels": [ - "repository_config_load" - ] + "heading": "有効期限", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "キャッシュ保存先", "rst_labels": [] }, { "section_id": "s4", - "heading": "環境設定ファイルからの読み込み", + "heading": "その他の要件", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "基本実装", "rst_labels": [] }, { "section_id": "s6", - "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", + "heading": "", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "構成", "rst_labels": [] }, { "section_id": "s8", - "heading": "DIコンテナを ObjectLoader として使用する", + "heading": "全体図", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "有効期限付きキャッシュ", "rst_labels": [] }, { "section_id": "s10", - "heading": "property 要素の value 属性で設定できる型", + "heading": "キャッシュしたSqlResultSetの保護", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "SqlPStatementの生成", "rst_labels": [] }, { "section_id": "s12", - "heading": "List と Map をコンポーネントとして登録する", + "heading": "キャッシュへのアクセス", "rst_labels": [] }, { @@ -23582,7 +22585,7 @@ }, { "section_id": "s14", - "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", + "heading": "キャッシュ機能を有効にする設定方法", "rst_labels": [] }, { @@ -23592,7 +22595,7 @@ }, { "section_id": "s16", - "heading": "複数のコンポーネント設定ファイルの読み込み", + "heading": "キャッシュを明示的にクリアする方法", "rst_labels": [] }, { @@ -23602,10 +22605,8 @@ }, { "section_id": "s18", - "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", - "rst_labels": [ - "directory_config" - ] + "heading": "ログ出力", + "rst_labels": [] }, { "section_id": "s19", @@ -23614,7 +22615,7 @@ }, { "section_id": "s20", - "heading": "ディレクトリに配置された設定ファイルの読み込み", + "heading": "キャッシュ機能のチューニングについて", "rst_labels": [] }, { @@ -23624,145 +22625,113 @@ }, { "section_id": "s22", - "heading": "自動インジェクション", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "ネストするコンポーネントの設定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "環境設定ファイル記述ルール", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "コンポーネント設定ファイル 要素 リファレンス", + "heading": "制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_QueryCache.rst", "format": "rst", - "filename": "02_01_Repository_config.rst", + "filename": "04_QueryCache.rst", "type": "component", "category": "libraries", - "id": "libraries-02_01_Repository_config--s10", - "base_name": "libraries-02_01_Repository_config", - "output_path": "component/libraries/libraries-02_01_Repository_config--s10.json", - "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s10/", + "id": "libraries-04_QueryCache--s14", + "base_name": "libraries-04_QueryCache", + "output_path": "component/libraries/libraries-04_QueryCache--s14.json", + "assets_dir": "component/libraries/assets/libraries-04_QueryCache--s14/", "section_range": { - "start_line": 294, - "end_line": 666, + "start_line": 329, + "end_line": 597, "sections": [ - "property 要素の value 属性で設定できる型", + "キャッシュ機能を有効にする設定方法", "", - "List と Map をコンポーネントとして登録する", + "キャッシュを明示的にクリアする方法", "", - "コンポーネント設定ファイルからの環境設定ファイル読み込み", + "ログ出力", "", - "複数のコンポーネント設定ファイルの読み込み", - "" + "キャッシュ機能のチューニングについて", + "", + "制約事項" ], "section_ids": [ - "s10", - "s11", - "s12", - "s13", "s14", "s15", "s16", - "s17" + "s17", + "s18", + "s19", + "s20", + "s21", + "s22" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 4, - "original_id": "libraries-02_01_Repository_config", - "group_line_count": 372 + "total_parts": 2, + "original_id": "libraries-04_QueryCache", + "group_line_count": 268 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "repository_config" - ] + "heading": "キャッシュ機能", + "rst_labels": [] }, { "section_id": "s2", - "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", - "rst_labels": [ - "repository_config_load" - ] + "heading": "有効期限", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "キャッシュ保存先", "rst_labels": [] }, { "section_id": "s4", - "heading": "環境設定ファイルからの読み込み", + "heading": "その他の要件", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "基本実装", "rst_labels": [] }, { "section_id": "s6", - "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", + "heading": "", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "構成", "rst_labels": [] }, { "section_id": "s8", - "heading": "DIコンテナを ObjectLoader として使用する", + "heading": "全体図", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "有効期限付きキャッシュ", "rst_labels": [] }, { "section_id": "s10", - "heading": "property 要素の value 属性で設定できる型", + "heading": "キャッシュしたSqlResultSetの保護", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "SqlPStatementの生成", "rst_labels": [] }, { "section_id": "s12", - "heading": "List と Map をコンポーネントとして登録する", + "heading": "キャッシュへのアクセス", "rst_labels": [] }, { @@ -23772,7 +22741,7 @@ }, { "section_id": "s14", - "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", + "heading": "キャッシュ機能を有効にする設定方法", "rst_labels": [] }, { @@ -23782,7 +22751,7 @@ }, { "section_id": "s16", - "heading": "複数のコンポーネント設定ファイルの読み込み", + "heading": "キャッシュを明示的にクリアする方法", "rst_labels": [] }, { @@ -23792,10 +22761,8 @@ }, { "section_id": "s18", - "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", - "rst_labels": [ - "directory_config" - ] + "heading": "ログ出力", + "rst_labels": [] }, { "section_id": "s19", @@ -23804,7 +22771,7 @@ }, { "section_id": "s20", - "heading": "ディレクトリに配置された設定ファイルの読み込み", + "heading": "キャッシュ機能のチューニングについて", "rst_labels": [] }, { @@ -23814,1042 +22781,993 @@ }, { "section_id": "s22", - "heading": "自動インジェクション", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "ネストするコンポーネントの設定", + "heading": "制約事項", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_TransactionTimeout.rst", + "format": "rst", + "filename": "04_TransactionTimeout.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_TransactionTimeout--s1", + "base_name": "libraries-04_TransactionTimeout", + "output_path": "component/libraries/libraries-04_TransactionTimeout--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_TransactionTimeout--s1/", + "section_range": { + "start_line": 0, + "end_line": 145, + "sections": [ + "トランザクションタイムアウト機能", + "各処理の概要", + "クエリタイムアウト時の動作について", + "アプリケーションロジックでの処理遅延について" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-04_TransactionTimeout", + "group_line_count": 145 + }, + "section_map": [ { - "section_id": "s25", - "heading": "", + "section_id": "s1", + "heading": "トランザクションタイムアウト機能", "rst_labels": [] }, { - "section_id": "s26", - "heading": "環境設定ファイル記述ルール", + "section_id": "s2", + "heading": "各処理の概要", "rst_labels": [] }, { - "section_id": "s27", - "heading": "", + "section_id": "s3", + "heading": "クエリタイムアウト時の動作について", "rst_labels": [] }, { - "section_id": "s28", - "heading": "コンポーネント設定ファイル 要素 リファレンス", + "section_id": "s4", + "heading": "アプリケーションロジックでの処理遅延について", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Connection.rst", "format": "rst", - "filename": "02_01_Repository_config.rst", + "filename": "04_Connection.rst", "type": "component", "category": "libraries", - "id": "libraries-02_01_Repository_config--s18", - "base_name": "libraries-02_01_Repository_config", - "output_path": "component/libraries/libraries-02_01_Repository_config--s18.json", - "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s18/", + "id": "libraries-04_Connection--s1", + "base_name": "libraries-04_Connection", + "output_path": "component/libraries/libraries-04_Connection--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_Connection--s1/", "section_range": { - "start_line": 666, - "end_line": 999, + "start_line": 0, + "end_line": 282, "sections": [ - "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", - "", - "ディレクトリに配置された設定ファイルの読み込み", - "", - "自動インジェクション", - "", - "ネストするコンポーネントの設定", - "", - "環境設定ファイル記述ルール", - "" + "データベース接続部品の構造", + "各クラスの責務", + "nablarch.core.db.connectionパッケージ", + "処理シーケンス", + "Javaの実装例" ], "section_ids": [ - "s18", - "s19", - "s20", - "s21", - "s22", - "s23", - "s24", - "s25", - "s26", - "s27" + "s1", + "s2", + "s3", + "s4", + "s5" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 4, - "original_id": "libraries-02_01_Repository_config", - "group_line_count": 333 + "part": 1, + "total_parts": 2, + "original_id": "libraries-04_Connection", + "group_line_count": 282 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "repository_config" - ] + "heading": "データベース接続部品の構造", + "rst_labels": [] }, { "section_id": "s2", - "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", - "rst_labels": [ - "repository_config_load" - ] + "heading": "各クラスの責務", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "nablarch.core.db.connectionパッケージ", "rst_labels": [] }, { "section_id": "s4", - "heading": "環境設定ファイルからの読み込み", + "heading": "処理シーケンス", "rst_labels": [] }, { "section_id": "s5", - "heading": "", - "rst_labels": [] + "heading": "Javaの実装例", + "rst_labels": [ + "db-connection-config-label" + ] }, { "section_id": "s6", - "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", - "rst_labels": [] + "heading": "設定内容詳細", + "rst_labels": [ + "database-connection-config-from-jndi-label" + ] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "DIコンテナを ObjectLoader として使用する", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", + "heading": "設定内容詳細", "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "property 要素の value 属性で設定できる型", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "List と Map をコンポーネントとして登録する", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "", - "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Connection.rst", + "format": "rst", + "filename": "04_Connection.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_Connection--s6", + "base_name": "libraries-04_Connection", + "output_path": "component/libraries/libraries-04_Connection--s6.json", + "assets_dir": "component/libraries/assets/libraries-04_Connection--s6/", + "section_range": { + "start_line": 282, + "end_line": 457, + "sections": [ + "設定内容詳細", + "設定内容詳細" + ], + "section_ids": [ + "s6", + "s7" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-04_Connection", + "group_line_count": 175 + }, + "section_map": [ { - "section_id": "s14", - "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", + "section_id": "s1", + "heading": "データベース接続部品の構造", "rst_labels": [] }, { - "section_id": "s15", - "heading": "", + "section_id": "s2", + "heading": "各クラスの責務", "rst_labels": [] }, { - "section_id": "s16", - "heading": "複数のコンポーネント設定ファイルの読み込み", + "section_id": "s3", + "heading": "nablarch.core.db.connectionパッケージ", "rst_labels": [] }, { - "section_id": "s17", - "heading": "", + "section_id": "s4", + "heading": "処理シーケンス", "rst_labels": [] }, { - "section_id": "s18", - "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "section_id": "s5", + "heading": "Javaの実装例", "rst_labels": [ - "directory_config" + "db-connection-config-label" ] }, { - "section_id": "s19", - "heading": "", - "rst_labels": [] + "section_id": "s6", + "heading": "設定内容詳細", + "rst_labels": [ + "database-connection-config-from-jndi-label" + ] }, { - "section_id": "s20", - "heading": "ディレクトリに配置された設定ファイルの読み込み", + "section_id": "s7", + "heading": "設定内容詳細", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Statement.rst", + "format": "rst", + "filename": "04_Statement.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_Statement--s1", + "base_name": "libraries-04_Statement", + "output_path": "component/libraries/libraries-04_Statement--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_Statement--s1/", + "section_range": { + "start_line": 0, + "end_line": 353, + "sections": [ + "", + "SQL文実行部品の構造とその使用方法", + "各クラスの責務", + "nablarch.core.db.statementパッケージ", + "簡易検索の場合の処理シーケンス", + "推奨するJavaの実装例(SQL文を外部ファイル化した場合)" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "libraries-04_Statement", + "group_line_count": 353 + }, + "section_map": [ { - "section_id": "s21", + "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "db-sqlstatement-label" + ] }, { - "section_id": "s22", - "heading": "自動インジェクション", + "section_id": "s2", + "heading": "SQL文実行部品の構造とその使用方法", "rst_labels": [] }, { - "section_id": "s23", - "heading": "", + "section_id": "s3", + "heading": "各クラスの責務", "rst_labels": [] }, { - "section_id": "s24", - "heading": "ネストするコンポーネントの設定", - "rst_labels": [] + "section_id": "s4", + "heading": "nablarch.core.db.statementパッケージ", + "rst_labels": [ + "sql-load-class-label", + "db-support-label" + ] }, { - "section_id": "s25", - "heading": "", - "rst_labels": [] + "section_id": "s5", + "heading": "簡易検索の場合の処理シーケンス", + "rst_labels": [ + "sql-gaibuka-label" + ] }, { - "section_id": "s26", - "heading": "環境設定ファイル記述ルール", + "section_id": "s6", + "heading": "推奨するJavaの実装例(SQL文を外部ファイル化した場合)", "rst_labels": [] }, { - "section_id": "s27", - "heading": "", + "section_id": "s7", + "heading": "Javaの実装例(SQL文指定の場合)", "rst_labels": [] }, { - "section_id": "s28", - "heading": "コンポーネント設定ファイル 要素 リファレンス", - "rst_labels": [] + "section_id": "s8", + "heading": "設定内容詳細", + "rst_labels": [ + "db-basic-sqlstatementexceptionfactory-label" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_01_Repository_config.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Statement.rst", "format": "rst", - "filename": "02_01_Repository_config.rst", + "filename": "04_Statement.rst", "type": "component", "category": "libraries", - "id": "libraries-02_01_Repository_config--s28", - "base_name": "libraries-02_01_Repository_config", - "output_path": "component/libraries/libraries-02_01_Repository_config--s28.json", - "assets_dir": "component/libraries/assets/libraries-02_01_Repository_config--s28/", + "id": "libraries-04_Statement--s7", + "base_name": "libraries-04_Statement", + "output_path": "component/libraries/libraries-04_Statement--s7.json", + "assets_dir": "component/libraries/assets/libraries-04_Statement--s7/", "section_range": { - "start_line": 999, - "end_line": 1263, + "start_line": 353, + "end_line": 541, "sections": [ - "コンポーネント設定ファイル 要素 リファレンス" + "Javaの実装例(SQL文指定の場合)", + "設定内容詳細" ], "section_ids": [ - "s28" + "s7", + "s8" ] }, "split_info": { "is_split": true, - "part": 4, - "total_parts": 4, - "original_id": "libraries-02_01_Repository_config", - "group_line_count": 264 + "part": 2, + "total_parts": 2, + "original_id": "libraries-04_Statement", + "group_line_count": 188 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "repository_config" + "db-sqlstatement-label" ] }, { "section_id": "s2", - "heading": "設定ファイルの種類とフレームワークが行うリポジトリの初期化", - "rst_labels": [ - "repository_config_load" - ] + "heading": "SQL文実行部品の構造とその使用方法", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s4", - "heading": "環境設定ファイルからの読み込み", - "rst_labels": [] + "heading": "nablarch.core.db.statementパッケージ", + "rst_labels": [ + "sql-load-class-label", + "db-support-label" + ] }, { "section_id": "s5", - "heading": "", - "rst_labels": [] + "heading": "簡易検索の場合の処理シーケンス", + "rst_labels": [ + "sql-gaibuka-label" + ] }, { "section_id": "s6", - "heading": "リポジトリに保持するインスタンスの生成(DIコンテナ)", + "heading": "推奨するJavaの実装例(SQL文を外部ファイル化した場合)", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "Javaの実装例(SQL文指定の場合)", "rst_labels": [] }, { "section_id": "s8", - "heading": "DIコンテナを ObjectLoader として使用する", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "property 要素の value 属性で設定できる型", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "List と Map をコンポーネントとして登録する", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "コンポーネント設定ファイルからの環境設定ファイル読み込み", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "複数のコンポーネント設定ファイルの読み込み", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "環境設定ファイルに記述した値をコンポーネント設定ファイルで使用する", + "heading": "設定内容詳細", "rst_labels": [ - "directory_config" + "db-basic-sqlstatementexceptionfactory-label" ] - }, - { - "section_id": "s19", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "ディレクトリに配置された設定ファイルの読み込み", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "自動インジェクション", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "ネストするコンポーネントの設定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "環境設定ファイル記述ルール", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "コンポーネント設定ファイル 要素 リファレンス", - "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_02_Repository_initialize.rst", - "format": "rst", - "filename": "02_02_Repository_initialize.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_02_Repository_initialize", - "base_name": "libraries-02_02_Repository_initialize", - "output_path": "component/libraries/libraries-02_02_Repository_initialize.json", - "assets_dir": "component/libraries/assets/libraries-02_02_Repository_initialize/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/02/02_03_Repository_factory.rst", - "format": "rst", - "filename": "02_03_Repository_factory.rst", - "type": "component", - "category": "libraries", - "id": "libraries-02_03_Repository_factory", - "base_name": "libraries-02_03_Repository_factory", - "output_path": "component/libraries/libraries-02_03_Repository_factory.json", - "assets_dir": "component/libraries/assets/libraries-02_03_Repository_factory/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_TransactionConnectionName.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", "format": "rst", - "filename": "04_TransactionConnectionName.rst", + "filename": "04_ObjectSave.rst", "type": "component", "category": "libraries", - "id": "libraries-04_TransactionConnectionName--s1", - "base_name": "libraries-04_TransactionConnectionName", - "output_path": "component/libraries/libraries-04_TransactionConnectionName--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_TransactionConnectionName--s1/", + "id": "libraries-04_ObjectSave--s1", + "base_name": "libraries-04_ObjectSave", + "output_path": "component/libraries/libraries-04_ObjectSave--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s1/", "section_range": { "start_line": 0, - "end_line": 147, + "end_line": 66, "sections": [ "", - "データベースコネクション名", - "", - "トランザクション名", - "実装コードで見るトランザクション制御" + "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", + "インタフェース定義" ], "section_ids": [ "s1", "s2", - "s3", - "s4", - "s5" + "s3" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "libraries-04_TransactionConnectionName", - "group_line_count": 147 + "total_parts": 3, + "original_id": "libraries-04_ObjectSave", + "group_line_count": 66 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "db-object-store-label" + ] }, { "section_id": "s2", - "heading": "データベースコネクション名", + "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "トランザクション名", - "rst_labels": [] + "heading": "クラス定義", + "rst_labels": [ + "sql-parameter-parser-label", + "sql-convertor-label", + "db-object-save-class-label" + ] }, { "section_id": "s5", - "heading": "実装コードで見るトランザクション制御", + "heading": "処理シーケンス", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "Java実装例(Objectのフィールド値を登録する場合)", + "rst_labels": [ + "db-object-config-label" + ] + }, + { + "section_id": "s7", + "heading": "設定内容詳細", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_QueryCache.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", "format": "rst", - "filename": "04_QueryCache.rst", + "filename": "04_ObjectSave.rst", "type": "component", "category": "libraries", - "id": "libraries-04_QueryCache--s1", - "base_name": "libraries-04_QueryCache", - "output_path": "component/libraries/libraries-04_QueryCache--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_QueryCache--s1/", + "id": "libraries-04_ObjectSave--s4", + "base_name": "libraries-04_ObjectSave", + "output_path": "component/libraries/libraries-04_ObjectSave--s4.json", + "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s4/", "section_range": { - "start_line": 0, - "end_line": 329, + "start_line": 66, + "end_line": 474, "sections": [ - "キャッシュ機能", - "有効期限", - "キャッシュ保存先", - "その他の要件", - "基本実装", - "", - "構成", - "全体図", - "有効期限付きキャッシュ", - "キャッシュしたSqlResultSetの保護", - "SqlPStatementの生成", - "キャッシュへのアクセス", - "" + "クラス定義" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13" + "s4" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-04_QueryCache", - "group_line_count": 329 + "part": 2, + "total_parts": 3, + "original_id": "libraries-04_ObjectSave", + "group_line_count": 408 }, "section_map": [ { "section_id": "s1", - "heading": "キャッシュ機能", - "rst_labels": [] + "heading": "", + "rst_labels": [ + "db-object-store-label" + ] }, { "section_id": "s2", - "heading": "有効期限", + "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", "rst_labels": [] }, { "section_id": "s3", - "heading": "キャッシュ保存先", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "その他の要件", - "rst_labels": [] + "heading": "クラス定義", + "rst_labels": [ + "sql-parameter-parser-label", + "sql-convertor-label", + "db-object-save-class-label" + ] }, { "section_id": "s5", - "heading": "基本実装", + "heading": "処理シーケンス", "rst_labels": [] }, { "section_id": "s6", - "heading": "", - "rst_labels": [] + "heading": "Java実装例(Objectのフィールド値を登録する場合)", + "rst_labels": [ + "db-object-config-label" + ] }, { "section_id": "s7", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "全体図", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "有効期限付きキャッシュ", + "heading": "設定内容詳細", "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "キャッシュしたSqlResultSetの保護", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "SqlPStatementの生成", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "キャッシュへのアクセス", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "キャッシュ機能を有効にする設定方法", - "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", + "format": "rst", + "filename": "04_ObjectSave.rst", + "type": "component", + "category": "libraries", + "id": "libraries-04_ObjectSave--s5", + "base_name": "libraries-04_ObjectSave", + "output_path": "component/libraries/libraries-04_ObjectSave--s5.json", + "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s5/", + "section_range": { + "start_line": 474, + "end_line": 852, + "sections": [ + "処理シーケンス", + "Java実装例(Objectのフィールド値を登録する場合)", + "設定内容詳細" + ], + "section_ids": [ + "s5", + "s6", + "s7" + ] + }, + "split_info": { + "is_split": true, + "part": 3, + "total_parts": 3, + "original_id": "libraries-04_ObjectSave", + "group_line_count": 378 + }, + "section_map": [ { - "section_id": "s15", + "section_id": "s1", "heading": "", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "キャッシュを明示的にクリアする方法", - "rst_labels": [] + "rst_labels": [ + "db-object-store-label" + ] }, { - "section_id": "s17", - "heading": "", + "section_id": "s2", + "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", "rst_labels": [] }, { - "section_id": "s18", - "heading": "ログ出力", + "section_id": "s3", + "heading": "インタフェース定義", "rst_labels": [] }, { - "section_id": "s19", - "heading": "", - "rst_labels": [] + "section_id": "s4", + "heading": "クラス定義", + "rst_labels": [ + "sql-parameter-parser-label", + "sql-convertor-label", + "db-object-save-class-label" + ] }, { - "section_id": "s20", - "heading": "キャッシュ機能のチューニングについて", + "section_id": "s5", + "heading": "処理シーケンス", "rst_labels": [] }, { - "section_id": "s21", - "heading": "", - "rst_labels": [] + "section_id": "s6", + "heading": "Java実装例(Objectのフィールド値を登録する場合)", + "rst_labels": [ + "db-object-config-label" + ] }, { - "section_id": "s22", - "heading": "制約事項", + "section_id": "s7", + "heading": "設定内容詳細", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_QueryCache.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_03_validation_recursive.rst", "format": "rst", - "filename": "04_QueryCache.rst", + "filename": "08_03_validation_recursive.rst", "type": "component", "category": "libraries", - "id": "libraries-04_QueryCache--s14", - "base_name": "libraries-04_QueryCache", - "output_path": "component/libraries/libraries-04_QueryCache--s14.json", - "assets_dir": "component/libraries/assets/libraries-04_QueryCache--s14/", + "id": "libraries-08_03_validation_recursive--s1", + "base_name": "libraries-08_03_validation_recursive", + "output_path": "component/libraries/libraries-08_03_validation_recursive--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_03_validation_recursive--s1/", "section_range": { - "start_line": 329, - "end_line": 597, + "start_line": 0, + "end_line": 352, "sections": [ - "キャッシュ機能を有効にする設定方法", - "", - "キャッシュを明示的にクリアする方法", "", - "ログ出力", + "複数の Form に対するバリデーション", "", - "キャッシュ機能のチューニングについて", + "Form の配列を入力する際のバリデーション", "", - "制約事項" + "可変配列長の Form 配列を入力する際の実装例", + "" ], "section_ids": [ - "s14", - "s15", - "s16", - "s17", - "s18", - "s19", - "s20", - "s21", - "s22" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7" ] }, "split_info": { "is_split": true, - "part": 2, + "part": 1, "total_parts": 2, - "original_id": "libraries-04_QueryCache", - "group_line_count": 268 + "original_id": "libraries-08_03_validation_recursive", + "group_line_count": 352 }, "section_map": [ { "section_id": "s1", - "heading": "キャッシュ機能", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "有効期限", + "heading": "複数の Form に対するバリデーション", "rst_labels": [] }, { "section_id": "s3", - "heading": "キャッシュ保存先", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "その他の要件", + "heading": "Form の配列を入力する際のバリデーション", "rst_labels": [] }, { "section_id": "s5", - "heading": "基本実装", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "", + "heading": "可変配列長の Form 配列を入力する際の実装例", "rst_labels": [] }, { "section_id": "s7", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "全体図", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "有効期限付きキャッシュ", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "キャッシュしたSqlResultSetの保護", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "SqlPStatementの生成", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "キャッシュへのアクセス", - "rst_labels": [] - }, - { - "section_id": "s13", "heading": "", "rst_labels": [] }, { - "section_id": "s14", - "heading": "キャッシュ機能を有効にする設定方法", + "section_id": "s8", + "heading": "画面入力用プロパティとデータベースアクセス用プロパティの変換", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_03_validation_recursive.rst", + "format": "rst", + "filename": "08_03_validation_recursive.rst", + "type": "component", + "category": "libraries", + "id": "libraries-08_03_validation_recursive--s8", + "base_name": "libraries-08_03_validation_recursive", + "output_path": "component/libraries/libraries-08_03_validation_recursive--s8.json", + "assets_dir": "component/libraries/assets/libraries-08_03_validation_recursive--s8/", + "section_range": { + "start_line": 352, + "end_line": 472, + "sections": [ + "画面入力用プロパティとデータベースアクセス用プロパティの変換" + ], + "section_ids": [ + "s8" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-08_03_validation_recursive", + "group_line_count": 120 + }, + "section_map": [ { - "section_id": "s15", + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s16", - "heading": "キャッシュを明示的にクリアする方法", + "section_id": "s2", + "heading": "複数の Form に対するバリデーション", "rst_labels": [] }, { - "section_id": "s17", + "section_id": "s3", "heading": "", "rst_labels": [] }, { - "section_id": "s18", - "heading": "ログ出力", + "section_id": "s4", + "heading": "Form の配列を入力する際のバリデーション", "rst_labels": [] }, { - "section_id": "s19", + "section_id": "s5", "heading": "", "rst_labels": [] }, { - "section_id": "s20", - "heading": "キャッシュ機能のチューニングについて", + "section_id": "s6", + "heading": "可変配列長の Form 配列を入力する際の実装例", "rst_labels": [] }, { - "section_id": "s21", + "section_id": "s7", "heading": "", "rst_labels": [] }, { - "section_id": "s22", - "heading": "制約事項", + "section_id": "s8", + "heading": "画面入力用プロパティとデータベースアクセス用プロパティの変換", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_TransactionTimeout.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_01_validation_architecture.rst", "format": "rst", - "filename": "04_TransactionTimeout.rst", + "filename": "08_01_validation_architecture.rst", "type": "component", "category": "libraries", - "id": "libraries-04_TransactionTimeout--s1", - "base_name": "libraries-04_TransactionTimeout", - "output_path": "component/libraries/libraries-04_TransactionTimeout--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_TransactionTimeout--s1/", + "id": "libraries-08_01_validation_architecture--s1", + "base_name": "libraries-08_01_validation_architecture", + "output_path": "component/libraries/libraries-08_01_validation_architecture--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_01_validation_architecture--s1/", "section_range": { "start_line": 0, - "end_line": 145, + "end_line": 200, "sections": [ - "トランザクションタイムアウト機能", - "各処理の概要", - "クエリタイムアウト時の動作について", - "アプリケーションロジックでの処理遅延について" + "インタフェース定義", + "クラス定義", + "nablarch.core.validation.ValidationManager の設定" ], "section_ids": [ "s1", "s2", - "s3", - "s4" + "s3" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "libraries-04_TransactionTimeout", - "group_line_count": 145 + "original_id": "libraries-08_01_validation_architecture", + "group_line_count": 200 }, "section_map": [ { "section_id": "s1", - "heading": "トランザクションタイムアウト機能", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s2", - "heading": "各処理の概要", - "rst_labels": [] + "heading": "クラス定義", + "rst_labels": [ + "validation_sequence", + "validation_config" + ] }, { "section_id": "s3", - "heading": "クエリタイムアウト時の動作について", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "アプリケーションロジックでの処理遅延について", + "heading": "nablarch.core.validation.ValidationManager の設定", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Connection.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_05_custom_validator.rst", "format": "rst", - "filename": "04_Connection.rst", + "filename": "08_05_custom_validator.rst", "type": "component", "category": "libraries", - "id": "libraries-04_Connection--s1", - "base_name": "libraries-04_Connection", - "output_path": "component/libraries/libraries-04_Connection--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_Connection--s1/", + "id": "libraries-08_05_custom_validator--s1", + "base_name": "libraries-08_05_custom_validator", + "output_path": "component/libraries/libraries-08_05_custom_validator--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_05_custom_validator--s1/", "section_range": { "start_line": 0, - "end_line": 282, + "end_line": 261, "sections": [ - "データベース接続部品の構造", - "各クラスの責務", - "nablarch.core.db.connectionパッケージ", - "処理シーケンス", - "Javaの実装例" + "アノテーションの作成", + "バリデータの作成", + "バリデータを設定ファイルに登録", + "バリデータを明示的に呼び出す場合" ], "section_ids": [ "s1", "s2", "s3", - "s4", - "s5" + "s4" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "libraries-04_Connection", - "group_line_count": 282 + "total_parts": 1, + "original_id": "libraries-08_05_custom_validator", + "group_line_count": 261 }, "section_map": [ { "section_id": "s1", - "heading": "データベース接続部品の構造", + "heading": "アノテーションの作成", "rst_labels": [] }, { "section_id": "s2", - "heading": "各クラスの責務", + "heading": "バリデータの作成", "rst_labels": [] }, { "section_id": "s3", - "heading": "nablarch.core.db.connectionパッケージ", + "heading": "バリデータを設定ファイルに登録", "rst_labels": [] }, { "section_id": "s4", - "heading": "処理シーケンス", + "heading": "バリデータを明示的に呼び出す場合", "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "Javaの実装例", - "rst_labels": [ - "db-connection-config-label" - ] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_06_direct_call_of_validators.rst", + "format": "rst", + "filename": "08_06_direct_call_of_validators.rst", + "type": "component", + "category": "libraries", + "id": "libraries-08_06_direct_call_of_validators--s1", + "base_name": "libraries-08_06_direct_call_of_validators", + "output_path": "component/libraries/libraries-08_06_direct_call_of_validators--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_06_direct_call_of_validators--s1/", + "section_range": { + "start_line": 0, + "end_line": 59, + "sections": [ + "", + "バリデータの明示的な呼び出し" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-08_06_direct_call_of_validators", + "group_line_count": 59 + }, + "section_map": [ { - "section_id": "s6", - "heading": "設定内容詳細", + "section_id": "s1", + "heading": "", "rst_labels": [ - "database-connection-config-from-jndi-label" + "direct_call_of_validators" ] }, { - "section_id": "s7", - "heading": "設定内容詳細", + "section_id": "s2", + "heading": "バリデータの明示的な呼び出し", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Connection.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_04_validation_form_inheritance.rst", "format": "rst", - "filename": "04_Connection.rst", + "filename": "08_04_validation_form_inheritance.rst", "type": "component", "category": "libraries", - "id": "libraries-04_Connection--s6", - "base_name": "libraries-04_Connection", - "output_path": "component/libraries/libraries-04_Connection--s6.json", - "assets_dir": "component/libraries/assets/libraries-04_Connection--s6/", + "id": "libraries-08_04_validation_form_inheritance--s1", + "base_name": "libraries-08_04_validation_form_inheritance", + "output_path": "component/libraries/libraries-08_04_validation_form_inheritance--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_04_validation_form_inheritance--s1/", "section_range": { - "start_line": 282, - "end_line": 457, + "start_line": 0, + "end_line": 370, "sections": [ - "設定内容詳細", - "設定内容詳細" + "", + "Form の継承とバリデーション条件の継承", + "", + "国際化したプロパティの表示名称の取得方法" ], "section_ids": [ - "s6", - "s7" + "s1", + "s2", + "s3", + "s4" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-04_Connection", - "group_line_count": 175 + "part": 1, + "total_parts": 1, + "original_id": "libraries-08_04_validation_form_inheritance", + "group_line_count": 370 }, "section_map": [ { "section_id": "s1", - "heading": "データベース接続部品の構造", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "各クラスの責務", + "heading": "Form の継承とバリデーション条件の継承", "rst_labels": [] }, { "section_id": "s3", - "heading": "nablarch.core.db.connectionパッケージ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "処理シーケンス", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "Javaの実装例", - "rst_labels": [ - "db-connection-config-label" - ] - }, - { - "section_id": "s6", - "heading": "設定内容詳細", - "rst_labels": [ - "database-connection-config-from-jndi-label" - ] - }, - { - "section_id": "s7", - "heading": "設定内容詳細", + "heading": "国際化したプロパティの表示名称の取得方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Statement.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_02_validation_usage.rst", "format": "rst", - "filename": "04_Statement.rst", + "filename": "08_02_validation_usage.rst", "type": "component", "category": "libraries", - "id": "libraries-04_Statement--s1", - "base_name": "libraries-04_Statement", - "output_path": "component/libraries/libraries-04_Statement--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_Statement--s1/", + "id": "libraries-08_02_validation_usage--s1", + "base_name": "libraries-08_02_validation_usage", + "output_path": "component/libraries/libraries-08_02_validation_usage--s1.json", + "assets_dir": "component/libraries/assets/libraries-08_02_validation_usage--s1/", "section_range": { "start_line": 0, - "end_line": 353, + "end_line": 389, "sections": [ "", - "SQL文実行部品の構造とその使用方法", - "各クラスの責務", - "nablarch.core.db.statementパッケージ", - "簡易検索の場合の処理シーケンス", - "推奨するJavaの実装例(SQL文を外部ファイル化した場合)" + "バリデーションの実行と入力値の変換", + "", + "Entity の使用", + "", + "バリデーション対象のプロパティ指定", + "" ], "section_ids": [ "s1", @@ -24857,397 +23775,516 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 2, - "original_id": "libraries-04_Statement", - "group_line_count": 353 + "original_id": "libraries-08_02_validation_usage", + "group_line_count": 389 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "db-sqlstatement-label" + "validation_and_convert" ] }, { "section_id": "s2", - "heading": "SQL文実行部品の構造とその使用方法", - "rst_labels": [] + "heading": "バリデーションの実行と入力値の変換", + "rst_labels": [ + "validation_form_example", + "entity-usage" + ] }, { "section_id": "s3", - "heading": "各クラスの責務", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "nablarch.core.db.statementパッケージ", + "heading": "Entity の使用", "rst_labels": [ - "sql-load-class-label", - "db-support-label" + "validation-prop" ] }, { "section_id": "s5", - "heading": "簡易検索の場合の処理シーケンス", - "rst_labels": [ - "sql-gaibuka-label" - ] + "heading": "", + "rst_labels": [] }, { "section_id": "s6", - "heading": "推奨するJavaの実装例(SQL文を外部ファイル化した場合)", + "heading": "バリデーション対象のプロパティ指定", "rst_labels": [] }, { "section_id": "s7", - "heading": "Javaの実装例(SQL文指定の場合)", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "設定内容詳細", + "heading": "1つのForm内の複数項目にまたがる入力チェック", "rst_labels": [ - "db-basic-sqlstatementexceptionfactory-label" + "convert_property" ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "値の変換", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "入力値のトリム", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "SqlRowをインプットとして精査を行う例", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "プロパティに紐付くメッセージの作成", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_Statement.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_02_validation_usage.rst", "format": "rst", - "filename": "04_Statement.rst", + "filename": "08_02_validation_usage.rst", "type": "component", "category": "libraries", - "id": "libraries-04_Statement--s7", - "base_name": "libraries-04_Statement", - "output_path": "component/libraries/libraries-04_Statement--s7.json", - "assets_dir": "component/libraries/assets/libraries-04_Statement--s7/", + "id": "libraries-08_02_validation_usage--s8", + "base_name": "libraries-08_02_validation_usage", + "output_path": "component/libraries/libraries-08_02_validation_usage--s8.json", + "assets_dir": "component/libraries/assets/libraries-08_02_validation_usage--s8/", "section_range": { - "start_line": 353, - "end_line": 541, + "start_line": 389, + "end_line": 698, "sections": [ - "Javaの実装例(SQL文指定の場合)", - "設定内容詳細" + "1つのForm内の複数項目にまたがる入力チェック", + "", + "値の変換", + "", + "入力値のトリム", + "SqlRowをインプットとして精査を行う例", + "", + "プロパティに紐付くメッセージの作成" ], "section_ids": [ - "s7", - "s8" + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15" ] }, "split_info": { "is_split": true, "part": 2, "total_parts": 2, - "original_id": "libraries-04_Statement", - "group_line_count": 188 + "original_id": "libraries-08_02_validation_usage", + "group_line_count": 309 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "db-sqlstatement-label" + "validation_and_convert" ] }, { "section_id": "s2", - "heading": "SQL文実行部品の構造とその使用方法", - "rst_labels": [] + "heading": "バリデーションの実行と入力値の変換", + "rst_labels": [ + "validation_form_example", + "entity-usage" + ] }, { "section_id": "s3", - "heading": "各クラスの責務", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "nablarch.core.db.statementパッケージ", + "heading": "Entity の使用", "rst_labels": [ - "sql-load-class-label", - "db-support-label" + "validation-prop" ] }, { "section_id": "s5", - "heading": "簡易検索の場合の処理シーケンス", - "rst_labels": [ - "sql-gaibuka-label" - ] + "heading": "", + "rst_labels": [] }, { "section_id": "s6", - "heading": "推奨するJavaの実装例(SQL文を外部ファイル化した場合)", + "heading": "バリデーション対象のプロパティ指定", "rst_labels": [] }, { "section_id": "s7", - "heading": "Javaの実装例(SQL文指定の場合)", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "設定内容詳細", + "heading": "1つのForm内の複数項目にまたがる入力チェック", "rst_labels": [ - "db-basic-sqlstatementexceptionfactory-label" + "convert_property" ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "値の変換", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "入力値のトリム", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "SqlRowをインプットとして精査を行う例", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "プロパティに紐付くメッセージの作成", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/06_FileUpload.rst", "format": "rst", - "filename": "04_ObjectSave.rst", + "filename": "06_FileUpload.rst", "type": "component", "category": "libraries", - "id": "libraries-04_ObjectSave--s1", - "base_name": "libraries-04_ObjectSave", - "output_path": "component/libraries/libraries-04_ObjectSave--s1.json", - "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s1/", + "id": "libraries-06_FileUpload", + "base_name": "libraries-06_FileUpload", + "output_path": "component/libraries/libraries-06_FileUpload.json", + "assets_dir": "component/libraries/assets/libraries-06_FileUpload/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/05_FileDownload.rst", + "format": "rst", + "filename": "05_FileDownload.rst", + "type": "component", + "category": "libraries", + "id": "libraries-05_FileDownload--s1", + "base_name": "libraries-05_FileDownload", + "output_path": "component/libraries/libraries-05_FileDownload--s1.json", + "assets_dir": "component/libraries/assets/libraries-05_FileDownload--s1/", "section_range": { "start_line": 0, - "end_line": 66, + "end_line": 399, "sections": [ "", - "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", - "インタフェース定義" + "概要", + "", + "特徴", + "", + "要求", + "", + "構成", + "インタフェース定義", + "nablarch.fw.web.HttpResponseクラスのメソッド", + "", + "設定の記述", + "設定内容詳細", + "設定内容詳細" ], "section_ids": [ "s1", "s2", - "s3" + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 3, - "original_id": "libraries-04_ObjectSave", - "group_line_count": 66 + "total_parts": 2, + "original_id": "libraries-05_FileDownload", + "group_line_count": 399 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "db-object-store-label" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "クラス定義", - "rst_labels": [ - "sql-parameter-parser-label", - "sql-convertor-label", - "db-object-save-class-label" - ] + "heading": "特徴", + "rst_labels": [] }, { "section_id": "s5", - "heading": "処理シーケンス", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "Java実装例(Objectのフィールド値を登録する場合)", + "heading": "要求", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "構成", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "インタフェース定義", "rst_labels": [ - "db-object-config-label" + "default-interface-label" ] }, { - "section_id": "s7", + "section_id": "s10", + "heading": "nablarch.fw.web.HttpResponseクラスのメソッド", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "設定の記述", + "rst_labels": [] + }, + { + "section_id": "s13", "heading": "設定内容詳細", "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "設定内容詳細", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "使用例", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/05_FileDownload.rst", "format": "rst", - "filename": "04_ObjectSave.rst", + "filename": "05_FileDownload.rst", "type": "component", "category": "libraries", - "id": "libraries-04_ObjectSave--s4", - "base_name": "libraries-04_ObjectSave", - "output_path": "component/libraries/libraries-04_ObjectSave--s4.json", - "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s4/", + "id": "libraries-05_FileDownload--s15", + "base_name": "libraries-05_FileDownload", + "output_path": "component/libraries/libraries-05_FileDownload--s15.json", + "assets_dir": "component/libraries/assets/libraries-05_FileDownload--s15/", "section_range": { - "start_line": 66, - "end_line": 474, + "start_line": 399, + "end_line": 428, "sections": [ - "クラス定義" + "", + "使用例" ], "section_ids": [ - "s4" + "s15", + "s16" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 3, - "original_id": "libraries-04_ObjectSave", - "group_line_count": 408 + "total_parts": 2, + "original_id": "libraries-05_FileDownload", + "group_line_count": 29 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "db-object-store-label" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "クラス定義", - "rst_labels": [ - "sql-parameter-parser-label", - "sql-convertor-label", - "db-object-save-class-label" - ] + "heading": "特徴", + "rst_labels": [] }, { "section_id": "s5", - "heading": "処理シーケンス", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "Java実装例(Objectのフィールド値を登録する場合)", - "rst_labels": [ - "db-object-config-label" - ] + "heading": "要求", + "rst_labels": [] }, { "section_id": "s7", - "heading": "設定内容詳細", + "heading": "", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/04/04_ObjectSave.rst", - "format": "rst", - "filename": "04_ObjectSave.rst", - "type": "component", - "category": "libraries", - "id": "libraries-04_ObjectSave--s5", - "base_name": "libraries-04_ObjectSave", - "output_path": "component/libraries/libraries-04_ObjectSave--s5.json", - "assets_dir": "component/libraries/assets/libraries-04_ObjectSave--s5/", - "section_range": { - "start_line": 474, - "end_line": 852, - "sections": [ - "処理シーケンス", - "Java実装例(Objectのフィールド値を登録する場合)", - "設定内容詳細" - ], - "section_ids": [ - "s5", - "s6", - "s7" - ] - }, - "split_info": { - "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "libraries-04_ObjectSave", - "group_line_count": 378 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s8", + "heading": "構成", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "インタフェース定義", "rst_labels": [ - "db-object-store-label" + "default-interface-label" ] }, { - "section_id": "s2", - "heading": "オブジェクトのフィールドの値のデータベースへの登録機能(オブジェクトのフィールド値を使用した検索機能)", + "section_id": "s10", + "heading": "nablarch.fw.web.HttpResponseクラスのメソッド", "rst_labels": [] }, { - "section_id": "s3", - "heading": "インタフェース定義", + "section_id": "s11", + "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "クラス定義", - "rst_labels": [ - "sql-parameter-parser-label", - "sql-convertor-label", - "db-object-save-class-label" - ] + "section_id": "s12", + "heading": "設定の記述", + "rst_labels": [] }, { - "section_id": "s5", - "heading": "処理シーケンス", + "section_id": "s13", + "heading": "設定内容詳細", "rst_labels": [] }, { - "section_id": "s6", - "heading": "Java実装例(Objectのフィールド値を登録する場合)", - "rst_labels": [ - "db-object-config-label" - ] + "section_id": "s14", + "heading": "設定内容詳細", + "rst_labels": [] }, { - "section_id": "s7", - "heading": "設定内容詳細", + "section_id": "s15", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "使用例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_03_validation_recursive.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/07_UserAgent.rst", "format": "rst", - "filename": "08_03_validation_recursive.rst", + "filename": "07_UserAgent.rst", "type": "component", "category": "libraries", - "id": "libraries-08_03_validation_recursive--s1", - "base_name": "libraries-08_03_validation_recursive", - "output_path": "component/libraries/libraries-08_03_validation_recursive--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_03_validation_recursive--s1/", + "id": "libraries-07_UserAgent--s1", + "base_name": "libraries-07_UserAgent", + "output_path": "component/libraries/libraries-07_UserAgent--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_UserAgent--s1/", "section_range": { "start_line": 0, - "end_line": 352, + "end_line": 149, "sections": [ + "インタフェース定義", + "nablarch.fw.web.HttpRequestクラスのメソッド", + "nablarch.fw.web.useragent.UserAgentParserインタフェースのメソッド", + "nablarch.fw.web.useragent.UserAgentクラスのメソッド", "", - "複数の Form に対するバリデーション", - "", - "Form の配列を入力する際のバリデーション", - "", - "可変配列長の Form 配列を入力する際の実装例", - "" + "設定の記述" ], "section_ids": [ "s1", @@ -25255,36 +24292,35 @@ "s3", "s4", "s5", - "s6", - "s7" + "s6" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "libraries-08_03_validation_recursive", - "group_line_count": 352 + "total_parts": 1, + "original_id": "libraries-07_UserAgent", + "group_line_count": 149 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s2", - "heading": "複数の Form に対するバリデーション", + "heading": "nablarch.fw.web.HttpRequestクラスのメソッド", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "nablarch.fw.web.useragent.UserAgentParserインタフェースのメソッド", "rst_labels": [] }, { "section_id": "s4", - "heading": "Form の配列を入力する際のバリデーション", + "heading": "nablarch.fw.web.useragent.UserAgentクラスのメソッド", "rst_labels": [] }, { @@ -25294,48 +24330,56 @@ }, { "section_id": "s6", - "heading": "可変配列長の Form 配列を入力する際の実装例", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "画面入力用プロパティとデータベースアクセス用プロパティの変換", + "heading": "設定の記述", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_03_validation_recursive.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging.rst", "format": "rst", - "filename": "08_03_validation_recursive.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_03_validation_recursive--s8", - "base_name": "libraries-08_03_validation_recursive", - "output_path": "component/libraries/libraries-08_03_validation_recursive--s8.json", - "assets_dir": "component/libraries/assets/libraries-08_03_validation_recursive--s8/", + "filename": "messaging.rst", + "type": "processing-pattern", + "category": "mom-messaging", + "id": "mom-messaging-messaging", + "base_name": "mom-messaging-messaging", + "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging.json", + "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_receive.rst", + "format": "rst", + "filename": "messaging_receive.rst", + "type": "processing-pattern", + "category": "mom-messaging", + "id": "mom-messaging-messaging_receive--s1", + "base_name": "mom-messaging-messaging_receive", + "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging_receive--s1.json", + "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging_receive--s1/", "section_range": { - "start_line": 352, - "end_line": 472, + "start_line": 0, + "end_line": 262, "sections": [ - "画面入力用プロパティとデータベースアクセス用プロパティの変換" + "", + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ - "s8" + "s1", + "s2", + "s3", + "s4" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-08_03_validation_recursive", - "group_line_count": 120 - }, + "part": 1, + "total_parts": 1, + "original_id": "mom-messaging-messaging_receive", + "group_line_count": 262 + }, "section_map": [ { "section_id": "s1", @@ -25344,7 +24388,7 @@ }, { "section_id": "s2", - "heading": "複数の Form に対するバリデーション", + "heading": "業務アクションハンドラの実装", "rst_labels": [] }, { @@ -25354,225 +24398,279 @@ }, { "section_id": "s4", - "heading": "Form の配列を入力する際のバリデーション", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "可変配列長の Form 配列を入力する際の実装例", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "画面入力用プロパティとデータベースアクセス用プロパティの変換", - "rst_labels": [] + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_01_validation_architecture.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_resident_thread_sync.rst", "format": "rst", - "filename": "08_01_validation_architecture.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_01_validation_architecture--s1", - "base_name": "libraries-08_01_validation_architecture", - "output_path": "component/libraries/libraries-08_01_validation_architecture--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_01_validation_architecture--s1/", + "filename": "batch_resident_thread_sync.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-batch_resident_thread_sync--s1", + "base_name": "nablarch-batch-batch_resident_thread_sync", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_resident_thread_sync--s1.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_resident_thread_sync--s1/", "section_range": { "start_line": 0, - "end_line": 200, + "end_line": 342, "sections": [ - "インタフェース定義", - "クラス定義", - "nablarch.core.validation.ValidationManager の設定" + "", + "基本構造", + "", + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ "s1", "s2", - "s3" + "s3", + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "libraries-08_01_validation_architecture", - "group_line_count": 200 + "original_id": "nablarch-batch-batch_resident_thread_sync", + "group_line_count": 342 }, "section_map": [ { "section_id": "s1", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "クラス定義", - "rst_labels": [ - "validation_sequence", - "validation_config" - ] + "heading": "基本構造", + "rst_labels": [] }, { "section_id": "s3", - "heading": "nablarch.core.validation.ValidationManager の設定", + "heading": "", "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "業務アクションハンドラの実装", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_05_custom_validator.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_http.rst", "format": "rst", - "filename": "08_05_custom_validator.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_05_custom_validator--s1", - "base_name": "libraries-08_05_custom_validator", - "output_path": "component/libraries/libraries-08_05_custom_validator--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_05_custom_validator--s1/", + "filename": "messaging_http.rst", + "type": "processing-pattern", + "category": "http-messaging", + "id": "http-messaging-messaging_http--s1", + "base_name": "http-messaging-messaging_http", + "output_path": "processing-pattern/http-messaging/http-messaging-messaging_http--s1.json", + "assets_dir": "processing-pattern/http-messaging/assets/http-messaging-messaging_http--s1/", "section_range": { "start_line": 0, - "end_line": 261, + "end_line": 246, "sections": [ - "アノテーションの作成", - "バリデータの作成", - "バリデータを設定ファイルに登録", - "バリデータを明示的に呼び出す場合" + "", + "基本構造", + "", + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ "s1", "s2", "s3", - "s4" + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "libraries-08_05_custom_validator", - "group_line_count": 261 + "original_id": "http-messaging-messaging_http", + "group_line_count": 246 }, "section_map": [ { "section_id": "s1", - "heading": "アノテーションの作成", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "バリデータの作成", + "heading": "基本構造", "rst_labels": [] }, { "section_id": "s3", - "heading": "バリデータを設定ファイルに登録", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "バリデータを明示的に呼び出す場合", + "heading": "業務アクションハンドラの実装", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_06_direct_call_of_validators.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_request_reply.rst", "format": "rst", - "filename": "08_06_direct_call_of_validators.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_06_direct_call_of_validators--s1", - "base_name": "libraries-08_06_direct_call_of_validators", - "output_path": "component/libraries/libraries-08_06_direct_call_of_validators--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_06_direct_call_of_validators--s1/", + "filename": "messaging_request_reply.rst", + "type": "processing-pattern", + "category": "mom-messaging", + "id": "mom-messaging-messaging_request_reply--s1", + "base_name": "mom-messaging-messaging_request_reply", + "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging_request_reply--s1.json", + "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging_request_reply--s1/", "section_range": { "start_line": 0, - "end_line": 59, + "end_line": 330, "sections": [ "", - "バリデータの明示的な呼び出し" + "基本構造", + "", + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ "s1", - "s2" + "s2", + "s3", + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "libraries-08_06_direct_call_of_validators", - "group_line_count": 59 + "original_id": "mom-messaging-messaging_request_reply", + "group_line_count": 330 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "direct_call_of_validators" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "バリデータの明示的な呼び出し", + "heading": "基本構造", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "業務アクションハンドラの実装", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_04_validation_form_inheritance.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", "format": "rst", - "filename": "08_04_validation_form_inheritance.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_04_validation_form_inheritance--s1", - "base_name": "libraries-08_04_validation_form_inheritance", - "output_path": "component/libraries/libraries-08_04_validation_form_inheritance--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_04_validation_form_inheritance--s1/", + "filename": "concept.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-concept-architectural_pattern--s1", + "base_name": "about-nablarch-concept-architectural_pattern", + "output_path": "about/about-nablarch/about-nablarch-concept-architectural_pattern--s1.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-concept-architectural_pattern--s1/", "section_range": { "start_line": 0, - "end_line": 370, + "end_line": 276, "sections": [ "", - "Form の継承とバリデーション条件の継承", + "NAFのアプリケーション動作モデル", "", - "国際化したプロパティの表示名称の取得方法" + "標準ハンドラ構成", + "", + "アプリケーションの実行と初期化処理", + "" ], "section_ids": [ "s1", "s2", "s3", - "s4" + "s4", + "s5", + "s6", + "s7" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "libraries-08_04_validation_form_inheritance", - "group_line_count": 370 + "total_parts": 3, + "original_id": "about-nablarch-concept-architectural_pattern", + "group_line_count": 276 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "basic_architecture" + ] }, { "section_id": "s2", - "heading": "Form の継承とバリデーション条件の継承", + "heading": "NAFのアプリケーション動作モデル", "rst_labels": [] }, { @@ -25582,193 +24680,158 @@ }, { "section_id": "s4", - "heading": "国際化したプロパティの表示名称の取得方法", + "heading": "標準ハンドラ構成", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_02_validation_usage.rst", - "format": "rst", - "filename": "08_02_validation_usage.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_02_validation_usage--s1", - "base_name": "libraries-08_02_validation_usage", - "output_path": "component/libraries/libraries-08_02_validation_usage--s1.json", - "assets_dir": "component/libraries/assets/libraries-08_02_validation_usage--s1/", - "section_range": { - "start_line": 0, - "end_line": 389, - "sections": [ - "", - "バリデーションの実行と入力値の変換", - "", - "Entity の使用", - "", - "バリデーション対象のプロパティ指定", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-08_02_validation_usage", - "group_line_count": 389 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s5", "heading": "", - "rst_labels": [ - "validation_and_convert" - ] + "rst_labels": [] }, { - "section_id": "s2", - "heading": "バリデーションの実行と入力値の変換", - "rst_labels": [ - "validation_form_example", - "entity-usage" - ] + "section_id": "s6", + "heading": "アプリケーションの実行と初期化処理", + "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s7", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "Entity の使用", + "section_id": "s8", + "heading": "ハンドラの構造と実装", "rst_labels": [ - "validation-prop" + "method_binding", + "request_processing" ] }, { - "section_id": "s5", + "section_id": "s9", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "バリデーション対象のプロパティ指定", + "section_id": "s10", + "heading": "リクエストの識別と業務処理の実行", + "rst_labels": [ + "execution_id", + "request_path", + "internal_request_id" + ] + }, + { + "section_id": "s11", + "heading": "", "rst_labels": [] }, { - "section_id": "s7", + "section_id": "s12", "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "1つのForm内の複数項目にまたがる入力チェック", + "section_id": "s13", + "heading": "処理結果の識別", "rst_labels": [ - "convert_property" + "scope" ] }, { - "section_id": "s9", + "section_id": "s14", "heading": "", "rst_labels": [] }, { - "section_id": "s10", - "heading": "値の変換", - "rst_labels": [] + "section_id": "s15", + "heading": "変数スコープ", + "rst_labels": [ + "windowscope" + ] }, { - "section_id": "s11", + "section_id": "s16", "heading": "", "rst_labels": [] }, { - "section_id": "s12", - "heading": "入力値のトリム", - "rst_labels": [] + "section_id": "s17", + "heading": "ハンドライベントコールバック", + "rst_labels": [ + "data_reader" + ] }, { - "section_id": "s13", - "heading": "SqlRowをインプットとして精査を行う例", + "section_id": "s18", + "heading": "", "rst_labels": [] }, { - "section_id": "s14", + "section_id": "s19", + "heading": "データリーダ", + "rst_labels": [ + "implementing_action_handler" + ] + }, + { + "section_id": "s20", "heading": "", "rst_labels": [] }, { - "section_id": "s15", - "heading": "プロパティに紐付くメッセージの作成", + "section_id": "s21", + "heading": "業務アクションハンドラの実装", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/08/08_02_validation_usage.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", "format": "rst", - "filename": "08_02_validation_usage.rst", - "type": "component", - "category": "libraries", - "id": "libraries-08_02_validation_usage--s8", - "base_name": "libraries-08_02_validation_usage", - "output_path": "component/libraries/libraries-08_02_validation_usage--s8.json", - "assets_dir": "component/libraries/assets/libraries-08_02_validation_usage--s8/", + "filename": "concept.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-concept--s8", + "base_name": "about-nablarch-concept", + "output_path": "about/about-nablarch/about-nablarch-concept--s8.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-concept--s8/", "section_range": { - "start_line": 389, - "end_line": 698, + "start_line": 276, + "end_line": 631, "sections": [ - "1つのForm内の複数項目にまたがる入力チェック", - "", - "値の変換", + "ハンドラの構造と実装", "", - "入力値のトリム", - "SqlRowをインプットとして精査を行う例", + "リクエストの識別と業務処理の実行", "", - "プロパティに紐付くメッセージの作成" + "" ], "section_ids": [ "s8", "s9", "s10", "s11", - "s12", - "s13", - "s14", - "s15" + "s12" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 2, - "original_id": "libraries-08_02_validation_usage", - "group_line_count": 309 + "total_parts": 3, + "original_id": "about-nablarch-concept", + "group_line_count": 355 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "validation_and_convert" + "basic_architecture" ] }, { "section_id": "s2", - "heading": "バリデーションの実行と入力値の変換", - "rst_labels": [ - "validation_form_example", - "entity-usage" - ] + "heading": "NAFのアプリケーション動作モデル", + "rst_labels": [] }, { "section_id": "s3", @@ -25777,10 +24840,8 @@ }, { "section_id": "s4", - "heading": "Entity の使用", - "rst_labels": [ - "validation-prop" - ] + "heading": "標準ハンドラ構成", + "rst_labels": [] }, { "section_id": "s5", @@ -25789,7 +24850,7 @@ }, { "section_id": "s6", - "heading": "バリデーション対象のプロパティ指定", + "heading": "アプリケーションの実行と初期化処理", "rst_labels": [] }, { @@ -25799,9 +24860,10 @@ }, { "section_id": "s8", - "heading": "1つのForm内の複数項目にまたがる入力チェック", + "heading": "ハンドラの構造と実装", "rst_labels": [ - "convert_property" + "method_binding", + "request_processing" ] }, { @@ -25811,8 +24873,12 @@ }, { "section_id": "s10", - "heading": "値の変換", - "rst_labels": [] + "heading": "リクエストの識別と業務処理の実行", + "rst_labels": [ + "execution_id", + "request_path", + "internal_request_id" + ] }, { "section_id": "s11", @@ -25821,13 +24887,15 @@ }, { "section_id": "s12", - "heading": "入力値のトリム", + "heading": "", "rst_labels": [] }, { "section_id": "s13", - "heading": "SqlRowをインプットとして精査を行う例", - "rst_labels": [] + "heading": "処理結果の識別", + "rst_labels": [ + "scope" + ] }, { "section_id": "s14", @@ -25836,85 +24904,101 @@ }, { "section_id": "s15", - "heading": "プロパティに紐付くメッセージの作成", + "heading": "変数スコープ", + "rst_labels": [ + "windowscope" + ] + }, + { + "section_id": "s16", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "ハンドライベントコールバック", + "rst_labels": [ + "data_reader" + ] + }, + { + "section_id": "s18", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "データリーダ", + "rst_labels": [ + "implementing_action_handler" + ] + }, + { + "section_id": "s20", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "業務アクションハンドラの実装", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/06_FileUpload.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", "format": "rst", - "filename": "06_FileUpload.rst", - "type": "component", - "category": "libraries", - "id": "libraries-06_FileUpload", - "base_name": "libraries-06_FileUpload", - "output_path": "component/libraries/libraries-06_FileUpload.json", - "assets_dir": "component/libraries/assets/libraries-06_FileUpload/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/05_FileDownload.rst", - "format": "rst", - "filename": "05_FileDownload.rst", - "type": "component", - "category": "libraries", - "id": "libraries-05_FileDownload--s1", - "base_name": "libraries-05_FileDownload", - "output_path": "component/libraries/libraries-05_FileDownload--s1.json", - "assets_dir": "component/libraries/assets/libraries-05_FileDownload--s1/", + "filename": "concept.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-concept--s13", + "base_name": "about-nablarch-concept", + "output_path": "about/about-nablarch/about-nablarch-concept--s13.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-concept--s13/", "section_range": { - "start_line": 0, - "end_line": 399, + "start_line": 631, + "end_line": 1019, "sections": [ + "処理結果の識別", "", - "概要", - "", - "特徴", + "変数スコープ", "", - "要求", + "ハンドライベントコールバック", "", - "構成", - "インタフェース定義", - "nablarch.fw.web.HttpResponseクラスのメソッド", + "データリーダ", "", - "設定の記述", - "設定内容詳細", - "設定内容詳細" + "業務アクションハンドラの実装" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", "s13", - "s14" + "s14", + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-05_FileDownload", - "group_line_count": 399 + "part": 3, + "total_parts": 3, + "original_id": "about-nablarch-concept", + "group_line_count": 388 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "basic_architecture" + ] }, { "section_id": "s2", - "heading": "概要", + "heading": "NAFのアプリケーション動作モデル", "rst_labels": [] }, { @@ -25924,7 +25008,7 @@ }, { "section_id": "s4", - "heading": "特徴", + "heading": "標準ハンドラ構成", "rst_labels": [] }, { @@ -25934,7 +25018,7 @@ }, { "section_id": "s6", - "heading": "要求", + "heading": "アプリケーションの実行と初期化処理", "rst_labels": [] }, { @@ -25944,20 +25028,25 @@ }, { "section_id": "s8", - "heading": "構成", - "rst_labels": [] + "heading": "ハンドラの構造と実装", + "rst_labels": [ + "method_binding", + "request_processing" + ] }, { "section_id": "s9", - "heading": "インタフェース定義", - "rst_labels": [ - "default-interface-label" - ] + "heading": "", + "rst_labels": [] }, { "section_id": "s10", - "heading": "nablarch.fw.web.HttpResponseクラスのメソッド", - "rst_labels": [] + "heading": "リクエストの識別と業務処理の実行", + "rst_labels": [ + "execution_id", + "request_path", + "internal_request_id" + ] }, { "section_id": "s11", @@ -25966,69 +25055,108 @@ }, { "section_id": "s12", - "heading": "設定の記述", + "heading": "", "rst_labels": [] }, { "section_id": "s13", - "heading": "設定内容詳細", - "rst_labels": [] + "heading": "処理結果の識別", + "rst_labels": [ + "scope" + ] }, { "section_id": "s14", - "heading": "設定内容詳細", + "heading": "", "rst_labels": [] }, { "section_id": "s15", + "heading": "変数スコープ", + "rst_labels": [ + "windowscope" + ] + }, + { + "section_id": "s16", "heading": "", "rst_labels": [] }, { - "section_id": "s16", - "heading": "使用例", + "section_id": "s17", + "heading": "ハンドライベントコールバック", + "rst_labels": [ + "data_reader" + ] + }, + { + "section_id": "s18", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "データリーダ", + "rst_labels": [ + "implementing_action_handler" + ] + }, + { + "section_id": "s20", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "業務アクションハンドラの実装", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/05_FileDownload.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/web_gui.rst", "format": "rst", - "filename": "05_FileDownload.rst", - "type": "component", - "category": "libraries", - "id": "libraries-05_FileDownload--s15", - "base_name": "libraries-05_FileDownload", - "output_path": "component/libraries/libraries-05_FileDownload--s15.json", - "assets_dir": "component/libraries/assets/libraries-05_FileDownload--s15/", + "filename": "web_gui.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-web_gui--s1", + "base_name": "web-application-web_gui", + "output_path": "processing-pattern/web-application/web-application-web_gui--s1.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-web_gui--s1/", "section_range": { - "start_line": 399, - "end_line": 428, + "start_line": 0, + "end_line": 251, "sections": [ "", - "使用例" + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ - "s15", - "s16" + "s1", + "s2", + "s3", + "s4" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-05_FileDownload", - "group_line_count": 29 + "part": 1, + "total_parts": 1, + "original_id": "web-application-web_gui", + "group_line_count": 251 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "web_gui" + ] }, { "section_id": "s2", - "heading": "概要", + "heading": "業務アクションハンドラの実装", "rst_labels": [] }, { @@ -26038,169 +25166,113 @@ }, { "section_id": "s4", - "heading": "特徴", - "rst_labels": [] - }, + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_resident.rst", + "format": "rst", + "filename": "batch_resident.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-batch_resident--s1", + "base_name": "nablarch-batch-batch_resident", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_resident--s1.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_resident--s1/", + "section_range": { + "start_line": 0, + "end_line": 293, + "sections": [ + "", + "基本構造", + "", + "業務アクションハンドラの実装", + "", + "標準ハンドラ構成と主要処理フロー" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "nablarch-batch-batch_resident", + "group_line_count": 293 + }, + "section_map": [ { - "section_id": "s5", + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "要求", + "section_id": "s2", + "heading": "基本構造", "rst_labels": [] }, { - "section_id": "s7", + "section_id": "s3", "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "構成", + "section_id": "s4", + "heading": "業務アクションハンドラの実装", "rst_labels": [] }, { - "section_id": "s9", - "heading": "インタフェース定義", - "rst_labels": [ - "default-interface-label" - ] - }, - { - "section_id": "s10", - "heading": "nablarch.fw.web.HttpResponseクラスのメソッド", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "設定の記述", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "設定内容詳細", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "設定内容詳細", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "使用例", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/02_Fw/01_Web/07_UserAgent.rst", - "format": "rst", - "filename": "07_UserAgent.rst", - "type": "component", - "category": "libraries", - "id": "libraries-07_UserAgent--s1", - "base_name": "libraries-07_UserAgent", - "output_path": "component/libraries/libraries-07_UserAgent--s1.json", - "assets_dir": "component/libraries/assets/libraries-07_UserAgent--s1/", - "section_range": { - "start_line": 0, - "end_line": 149, - "sections": [ - "インタフェース定義", - "nablarch.fw.web.HttpRequestクラスのメソッド", - "nablarch.fw.web.useragent.UserAgentParserインタフェースのメソッド", - "nablarch.fw.web.useragent.UserAgentクラスのメソッド", - "", - "設定の記述" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-07_UserAgent", - "group_line_count": 149 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "インタフェース定義", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "nablarch.fw.web.HttpRequestクラスのメソッド", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "nablarch.fw.web.useragent.UserAgentParserインタフェースのメソッド", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "nablarch.fw.web.useragent.UserAgentクラスのメソッド", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] + "section_id": "s5", + "heading": "", + "rst_labels": [] }, { "section_id": "s6", - "heading": "設定の記述", - "rst_labels": [] + "heading": "標準ハンドラ構成と主要処理フロー", + "rst_labels": [ + "flow-table" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch.rst", "format": "rst", - "filename": "messaging.rst", + "filename": "batch.rst", "type": "processing-pattern", - "category": "mom-messaging", - "id": "mom-messaging-messaging", - "base_name": "mom-messaging-messaging", - "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging.json", - "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging/", + "category": "nablarch-batch", + "id": "nablarch-batch-batch-architectural_pattern", + "base_name": "nablarch-batch-batch-architectural_pattern", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch-architectural_pattern.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch-architectural_pattern/", "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_receive.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_single_shot.rst", "format": "rst", - "filename": "messaging_receive.rst", + "filename": "batch_single_shot.rst", "type": "processing-pattern", - "category": "mom-messaging", - "id": "mom-messaging-messaging_receive--s1", - "base_name": "mom-messaging-messaging_receive", - "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging_receive--s1.json", - "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging_receive--s1/", + "category": "nablarch-batch", + "id": "nablarch-batch-batch_single_shot--s1", + "base_name": "nablarch-batch-batch_single_shot", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_single_shot--s1.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_single_shot--s1/", "section_range": { "start_line": 0, - "end_line": 262, + "end_line": 186, "sections": [ + "", + "基本構造", "", "業務アクションハンドラの実装", "", @@ -26210,15 +25282,17 @@ "s1", "s2", "s3", - "s4" + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "mom-messaging-messaging_receive", - "group_line_count": 262 + "original_id": "nablarch-batch-batch_single_shot", + "group_line_count": 186 }, "section_map": [ { @@ -26228,7 +25302,7 @@ }, { "section_id": "s2", - "heading": "業務アクションハンドラの実装", + "heading": "基本構造", "rst_labels": [] }, { @@ -26238,6 +25312,16 @@ }, { "section_id": "s4", + "heading": "業務アクションハンドラの実装", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", "heading": "標準ハンドラ構成と主要処理フロー", "rst_labels": [ "flow-table" @@ -26246,25 +25330,25 @@ ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_resident_thread_sync.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/01_SystemConstitution/04_RDBMS_Policy.rst", "format": "rst", - "filename": "batch_resident_thread_sync.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-batch_resident_thread_sync--s1", - "base_name": "nablarch-batch-batch_resident_thread_sync", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_resident_thread_sync--s1.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_resident_thread_sync--s1/", + "filename": "04_RDBMS_Policy.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-04_RDBMS_Policy--s1", + "base_name": "about-nablarch-04_RDBMS_Policy", + "output_path": "about/about-nablarch/about-nablarch-04_RDBMS_Policy--s1.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-04_RDBMS_Policy--s1/", "section_range": { "start_line": 0, - "end_line": 342, + "end_line": 127, "sections": [ "", - "基本構造", + "RDBMS への依存の排除", "", - "業務アクションハンドラの実装", + "共通項目の更新について", "", - "標準ハンドラ構成と主要処理フロー" + "フレームワークで規定するテーブルへのアクセスについて" ], "section_ids": [ "s1", @@ -26279,8 +25363,8 @@ "is_split": true, "part": 1, "total_parts": 1, - "original_id": "nablarch-batch-batch_resident_thread_sync", - "group_line_count": 342 + "original_id": "about-nablarch-04_RDBMS_Policy", + "group_line_count": 127 }, "section_map": [ { @@ -26290,7 +25374,7 @@ }, { "section_id": "s2", - "heading": "基本構造", + "heading": "RDBMS への依存の排除", "rst_labels": [] }, { @@ -26300,7 +25384,7 @@ }, { "section_id": "s4", - "heading": "業務アクションハンドラの実装", + "heading": "共通項目の更新について", "rst_labels": [] }, { @@ -26310,49 +25394,51 @@ }, { "section_id": "s6", - "heading": "標準ハンドラ構成と主要処理フロー", - "rst_labels": [ - "flow-table" - ] + "heading": "フレームワークで規定するテーブルへのアクセスについて", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_http.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/reader/index.rst", "format": "rst", - "filename": "messaging_http.rst", - "type": "processing-pattern", - "category": "http-messaging", - "id": "http-messaging-messaging_http--s1", - "base_name": "http-messaging-messaging_http", - "output_path": "processing-pattern/http-messaging/http-messaging-messaging_http--s1.json", - "assets_dir": "processing-pattern/http-messaging/assets/http-messaging-messaging_http--s1/", + "filename": "index.rst", + "type": "component", + "category": "readers", + "id": "readers-reader", + "base_name": "readers-reader", + "output_path": "component/readers/readers-reader.json", + "assets_dir": "component/readers/assets/readers-reader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/ResumeDataReader.rst", + "format": "rst", + "filename": "ResumeDataReader.rst", + "type": "component", + "category": "readers", + "id": "readers-ResumeDataReader--s1", + "base_name": "readers-ResumeDataReader", + "output_path": "component/readers/readers-ResumeDataReader--s1.json", + "assets_dir": "component/readers/assets/readers-ResumeDataReader--s1/", "section_range": { "start_line": 0, - "end_line": 246, + "end_line": 155, "sections": [ "", - "基本構造", - "", - "業務アクションハンドラの実装", - "", - "標準ハンドラ構成と主要処理フロー" + "設定項目" ], "section_ids": [ "s1", - "s2", - "s3", - "s4", - "s5", - "s6" + "s2" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "http-messaging-messaging_http", - "group_line_count": 246 + "original_id": "readers-ResumeDataReader", + "group_line_count": 155 }, "section_map": [ { @@ -26362,53 +25448,189 @@ }, { "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "業務アクションハンドラの実装", + "heading": "設定項目", "rst_labels": [] - }, - { - "section_id": "s5", + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/MessageReader.rst", + "format": "rst", + "filename": "MessageReader.rst", + "type": "component", + "category": "readers", + "id": "readers-MessageReader", + "base_name": "readers-MessageReader", + "output_path": "component/readers/readers-MessageReader.json", + "assets_dir": "component/readers/assets/readers-MessageReader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/DatabaseRecordReader.rst", + "format": "rst", + "filename": "DatabaseRecordReader.rst", + "type": "component", + "category": "readers", + "id": "readers-DatabaseRecordReader", + "base_name": "readers-DatabaseRecordReader", + "output_path": "component/readers/readers-DatabaseRecordReader.json", + "assets_dir": "component/readers/assets/readers-DatabaseRecordReader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/FwHeaderReader.rst", + "format": "rst", + "filename": "FwHeaderReader.rst", + "type": "component", + "category": "readers", + "id": "readers-FwHeaderReader", + "base_name": "readers-FwHeaderReader", + "output_path": "component/readers/readers-FwHeaderReader.json", + "assets_dir": "component/readers/assets/readers-FwHeaderReader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/ValidatableFileDataReader.rst", + "format": "rst", + "filename": "ValidatableFileDataReader.rst", + "type": "component", + "category": "readers", + "id": "readers-ValidatableFileDataReader--s1", + "base_name": "readers-ValidatableFileDataReader", + "output_path": "component/readers/readers-ValidatableFileDataReader--s1.json", + "assets_dir": "component/readers/assets/readers-ValidatableFileDataReader--s1/", + "section_range": { + "start_line": 0, + "end_line": 314, + "sections": [ + "", + "事前精査処理の実装例" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "readers-ValidatableFileDataReader", + "group_line_count": 314 + }, + "section_map": [ + { + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "標準ハンドラ構成と主要処理フロー", - "rst_labels": [ - "flow-table" - ] + "section_id": "s2", + "heading": "事前精査処理の実装例", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/messaging_request_reply.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/reader/FileDataReader.rst", "format": "rst", - "filename": "messaging_request_reply.rst", - "type": "processing-pattern", - "category": "mom-messaging", - "id": "mom-messaging-messaging_request_reply--s1", - "base_name": "mom-messaging-messaging_request_reply", - "output_path": "processing-pattern/mom-messaging/mom-messaging-messaging_request_reply--s1.json", - "assets_dir": "processing-pattern/mom-messaging/assets/mom-messaging-messaging_request_reply--s1/", + "filename": "FileDataReader.rst", + "type": "component", + "category": "readers", + "id": "readers-FileDataReader", + "base_name": "readers-FileDataReader", + "output_path": "component/readers/readers-FileDataReader.json", + "assets_dir": "component/readers/assets/readers-FileDataReader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/reader/DatabaseTableQueueReader.rst", + "format": "rst", + "filename": "DatabaseTableQueueReader.rst", + "type": "component", + "category": "readers", + "id": "readers-DatabaseTableQueueReader", + "base_name": "readers-DatabaseTableQueueReader", + "output_path": "component/readers/readers-DatabaseTableQueueReader.json", + "assets_dir": "component/readers/assets/readers-DatabaseTableQueueReader/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/file_access.rst", + "format": "rst", + "filename": "file_access.rst", + "type": "component", + "category": "libraries", + "id": "libraries-file_access--s1", + "base_name": "libraries-file_access", + "output_path": "component/libraries/libraries-file_access--s1.json", + "assets_dir": "component/libraries/assets/libraries-file_access--s1/", "section_range": { "start_line": 0, - "end_line": 330, + "end_line": 163, "sections": [ "", - "基本構造", + "論理パス", "", - "業務アクションハンドラの実装", + "ファイルアクセスAPI" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "libraries-file_access", + "group_line_count": 163 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "論理パス", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "ファイルアクセスAPI", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/messaging_sender_util.rst", + "format": "rst", + "filename": "messaging_sender_util.rst", + "type": "component", + "category": "libraries", + "id": "libraries-messaging_sender_util--s1", + "base_name": "libraries-messaging_sender_util", + "output_path": "component/libraries/libraries-messaging_sender_util--s1.json", + "assets_dir": "component/libraries/assets/libraries-messaging_sender_util--s1/", + "section_range": { + "start_line": 0, + "end_line": 371, + "sections": [ "", - "標準ハンドラ構成と主要処理フロー" + "送信定義ファイルの設定項目", + "", + "メッセージ送信前後処理の追加", + "", + "メッセージID採番処理の追加" ], "section_ids": [ "s1", @@ -26423,8 +25645,8 @@ "is_split": true, "part": 1, "total_parts": 1, - "original_id": "mom-messaging-messaging_request_reply", - "group_line_count": 330 + "original_id": "libraries-messaging_sender_util", + "group_line_count": 371 }, "section_map": [ { @@ -26434,7 +25656,7 @@ }, { "section_id": "s2", - "heading": "基本構造", + "heading": "送信定義ファイルの設定項目", "rst_labels": [] }, { @@ -26444,7 +25666,7 @@ }, { "section_id": "s4", - "heading": "業務アクションハンドラの実装", + "heading": "メッセージ送信前後処理の追加", "rst_labels": [] }, { @@ -26454,33 +25676,33 @@ }, { "section_id": "s6", - "heading": "標準ハンドラ構成と主要処理フロー", - "rst_labels": [ - "flow-table" - ] + "heading": "メッセージID採番処理の追加", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_mom.rst", "format": "rst", - "filename": "concept.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-concept-architectural_pattern--s1", - "base_name": "about-nablarch-concept-architectural_pattern", - "output_path": "about/about-nablarch/about-nablarch-concept-architectural_pattern--s1.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-concept-architectural_pattern--s1/", + "filename": "enterprise_messaging_mom.rst", + "type": "component", + "category": "libraries", + "id": "libraries-enterprise_messaging_mom--s1", + "base_name": "libraries-enterprise_messaging_mom", + "output_path": "component/libraries/libraries-enterprise_messaging_mom--s1.json", + "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_mom--s1/", "section_range": { "start_line": 0, - "end_line": 276, + "end_line": 240, "sections": [ "", - "NAFのアプリケーション動作モデル", + "概要", "", - "標準ハンドラ構成", + "要求", "", - "アプリケーションの実行と初期化処理", + "全体構成", + "", + "データモデル", "" ], "section_ids": [ @@ -26490,27 +25712,27 @@ "s4", "s5", "s6", - "s7" + "s7", + "s8", + "s9" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 3, - "original_id": "about-nablarch-concept-architectural_pattern", - "group_line_count": 276 + "total_parts": 2, + "original_id": "libraries-enterprise_messaging_mom", + "group_line_count": 240 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "basic_architecture" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "NAFのアプリケーション動作モデル", + "heading": "概要", "rst_labels": [] }, { @@ -26520,7 +25742,7 @@ }, { "section_id": "s4", - "heading": "標準ハンドラ構成", + "heading": "要求", "rst_labels": [] }, { @@ -26530,8 +25752,10 @@ }, { "section_id": "s6", - "heading": "アプリケーションの実行と初期化処理", - "rst_labels": [] + "heading": "全体構成", + "rst_labels": [ + "message_model" + ] }, { "section_id": "s7", @@ -26540,10 +25764,9 @@ }, { "section_id": "s8", - "heading": "ハンドラの構造と実装", + "heading": "データモデル", "rst_labels": [ - "method_binding", - "request_processing" + "messaging_api" ] }, { @@ -26553,11 +25776,9 @@ }, { "section_id": "s10", - "heading": "リクエストの識別と業務処理の実行", + "heading": "メッセージング基盤API", "rst_labels": [ - "execution_id", - "request_path", - "internal_request_id" + "messaging_provider" ] }, { @@ -26567,87 +25788,30 @@ }, { "section_id": "s12", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "処理結果の識別", - "rst_labels": [ - "scope" - ] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "変数スコープ", - "rst_labels": [ - "windowscope" - ] - }, - { - "section_id": "s16", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "ハンドライベントコールバック", - "rst_labels": [ - "data_reader" - ] - }, - { - "section_id": "s18", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "データリーダ", - "rst_labels": [ - "implementing_action_handler" - ] - }, - { - "section_id": "s20", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "業務アクションハンドラの実装", + "heading": "メッセージングプロバイダ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_mom.rst", "format": "rst", - "filename": "concept.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-concept--s8", - "base_name": "about-nablarch-concept", - "output_path": "about/about-nablarch/about-nablarch-concept--s8.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-concept--s8/", + "filename": "enterprise_messaging_mom.rst", + "type": "component", + "category": "libraries", + "id": "libraries-enterprise_messaging_mom--s10", + "base_name": "libraries-enterprise_messaging_mom", + "output_path": "component/libraries/libraries-enterprise_messaging_mom--s10.json", + "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_mom--s10/", "section_range": { - "start_line": 276, - "end_line": 631, + "start_line": 240, + "end_line": 638, "sections": [ - "ハンドラの構造と実装", - "", - "リクエストの識別と業務処理の実行", + "メッセージング基盤API", "", - "" + "メッセージングプロバイダ" ], "section_ids": [ - "s8", - "s9", "s10", "s11", "s12" @@ -26656,21 +25820,19 @@ "split_info": { "is_split": true, "part": 2, - "total_parts": 3, - "original_id": "about-nablarch-concept", - "group_line_count": 355 + "total_parts": 2, + "original_id": "libraries-enterprise_messaging_mom", + "group_line_count": 398 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "basic_architecture" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "NAFのアプリケーション動作モデル", + "heading": "概要", "rst_labels": [] }, { @@ -26680,7 +25842,7 @@ }, { "section_id": "s4", - "heading": "標準ハンドラ構成", + "heading": "要求", "rst_labels": [] }, { @@ -26690,8 +25852,10 @@ }, { "section_id": "s6", - "heading": "アプリケーションの実行と初期化処理", - "rst_labels": [] + "heading": "全体構成", + "rst_labels": [ + "message_model" + ] }, { "section_id": "s7", @@ -26700,10 +25864,9 @@ }, { "section_id": "s8", - "heading": "ハンドラの構造と実装", + "heading": "データモデル", "rst_labels": [ - "method_binding", - "request_processing" + "messaging_api" ] }, { @@ -26713,11 +25876,9 @@ }, { "section_id": "s10", - "heading": "リクエストの識別と業務処理の実行", + "heading": "メッセージング基盤API", "rst_labels": [ - "execution_id", - "request_path", - "internal_request_id" + "messaging_provider" ] }, { @@ -26727,118 +25888,57 @@ }, { "section_id": "s12", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "処理結果の識別", - "rst_labels": [ - "scope" - ] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "変数スコープ", - "rst_labels": [ - "windowscope" - ] - }, - { - "section_id": "s16", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "ハンドライベントコールバック", - "rst_labels": [ - "data_reader" - ] - }, - { - "section_id": "s18", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "データリーダ", - "rst_labels": [ - "implementing_action_handler" - ] - }, - { - "section_id": "s20", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "業務アクションハンドラの実装", + "heading": "メッセージングプロバイダ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/concept.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_basic_validators.rst", "format": "rst", - "filename": "concept.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-concept--s13", - "base_name": "about-nablarch-concept", - "output_path": "about/about-nablarch/about-nablarch-concept--s13.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-concept--s13/", + "filename": "validation_basic_validators.rst", + "type": "component", + "category": "libraries", + "id": "libraries-validation_basic_validators--s1", + "base_name": "libraries-validation_basic_validators", + "output_path": "component/libraries/libraries-validation_basic_validators--s1.json", + "assets_dir": "component/libraries/assets/libraries-validation_basic_validators--s1/", "section_range": { - "start_line": 631, - "end_line": 1019, + "start_line": 0, + "end_line": 344, "sections": [ - "処理結果の識別", "", - "変数スコープ", - "", - "ハンドライベントコールバック", - "", - "データリーダ", + "基本バリデータ・コンバータ一覧", "", - "業務アクションハンドラの実装" + "システム許容文字のバリデーション", + "" ], "section_ids": [ - "s13", - "s14", - "s15", - "s16", - "s17", - "s18", - "s19", - "s20", - "s21" + "s1", + "s2", + "s3", + "s4", + "s5" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "about-nablarch-concept", - "group_line_count": 388 + "part": 1, + "total_parts": 2, + "original_id": "libraries-validation_basic_validators", + "group_line_count": 344 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "basic_architecture" + "validator_and_convertor" ] }, { "section_id": "s2", - "heading": "NAFのアプリケーション動作モデル", + "heading": "基本バリデータ・コンバータ一覧", "rst_labels": [] }, { @@ -26848,7 +25948,7 @@ }, { "section_id": "s4", - "heading": "標準ハンドラ構成", + "heading": "システム許容文字のバリデーション", "rst_labels": [] }, { @@ -26858,145 +25958,53 @@ }, { "section_id": "s6", - "heading": "アプリケーションの実行と初期化処理", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "ハンドラの構造と実装", + "heading": "基本コンバータ、バリデータの設定値", "rst_labels": [ - "method_binding", - "request_processing" + "stringconvertor-setting", + "validate-requiredvalidator-setting", + "validate-lengthvalidator-setting" ] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "リクエストの識別と業務処理の実行", - "rst_labels": [ - "execution_id", - "request_path", - "internal_request_id" - ] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "処理結果の識別", - "rst_labels": [ - "scope" - ] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "変数スコープ", - "rst_labels": [ - "windowscope" - ] - }, - { - "section_id": "s16", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "ハンドライベントコールバック", - "rst_labels": [ - "data_reader" - ] - }, - { - "section_id": "s18", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "データリーダ", - "rst_labels": [ - "implementing_action_handler" - ] - }, - { - "section_id": "s20", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "業務アクションハンドラの実装", - "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/web_gui.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_basic_validators.rst", "format": "rst", - "filename": "web_gui.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-web_gui--s1", - "base_name": "web-application-web_gui", - "output_path": "processing-pattern/web-application/web-application-web_gui--s1.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-web_gui--s1/", + "filename": "validation_basic_validators.rst", + "type": "component", + "category": "libraries", + "id": "libraries-validation_basic_validators--s6", + "base_name": "libraries-validation_basic_validators", + "output_path": "component/libraries/libraries-validation_basic_validators--s6.json", + "assets_dir": "component/libraries/assets/libraries-validation_basic_validators--s6/", "section_range": { - "start_line": 0, - "end_line": 251, + "start_line": 344, + "end_line": 587, "sections": [ - "", - "業務アクションハンドラの実装", - "", - "標準ハンドラ構成と主要処理フロー" + "基本コンバータ、バリデータの設定値" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4" + "s6" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "web-application-web_gui", - "group_line_count": 251 + "part": 2, + "total_parts": 2, + "original_id": "libraries-validation_basic_validators", + "group_line_count": 243 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "web_gui" + "validator_and_convertor" ] }, { "section_id": "s2", - "heading": "業務アクションハンドラの実装", + "heading": "基本バリデータ・コンバータ一覧", "rst_labels": [] }, { @@ -27006,33 +26014,45 @@ }, { "section_id": "s4", - "heading": "標準ハンドラ構成と主要処理フロー", + "heading": "システム許容文字のバリデーション", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "基本コンバータ、バリデータの設定値", "rst_labels": [ - "flow-table" + "stringconvertor-setting", + "validate-requiredvalidator-setting", + "validate-lengthvalidator-setting" ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_resident.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_overview.rst", "format": "rst", - "filename": "batch_resident.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-batch_resident--s1", - "base_name": "nablarch-batch-batch_resident", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_resident--s1.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_resident--s1/", + "filename": "enterprise_messaging_overview.rst", + "type": "component", + "category": "libraries", + "id": "libraries-enterprise_messaging_overview--s1", + "base_name": "libraries-enterprise_messaging_overview", + "output_path": "component/libraries/libraries-enterprise_messaging_overview--s1.json", + "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_overview--s1/", "section_range": { "start_line": 0, - "end_line": 293, + "end_line": 74, "sections": [ "", - "基本構造", + "概要", "", - "業務アクションハンドラの実装", + "全体構成", "", - "標準ハンドラ構成と主要処理フロー" + "機能詳細" ], "section_ids": [ "s1", @@ -27047,8 +26067,8 @@ "is_split": true, "part": 1, "total_parts": 1, - "original_id": "nablarch-batch-batch_resident", - "group_line_count": 293 + "original_id": "libraries-enterprise_messaging_overview", + "group_line_count": 74 }, "section_map": [ { @@ -27058,7 +26078,7 @@ }, { "section_id": "s2", - "heading": "基本構造", + "heading": "概要", "rst_labels": [] }, { @@ -27068,7 +26088,7 @@ }, { "section_id": "s4", - "heading": "業務アクションハンドラの実装", + "heading": "全体構成", "rst_labels": [] }, { @@ -27078,45 +26098,36 @@ }, { "section_id": "s6", - "heading": "標準ハンドラ構成と主要処理フロー", - "rst_labels": [ - "flow-table" - ] + "heading": "機能詳細", + "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch.rst", - "format": "rst", - "filename": "batch.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-batch-architectural_pattern", - "base_name": "nablarch-batch-batch-architectural_pattern", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch-architectural_pattern.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch-architectural_pattern/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/architectural_pattern/batch_single_shot.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_http.rst", "format": "rst", - "filename": "batch_single_shot.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-batch_single_shot--s1", - "base_name": "nablarch-batch-batch_single_shot", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch_single_shot--s1.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch_single_shot--s1/", + "filename": "enterprise_messaging_http.rst", + "type": "component", + "category": "libraries", + "id": "libraries-enterprise_messaging_http--s1", + "base_name": "libraries-enterprise_messaging_http", + "output_path": "component/libraries/libraries-enterprise_messaging_http--s1.json", + "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_http--s1/", "section_range": { "start_line": 0, - "end_line": 186, + "end_line": 276, "sections": [ "", - "基本構造", + "概要", "", - "業務アクションハンドラの実装", + "要求", "", - "標準ハンドラ構成と主要処理フロー" + "全体構成", + "", + "データモデル", + "", + "フレームワーク機能", + "" ], "section_ids": [ "s1", @@ -27124,15 +26135,20 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7", + "s8", + "s9", + "s10", + "s11" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "nablarch-batch-batch_single_shot", - "group_line_count": 186 + "total_parts": 2, + "original_id": "libraries-enterprise_messaging_http", + "group_line_count": 276 }, "section_map": [ { @@ -27142,7 +26158,7 @@ }, { "section_id": "s2", - "heading": "基本構造", + "heading": "概要", "rst_labels": [] }, { @@ -27152,7 +26168,7 @@ }, { "section_id": "s4", - "heading": "業務アクションハンドラの実装", + "heading": "要求", "rst_labels": [] }, { @@ -27162,49 +26178,73 @@ }, { "section_id": "s6", - "heading": "標準ハンドラ構成と主要処理フロー", + "heading": "全体構成", "rst_labels": [ - "flow-table" + "message_model_http" ] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/01_SystemConstitution/04_RDBMS_Policy.rst", - "format": "rst", - "filename": "04_RDBMS_Policy.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-04_RDBMS_Policy--s1", - "base_name": "about-nablarch-04_RDBMS_Policy", - "output_path": "about/about-nablarch/about-nablarch-04_RDBMS_Policy--s1.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-04_RDBMS_Policy--s1/", - "section_range": { - "start_line": 0, - "end_line": 127, - "sections": [ - "", - "RDBMS への依存の排除", - "", - "共通項目の更新について", - "", - "フレームワークで規定するテーブルへのアクセスについて" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "データモデル", + "rst_labels": [ + "framework" + ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "フレームワーク機能", + "rst_labels": [ + "messaging_api" + ] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "通信クライアント", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_http.rst", + "format": "rst", + "filename": "enterprise_messaging_http.rst", + "type": "component", + "category": "libraries", + "id": "libraries-enterprise_messaging_http--s12", + "base_name": "libraries-enterprise_messaging_http", + "output_path": "component/libraries/libraries-enterprise_messaging_http--s12.json", + "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_http--s12/", + "section_range": { + "start_line": 276, + "end_line": 407, + "sections": [ + "通信クライアント" + ], + "section_ids": [ + "s12" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "about-nablarch-04_RDBMS_Policy", - "group_line_count": 127 + "part": 2, + "total_parts": 2, + "original_id": "libraries-enterprise_messaging_http", + "group_line_count": 131 }, "section_map": [ { @@ -27214,7 +26254,7 @@ }, { "section_id": "s2", - "heading": "RDBMS への依存の排除", + "heading": "概要", "rst_labels": [] }, { @@ -27224,7 +26264,7 @@ }, { "section_id": "s4", - "heading": "共通項目の更新について", + "heading": "要求", "rst_labels": [] }, { @@ -27234,51 +26274,79 @@ }, { "section_id": "s6", - "heading": "フレームワークで規定するテーブルへのアクセスについて", + "heading": "全体構成", + "rst_labels": [ + "message_model_http" + ] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "データモデル", + "rst_labels": [ + "framework" + ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "フレームワーク機能", + "rst_labels": [ + "messaging_api" + ] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "通信クライアント", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "component", - "category": "readers", - "id": "readers-reader", - "base_name": "readers-reader", - "output_path": "component/readers/readers-reader.json", - "assets_dir": "component/readers/assets/readers-reader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/ResumeDataReader.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_advanced_validators.rst", "format": "rst", - "filename": "ResumeDataReader.rst", + "filename": "validation_advanced_validators.rst", "type": "component", - "category": "readers", - "id": "readers-ResumeDataReader--s1", - "base_name": "readers-ResumeDataReader", - "output_path": "component/readers/readers-ResumeDataReader--s1.json", - "assets_dir": "component/readers/assets/readers-ResumeDataReader--s1/", + "category": "libraries", + "id": "libraries-validation_advanced_validators--s1", + "base_name": "libraries-validation_advanced_validators", + "output_path": "component/libraries/libraries-validation_advanced_validators--s1.json", + "assets_dir": "component/libraries/assets/libraries-validation_advanced_validators--s1/", "section_range": { "start_line": 0, - "end_line": 155, + "end_line": 195, "sections": [ "", - "設定項目" + "年月日コンバータ", + "", + "年月コンバータ" ], "section_ids": [ "s1", - "s2" + "s2", + "s3", + "s4" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "readers-ResumeDataReader", - "group_line_count": 155 + "original_id": "libraries-validation_advanced_validators", + "group_line_count": 195 }, "section_map": [ { @@ -27288,75 +26356,53 @@ }, { "section_id": "s2", - "heading": "設定項目", + "heading": "年月日コンバータ", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "年月コンバータ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/MessageReader.rst", - "format": "rst", - "filename": "MessageReader.rst", - "type": "component", - "category": "readers", - "id": "readers-MessageReader", - "base_name": "readers-MessageReader", - "output_path": "component/readers/readers-MessageReader.json", - "assets_dir": "component/readers/assets/readers-MessageReader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/DatabaseRecordReader.rst", - "format": "rst", - "filename": "DatabaseRecordReader.rst", - "type": "component", - "category": "readers", - "id": "readers-DatabaseRecordReader", - "base_name": "readers-DatabaseRecordReader", - "output_path": "component/readers/readers-DatabaseRecordReader.json", - "assets_dir": "component/readers/assets/readers-DatabaseRecordReader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/FwHeaderReader.rst", - "format": "rst", - "filename": "FwHeaderReader.rst", - "type": "component", - "category": "readers", - "id": "readers-FwHeaderReader", - "base_name": "readers-FwHeaderReader", - "output_path": "component/readers/readers-FwHeaderReader.json", - "assets_dir": "component/readers/assets/readers-FwHeaderReader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/ValidatableFileDataReader.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/messaging_sending_batch.rst", "format": "rst", - "filename": "ValidatableFileDataReader.rst", + "filename": "messaging_sending_batch.rst", "type": "component", - "category": "readers", - "id": "readers-ValidatableFileDataReader--s1", - "base_name": "readers-ValidatableFileDataReader", - "output_path": "component/readers/readers-ValidatableFileDataReader--s1.json", - "assets_dir": "component/readers/assets/readers-ValidatableFileDataReader--s1/", + "category": "libraries", + "id": "libraries-messaging_sending_batch--s1", + "base_name": "libraries-messaging_sending_batch", + "output_path": "component/libraries/libraries-messaging_sending_batch--s1.json", + "assets_dir": "component/libraries/assets/libraries-messaging_sending_batch--s1/", "section_range": { "start_line": 0, - "end_line": 314, + "end_line": 233, "sections": [ "", - "事前精査処理の実装例" + "基本構造", + "", + "標準ハンドラ構成と主要処理フロー" ], "section_ids": [ "s1", - "s2" + "s2", + "s3", + "s4" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "readers-ValidatableFileDataReader", - "group_line_count": 314 + "original_id": "libraries-messaging_sending_batch", + "group_line_count": 233 }, "section_map": [ { @@ -27366,67 +26412,55 @@ }, { "section_id": "s2", - "heading": "事前精査処理の実装例", + "heading": "基本構造", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "標準ハンドラ構成と主要処理フロー", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/FileDataReader.rst", - "format": "rst", - "filename": "FileDataReader.rst", - "type": "component", - "category": "readers", - "id": "readers-FileDataReader", - "base_name": "readers-FileDataReader", - "output_path": "component/readers/readers-FileDataReader.json", - "assets_dir": "component/readers/assets/readers-FileDataReader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/reader/DatabaseTableQueueReader.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", "format": "rst", - "filename": "DatabaseTableQueueReader.rst", - "type": "component", - "category": "readers", - "id": "readers-DatabaseTableQueueReader", - "base_name": "readers-DatabaseTableQueueReader", - "output_path": "component/readers/readers-DatabaseTableQueueReader.json", - "assets_dir": "component/readers/assets/readers-DatabaseTableQueueReader/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/file_access.rst", - "format": "rst", - "filename": "file_access.rst", + "filename": "record_format.rst", "type": "component", "category": "libraries", - "id": "libraries-file_access--s1", - "base_name": "libraries-file_access", - "output_path": "component/libraries/libraries-file_access--s1.json", - "assets_dir": "component/libraries/assets/libraries-file_access--s1/", + "id": "libraries-record_format--s1", + "base_name": "libraries-record_format", + "output_path": "component/libraries/libraries-record_format--s1.json", + "assets_dir": "component/libraries/assets/libraries-record_format--s1/", "section_range": { "start_line": 0, - "end_line": 163, + "end_line": 159, "sections": [ "", - "論理パス", + "基本構造", "", - "ファイルアクセスAPI" + "使用例", + "" ], "section_ids": [ "s1", "s2", "s3", - "s4" + "s4", + "s5" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "libraries-file_access", - "group_line_count": 163 + "total_parts": 5, + "original_id": "libraries-record_format", + "group_line_count": 159 }, "section_map": [ { @@ -27436,7 +26470,7 @@ }, { "section_id": "s2", - "heading": "論理パス", + "heading": "基本構造", "rst_labels": [] }, { @@ -27446,315 +26480,264 @@ }, { "section_id": "s4", - "heading": "ファイルアクセスAPI", + "heading": "使用例", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "フォーマット定義ファイルの書式", + "rst_labels": [ + "using_multi_format" + ] + }, + { + "section_id": "s7", + "heading": "マルチフォーマット形式の利用", + "rst_labels": [ + "types_and_converters" + ] + }, + { + "section_id": "s8", + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "rst_labels": [ + "converters_sample" + ] + }, + { + "section_id": "s9", + "heading": "フィールドコンバータ(文字列置換)の利用方法", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "可変長ファイルにおけるタイトル行の読み書き", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "ノード名に関する制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", "format": "rst", - "filename": "thread_context.rst", + "filename": "record_format.rst", "type": "component", "category": "libraries", - "id": "libraries-thread_context--s1", - "base_name": "libraries-thread_context", - "output_path": "component/libraries/libraries-thread_context--s1.json", - "assets_dir": "component/libraries/assets/libraries-thread_context--s1/", + "id": "libraries-record_format--s6", + "base_name": "libraries-record_format", + "output_path": "component/libraries/libraries-record_format--s6.json", + "assets_dir": "component/libraries/assets/libraries-record_format--s6/", "section_range": { - "start_line": 0, - "end_line": 345, + "start_line": 159, + "end_line": 529, "sections": [ - "", - "同一スレッド内でのデータ共有(スレッドコンテキスト)", - "インタフェース定義", - "クラス定義", - "ThreadContextHandlerの設定", - "UserIdAttributeの設定", - "RequestIdAttributeの設定", - "InternalRequestIdAttributeの設定" + "フォーマット定義ファイルの書式" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8" + "s6" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-thread_context", - "group_line_count": 345 + "part": 2, + "total_parts": 5, + "original_id": "libraries-record_format", + "group_line_count": 370 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "thread-context-label" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "heading": "基本構造", "rst_labels": [] }, { "section_id": "s3", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "クラス定義", + "heading": "使用例", "rst_labels": [] }, { "section_id": "s5", - "heading": "ThreadContextHandlerの設定", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "UserIdAttributeの設定", - "rst_labels": [] + "heading": "フォーマット定義ファイルの書式", + "rst_labels": [ + "using_multi_format" + ] }, { "section_id": "s7", - "heading": "RequestIdAttributeの設定", - "rst_labels": [] + "heading": "マルチフォーマット形式の利用", + "rst_labels": [ + "types_and_converters" + ] }, { "section_id": "s8", - "heading": "InternalRequestIdAttributeの設定", - "rst_labels": [] + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "rst_labels": [ + "converters_sample" + ] }, { "section_id": "s9", - "heading": "LanguageAttributeの設定", + "heading": "フィールドコンバータ(文字列置換)の利用方法", "rst_labels": [] }, { "section_id": "s10", - "heading": "TimeZoneAttributeの設定", + "heading": "可変長ファイルにおけるタイトル行の読み書き", "rst_labels": [] }, { "section_id": "s11", - "heading": "ExecutionIdAttributeの設定", + "heading": "ノード名に関する制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", "format": "rst", - "filename": "thread_context.rst", + "filename": "record_format.rst", "type": "component", "category": "libraries", - "id": "libraries-thread_context--s9", - "base_name": "libraries-thread_context", - "output_path": "component/libraries/libraries-thread_context--s9.json", - "assets_dir": "component/libraries/assets/libraries-thread_context--s9/", + "id": "libraries-record_format--s7", + "base_name": "libraries-record_format", + "output_path": "component/libraries/libraries-record_format--s7.json", + "assets_dir": "component/libraries/assets/libraries-record_format--s7/", "section_range": { - "start_line": 345, - "end_line": 707, + "start_line": 529, + "end_line": 830, "sections": [ - "LanguageAttributeの設定", - "TimeZoneAttributeの設定", - "ExecutionIdAttributeの設定" + "マルチフォーマット形式の利用", + "フィールドタイプ・フィールドコンバータ定義一覧" ], "section_ids": [ - "s9", - "s10", - "s11" + "s7", + "s8" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-thread_context", - "group_line_count": 362 + "part": 3, + "total_parts": 5, + "original_id": "libraries-record_format", + "group_line_count": 301 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "thread-context-label" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "heading": "基本構造", "rst_labels": [] }, { "section_id": "s3", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "クラス定義", + "heading": "使用例", "rst_labels": [] }, { "section_id": "s5", - "heading": "ThreadContextHandlerの設定", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "UserIdAttributeの設定", - "rst_labels": [] + "heading": "フォーマット定義ファイルの書式", + "rst_labels": [ + "using_multi_format" + ] }, { "section_id": "s7", - "heading": "RequestIdAttributeの設定", - "rst_labels": [] + "heading": "マルチフォーマット形式の利用", + "rst_labels": [ + "types_and_converters" + ] }, { "section_id": "s8", - "heading": "InternalRequestIdAttributeの設定", - "rst_labels": [] + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "rst_labels": [ + "converters_sample" + ] }, { "section_id": "s9", - "heading": "LanguageAttributeの設定", + "heading": "フィールドコンバータ(文字列置換)の利用方法", "rst_labels": [] }, { "section_id": "s10", - "heading": "TimeZoneAttributeの設定", + "heading": "可変長ファイルにおけるタイトル行の読み書き", "rst_labels": [] }, { "section_id": "s11", - "heading": "ExecutionIdAttributeの設定", + "heading": "ノード名に関する制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/messaging_sender_util.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", "format": "rst", - "filename": "messaging_sender_util.rst", + "filename": "record_format.rst", "type": "component", "category": "libraries", - "id": "libraries-messaging_sender_util--s1", - "base_name": "libraries-messaging_sender_util", - "output_path": "component/libraries/libraries-messaging_sender_util--s1.json", - "assets_dir": "component/libraries/assets/libraries-messaging_sender_util--s1/", + "id": "libraries-record_format--s9", + "base_name": "libraries-record_format", + "output_path": "component/libraries/libraries-record_format--s9.json", + "assets_dir": "component/libraries/assets/libraries-record_format--s9/", "section_range": { - "start_line": 0, - "end_line": 371, + "start_line": 830, + "end_line": 1078, "sections": [ - "", - "送信定義ファイルの設定項目", - "", - "メッセージ送信前後処理の追加", - "", - "メッセージID採番処理の追加" + "フィールドコンバータ(文字列置換)の利用方法", + "可変長ファイルにおけるタイトル行の読み書き" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" + "s9", + "s10" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-messaging_sender_util", - "group_line_count": 371 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "送信定義ファイルの設定項目", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "メッセージ送信前後処理の追加", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "メッセージID採番処理の追加", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_mom.rst", - "format": "rst", - "filename": "enterprise_messaging_mom.rst", - "type": "component", - "category": "libraries", - "id": "libraries-enterprise_messaging_mom--s1", - "base_name": "libraries-enterprise_messaging_mom", - "output_path": "component/libraries/libraries-enterprise_messaging_mom--s1.json", - "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_mom--s1/", - "section_range": { - "start_line": 0, - "end_line": 240, - "sections": [ - "", - "概要", - "", - "要求", - "", - "全体構成", - "", - "データモデル", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-enterprise_messaging_mom", - "group_line_count": 240 + "part": 4, + "total_parts": 5, + "original_id": "libraries-record_format", + "group_line_count": 248 }, "section_map": [ { @@ -27764,7 +26747,7 @@ }, { "section_id": "s2", - "heading": "概要", + "heading": "基本構造", "rst_labels": [] }, { @@ -27774,7 +26757,7 @@ }, { "section_id": "s4", - "heading": "要求", + "heading": "使用例", "rst_labels": [] }, { @@ -27784,77 +26767,68 @@ }, { "section_id": "s6", - "heading": "全体構成", + "heading": "フォーマット定義ファイルの書式", "rst_labels": [ - "message_model" + "using_multi_format" ] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] + "heading": "マルチフォーマット形式の利用", + "rst_labels": [ + "types_and_converters" + ] }, { "section_id": "s8", - "heading": "データモデル", + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", "rst_labels": [ - "messaging_api" + "converters_sample" ] }, { "section_id": "s9", - "heading": "", + "heading": "フィールドコンバータ(文字列置換)の利用方法", "rst_labels": [] }, { "section_id": "s10", - "heading": "メッセージング基盤API", - "rst_labels": [ - "messaging_provider" - ] - }, - { - "section_id": "s11", - "heading": "", + "heading": "可変長ファイルにおけるタイトル行の読み書き", "rst_labels": [] }, { - "section_id": "s12", - "heading": "メッセージングプロバイダ", + "section_id": "s11", + "heading": "ノード名に関する制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_mom.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", "format": "rst", - "filename": "enterprise_messaging_mom.rst", + "filename": "record_format.rst", "type": "component", "category": "libraries", - "id": "libraries-enterprise_messaging_mom--s10", - "base_name": "libraries-enterprise_messaging_mom", - "output_path": "component/libraries/libraries-enterprise_messaging_mom--s10.json", - "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_mom--s10/", + "id": "libraries-record_format--s11", + "base_name": "libraries-record_format", + "output_path": "component/libraries/libraries-record_format--s11.json", + "assets_dir": "component/libraries/assets/libraries-record_format--s11/", "section_range": { - "start_line": 240, - "end_line": 638, + "start_line": 1078, + "end_line": 1527, "sections": [ - "メッセージング基盤API", - "", - "メッセージングプロバイダ" + "ノード名に関する制約事項" ], "section_ids": [ - "s10", - "s11", - "s12" + "s11" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-enterprise_messaging_mom", - "group_line_count": 398 + "part": 5, + "total_parts": 5, + "original_id": "libraries-record_format", + "group_line_count": 449 }, "section_map": [ { @@ -27864,7 +26838,7 @@ }, { "section_id": "s2", - "heading": "概要", + "heading": "基本構造", "rst_labels": [] }, { @@ -27874,7 +26848,7 @@ }, { "section_id": "s4", - "heading": "要求", + "heading": "使用例", "rst_labels": [] }, { @@ -27884,1220 +26858,214 @@ }, { "section_id": "s6", - "heading": "全体構成", + "heading": "フォーマット定義ファイルの書式", "rst_labels": [ - "message_model" + "using_multi_format" ] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] + "heading": "マルチフォーマット形式の利用", + "rst_labels": [ + "types_and_converters" + ] }, { "section_id": "s8", - "heading": "データモデル", + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", "rst_labels": [ - "messaging_api" + "converters_sample" ] }, { "section_id": "s9", - "heading": "", + "heading": "フィールドコンバータ(文字列置換)の利用方法", "rst_labels": [] }, { "section_id": "s10", - "heading": "メッセージング基盤API", - "rst_labels": [ - "messaging_provider" - ] - }, - { - "section_id": "s11", - "heading": "", + "heading": "可変長ファイルにおけるタイトル行の読み書き", "rst_labels": [] }, { - "section_id": "s12", - "heading": "メッセージングプロバイダ", + "section_id": "s11", + "heading": "ノード名に関する制約事項", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_basic_validators.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation.rst", "format": "rst", - "filename": "validation_basic_validators.rst", + "filename": "validation.rst", "type": "component", "category": "libraries", - "id": "libraries-validation_basic_validators--s1", - "base_name": "libraries-validation_basic_validators", - "output_path": "component/libraries/libraries-validation_basic_validators--s1.json", - "assets_dir": "component/libraries/assets/libraries-validation_basic_validators--s1/", - "section_range": { - "start_line": 0, - "end_line": 344, - "sections": [ - "", - "基本バリデータ・コンバータ一覧", - "", - "システム許容文字のバリデーション", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-validation_basic_validators", - "group_line_count": 344 - }, + "id": "libraries-validation-core_library", + "base_name": "libraries-validation-core_library", + "output_path": "component/libraries/libraries-validation-core_library.json", + "assets_dir": "component/libraries/assets/libraries-validation-core_library/", "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "validator_and_convertor" - ] - }, - { - "section_id": "s2", - "heading": "基本バリデータ・コンバータ一覧", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "システム許容文字のバリデーション", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "基本コンバータ、バリデータの設定値", - "rst_labels": [ - "stringconvertor-setting", - "validate-requiredvalidator-setting", - "validate-lengthvalidator-setting" + "validation" ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_basic_validators.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/index.rst", "format": "rst", - "filename": "validation_basic_validators.rst", - "type": "component", - "category": "libraries", - "id": "libraries-validation_basic_validators--s6", - "base_name": "libraries-validation_basic_validators", - "output_path": "component/libraries/libraries-validation_basic_validators--s6.json", - "assets_dir": "component/libraries/assets/libraries-validation_basic_validators--s6/", - "section_range": { - "start_line": 344, - "end_line": 587, - "sections": [ - "基本コンバータ、バリデータの設定値" - ], - "section_ids": [ - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-validation_basic_validators", - "group_line_count": 243 - }, + "filename": "index.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-FAQ", + "base_name": "about-nablarch-FAQ", + "output_path": "about/about-nablarch/about-nablarch-FAQ.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-FAQ/", "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "validator_and_convertor" - ] - }, - { - "section_id": "s2", - "heading": "基本バリデータ・コンバータ一覧", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "システム許容文字のバリデーション", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", + "heading": "FAQ一覧", "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "基本コンバータ、バリデータの設定値", - "rst_labels": [ - "stringconvertor-setting", - "validate-requiredvalidator-setting", - "validate-lengthvalidator-setting" - ] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_overview.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/index.rst", "format": "rst", - "filename": "enterprise_messaging_overview.rst", - "type": "component", - "category": "libraries", - "id": "libraries-enterprise_messaging_overview--s1", - "base_name": "libraries-enterprise_messaging_overview", - "output_path": "component/libraries/libraries-enterprise_messaging_overview--s1.json", - "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_overview--s1/", - "section_range": { - "start_line": 0, - "end_line": 74, - "sections": [ - "", - "概要", - "", - "全体構成", - "", - "機能詳細" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-enterprise_messaging_overview", - "group_line_count": 74 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "全体構成", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "機能詳細", - "rst_labels": [] - } - ] + "filename": "index.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-batch-batch", + "base_name": "nablarch-batch-batch-batch", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch-batch.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch-batch/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_http.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/4.rst", "format": "rst", - "filename": "enterprise_messaging_http.rst", - "type": "component", - "category": "libraries", - "id": "libraries-enterprise_messaging_http--s1", - "base_name": "libraries-enterprise_messaging_http", - "output_path": "component/libraries/libraries-enterprise_messaging_http--s1.json", - "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_http--s1/", - "section_range": { - "start_line": 0, - "end_line": 276, - "sections": [ - "", - "概要", - "", - "要求", - "", - "全体構成", - "", - "データモデル", - "", - "フレームワーク機能", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-enterprise_messaging_http", - "group_line_count": 276 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "全体構成", - "rst_labels": [ - "message_model_http" - ] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "データモデル", - "rst_labels": [ - "framework" - ] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "フレームワーク機能", - "rst_labels": [ - "messaging_api" - ] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "通信クライアント", - "rst_labels": [] - } - ] + "filename": "4.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-4", + "base_name": "nablarch-batch-4", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-4.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-4/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/enterprise_messaging_http.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/8.rst", "format": "rst", - "filename": "enterprise_messaging_http.rst", - "type": "component", - "category": "libraries", - "id": "libraries-enterprise_messaging_http--s12", - "base_name": "libraries-enterprise_messaging_http", - "output_path": "component/libraries/libraries-enterprise_messaging_http--s12.json", - "assets_dir": "component/libraries/assets/libraries-enterprise_messaging_http--s12/", - "section_range": { - "start_line": 276, - "end_line": 407, - "sections": [ - "通信クライアント" - ], - "section_ids": [ - "s12" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-enterprise_messaging_http", - "group_line_count": 131 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "全体構成", - "rst_labels": [ - "message_model_http" - ] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "データモデル", - "rst_labels": [ - "framework" - ] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "フレームワーク機能", - "rst_labels": [ - "messaging_api" - ] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "通信クライアント", - "rst_labels": [] - } - ] + "filename": "8.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-8", + "base_name": "nablarch-batch-8", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-8.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-8/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation_advanced_validators.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/9.rst", "format": "rst", - "filename": "validation_advanced_validators.rst", - "type": "component", - "category": "libraries", - "id": "libraries-validation_advanced_validators--s1", - "base_name": "libraries-validation_advanced_validators", - "output_path": "component/libraries/libraries-validation_advanced_validators--s1.json", - "assets_dir": "component/libraries/assets/libraries-validation_advanced_validators--s1/", - "section_range": { - "start_line": 0, - "end_line": 195, - "sections": [ - "", - "年月日コンバータ", - "", - "年月コンバータ" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-validation_advanced_validators", - "group_line_count": 195 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "年月日コンバータ", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "年月コンバータ", - "rst_labels": [] - } - ] + "filename": "9.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-9", + "base_name": "nablarch-batch-9", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-9.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-9/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/messaging_sending_batch.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/5.rst", "format": "rst", - "filename": "messaging_sending_batch.rst", - "type": "component", - "category": "libraries", - "id": "libraries-messaging_sending_batch--s1", - "base_name": "libraries-messaging_sending_batch", - "output_path": "component/libraries/libraries-messaging_sending_batch--s1.json", - "assets_dir": "component/libraries/assets/libraries-messaging_sending_batch--s1/", - "section_range": { - "start_line": 0, - "end_line": 233, - "sections": [ - "", - "基本構造", - "", - "標準ハンドラ構成と主要処理フロー" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "libraries-messaging_sending_batch", - "group_line_count": 233 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "標準ハンドラ構成と主要処理フロー", - "rst_labels": [] - } - ] + "filename": "5.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-5", + "base_name": "nablarch-batch-5", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-5.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-5/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/2.rst", "format": "rst", - "filename": "record_format.rst", - "type": "component", - "category": "libraries", - "id": "libraries-record_format--s1", - "base_name": "libraries-record_format", - "output_path": "component/libraries/libraries-record_format--s1.json", - "assets_dir": "component/libraries/assets/libraries-record_format--s1/", - "section_range": { - "start_line": 0, - "end_line": 159, - "sections": [ - "", - "基本構造", - "", - "使用例", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 5, - "original_id": "libraries-record_format", - "group_line_count": 159 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "使用例", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "フォーマット定義ファイルの書式", - "rst_labels": [ - "using_multi_format" - ] - }, - { - "section_id": "s7", - "heading": "マルチフォーマット形式の利用", - "rst_labels": [ - "types_and_converters" - ] - }, - { - "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", - "rst_labels": [ - "converters_sample" - ] - }, - { - "section_id": "s9", - "heading": "フィールドコンバータ(文字列置換)の利用方法", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "可変長ファイルにおけるタイトル行の読み書き", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ノード名に関する制約事項", - "rst_labels": [] - } - ] + "filename": "2.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-2", + "base_name": "nablarch-batch-2", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-2.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-2/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/7.rst", "format": "rst", - "filename": "record_format.rst", - "type": "component", - "category": "libraries", - "id": "libraries-record_format--s6", - "base_name": "libraries-record_format", - "output_path": "component/libraries/libraries-record_format--s6.json", - "assets_dir": "component/libraries/assets/libraries-record_format--s6/", - "section_range": { - "start_line": 159, - "end_line": 529, - "sections": [ - "フォーマット定義ファイルの書式" - ], - "section_ids": [ - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 5, - "original_id": "libraries-record_format", - "group_line_count": 370 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "使用例", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "フォーマット定義ファイルの書式", - "rst_labels": [ - "using_multi_format" - ] - }, - { - "section_id": "s7", - "heading": "マルチフォーマット形式の利用", - "rst_labels": [ - "types_and_converters" - ] - }, - { - "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", - "rst_labels": [ - "converters_sample" - ] - }, - { - "section_id": "s9", - "heading": "フィールドコンバータ(文字列置換)の利用方法", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "可変長ファイルにおけるタイトル行の読み書き", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ノード名に関する制約事項", - "rst_labels": [] - } - ] + "filename": "7.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-7", + "base_name": "nablarch-batch-7", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-7.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-7/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/3.rst", "format": "rst", - "filename": "record_format.rst", - "type": "component", - "category": "libraries", - "id": "libraries-record_format--s7", - "base_name": "libraries-record_format", - "output_path": "component/libraries/libraries-record_format--s7.json", - "assets_dir": "component/libraries/assets/libraries-record_format--s7/", - "section_range": { - "start_line": 529, - "end_line": 830, - "sections": [ - "マルチフォーマット形式の利用", - "フィールドタイプ・フィールドコンバータ定義一覧" - ], - "section_ids": [ - "s7", - "s8" - ] - }, - "split_info": { - "is_split": true, - "part": 3, - "total_parts": 5, - "original_id": "libraries-record_format", - "group_line_count": 301 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "使用例", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "フォーマット定義ファイルの書式", - "rst_labels": [ - "using_multi_format" - ] - }, - { - "section_id": "s7", - "heading": "マルチフォーマット形式の利用", - "rst_labels": [ - "types_and_converters" - ] - }, - { - "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", - "rst_labels": [ - "converters_sample" - ] - }, - { - "section_id": "s9", - "heading": "フィールドコンバータ(文字列置換)の利用方法", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "可変長ファイルにおけるタイトル行の読み書き", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ノード名に関する制約事項", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", - "format": "rst", - "filename": "record_format.rst", - "type": "component", - "category": "libraries", - "id": "libraries-record_format--s9", - "base_name": "libraries-record_format", - "output_path": "component/libraries/libraries-record_format--s9.json", - "assets_dir": "component/libraries/assets/libraries-record_format--s9/", - "section_range": { - "start_line": 830, - "end_line": 1078, - "sections": [ - "フィールドコンバータ(文字列置換)の利用方法", - "可変長ファイルにおけるタイトル行の読み書き" - ], - "section_ids": [ - "s9", - "s10" - ] - }, - "split_info": { - "is_split": true, - "part": 4, - "total_parts": 5, - "original_id": "libraries-record_format", - "group_line_count": 248 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "使用例", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "フォーマット定義ファイルの書式", - "rst_labels": [ - "using_multi_format" - ] - }, - { - "section_id": "s7", - "heading": "マルチフォーマット形式の利用", - "rst_labels": [ - "types_and_converters" - ] - }, - { - "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", - "rst_labels": [ - "converters_sample" - ] - }, - { - "section_id": "s9", - "heading": "フィールドコンバータ(文字列置換)の利用方法", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "可変長ファイルにおけるタイトル行の読み書き", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ノード名に関する制約事項", - "rst_labels": [] - } - ] + "filename": "3.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-3", + "base_name": "nablarch-batch-3", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-3.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-3/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/record_format.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/1.rst", "format": "rst", - "filename": "record_format.rst", - "type": "component", - "category": "libraries", - "id": "libraries-record_format--s11", - "base_name": "libraries-record_format", - "output_path": "component/libraries/libraries-record_format--s11.json", - "assets_dir": "component/libraries/assets/libraries-record_format--s11/", - "section_range": { - "start_line": 1078, - "end_line": 1527, - "sections": [ - "ノード名に関する制約事項" - ], - "section_ids": [ - "s11" - ] - }, - "split_info": { - "is_split": true, - "part": 5, - "total_parts": 5, - "original_id": "libraries-record_format", - "group_line_count": 449 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "基本構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "使用例", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "フォーマット定義ファイルの書式", - "rst_labels": [ - "using_multi_format" - ] - }, - { - "section_id": "s7", - "heading": "マルチフォーマット形式の利用", - "rst_labels": [ - "types_and_converters" - ] - }, - { - "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", - "rst_labels": [ - "converters_sample" - ] - }, - { - "section_id": "s9", - "heading": "フィールドコンバータ(文字列置換)の利用方法", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "可変長ファイルにおけるタイトル行の読み書き", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ノード名に関する制約事項", - "rst_labels": [] - } - ] + "filename": "1.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-1-FAQ", + "base_name": "nablarch-batch-1-FAQ", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-1-FAQ.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-1-FAQ/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/validation.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/6.rst", "format": "rst", - "filename": "validation.rst", - "type": "component", - "category": "libraries", - "id": "libraries-validation-core_library", - "base_name": "libraries-validation-core_library", - "output_path": "component/libraries/libraries-validation-core_library.json", - "assets_dir": "component/libraries/assets/libraries-validation-core_library/", - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "validation" - ] - } - ] + "filename": "6.rst", + "type": "processing-pattern", + "category": "nablarch-batch", + "id": "nablarch-batch-6", + "base_name": "nablarch-batch-6", + "output_path": "processing-pattern/nablarch-batch/nablarch-batch-6.json", + "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-6/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/index.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/test/index.rst", "format": "rst", "filename": "index.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-FAQ", - "base_name": "about-nablarch-FAQ", - "output_path": "about/about-nablarch/about-nablarch-FAQ.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-FAQ/", - "section_map": [ - { - "section_id": "s1", - "heading": "FAQ一覧", - "rst_labels": [] - } - ] + "type": "development-tools", + "category": "testing-framework", + "id": "testing-framework-test", + "base_name": "testing-framework-test", + "output_path": "development-tools/testing-framework/testing-framework-test.json", + "assets_dir": "development-tools/testing-framework/assets/testing-framework-test/", + "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-batch-batch", - "base_name": "nablarch-batch-batch-batch", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-batch-batch.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-batch-batch/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/4.rst", - "format": "rst", - "filename": "4.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-4", - "base_name": "nablarch-batch-4", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-4.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-4/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/8.rst", - "format": "rst", - "filename": "8.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-8", - "base_name": "nablarch-batch-8", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-8.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-8/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/9.rst", - "format": "rst", - "filename": "9.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-9", - "base_name": "nablarch-batch-9", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-9.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-9/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/5.rst", - "format": "rst", - "filename": "5.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-5", - "base_name": "nablarch-batch-5", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-5.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-5/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/2.rst", - "format": "rst", - "filename": "2.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-2", - "base_name": "nablarch-batch-2", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-2.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-2/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/7.rst", - "format": "rst", - "filename": "7.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-7", - "base_name": "nablarch-batch-7", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-7.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-7/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/3.rst", - "format": "rst", - "filename": "3.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-3", - "base_name": "nablarch-batch-3", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-3.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-3/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/1.rst", - "format": "rst", - "filename": "1.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-1-FAQ", - "base_name": "nablarch-batch-1-FAQ", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-1-FAQ.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-1-FAQ/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/batch/6.rst", - "format": "rst", - "filename": "6.rst", - "type": "processing-pattern", - "category": "nablarch-batch", - "id": "nablarch-batch-6", - "base_name": "nablarch-batch-6", - "output_path": "processing-pattern/nablarch-batch/nablarch-batch-6.json", - "assets_dir": "processing-pattern/nablarch-batch/assets/nablarch-batch-6/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/test/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "development-tools", - "category": "testing-framework", - "id": "testing-framework-test", - "base_name": "testing-framework-test", - "output_path": "development-tools/testing-framework/testing-framework-test.json", - "assets_dir": "development-tools/testing-framework/assets/testing-framework-test/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/document/FAQ/test/4.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/test/4.rst", "format": "rst", "filename": "4.rst", "type": "development-tools", @@ -29373,117 +27341,2131 @@ "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/5.rst", + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/5.rst", + "format": "rst", + "filename": "5.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-5", + "base_name": "web-application-5", + "output_path": "processing-pattern/web-application/web-application-5.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-5/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/7.rst", + "format": "rst", + "filename": "7.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-7", + "base_name": "web-application-7", + "output_path": "processing-pattern/web-application/web-application-7.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-7/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/3.rst", + "format": "rst", + "filename": "3.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-3", + "base_name": "web-application-3", + "output_path": "processing-pattern/web-application/web-application-3.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-3/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/10.rst", + "format": "rst", + "filename": "10.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-10", + "base_name": "web-application-10", + "output_path": "processing-pattern/web-application/web-application-10.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-10/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/1.rst", + "format": "rst", + "filename": "1.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-1-FAQ", + "base_name": "web-application-1-FAQ", + "output_path": "processing-pattern/web-application/web-application-1-FAQ.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-1-FAQ/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/6.rst", + "format": "rst", + "filename": "6.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-6", + "base_name": "web-application-6", + "output_path": "processing-pattern/web-application/web-application-6.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-6/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/FAQ/web/16.rst", + "format": "rst", + "filename": "16.rst", + "type": "processing-pattern", + "category": "web-application", + "id": "web-application-16", + "base_name": "web-application-16", + "output_path": "processing-pattern/web-application/web-application-16.json", + "assets_dir": "processing-pattern/web-application/assets/web-application-16/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-source--s1", + "base_name": "biz-samples-source", + "output_path": "guide/biz-samples/biz-samples-source--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-source--s1/", + "section_range": { + "start_line": 0, + "end_line": 37, + "sections": [ + "", + "目次" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-source", + "group_line_count": 37 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "目次", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/about.rst", + "format": "rst", + "filename": "about.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-about--s1", + "base_name": "biz-samples-about", + "output_path": "guide/biz-samples/biz-samples-about--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-about--s1/", + "section_range": { + "start_line": 0, + "end_line": 28, + "sections": [ + "", + "Nablarch Mobile Library とは?", + "", + "NMLが想定する利用形態と提供する機能" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-about", + "group_line_count": 28 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "Nablarch Mobile Library とは?", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "NMLが想定する利用形態と提供する機能", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/00_Introduction.rst", + "format": "rst", + "filename": "00_Introduction.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-00_Introduction--s1", + "base_name": "biz-samples-00_Introduction", + "output_path": "guide/biz-samples/biz-samples-00_Introduction--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-00_Introduction--s1/", + "section_range": { + "start_line": 0, + "end_line": 105, + "sections": [ + "", + "ビルド設定", + "", + "実装方針" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-00_Introduction", + "group_line_count": 105 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "ビルド設定", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "実装方針", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/03_Utility/01_Utility.rst", + "format": "rst", + "filename": "01_Utility.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-01_Utility--s1", + "base_name": "biz-samples-01_Utility", + "output_path": "guide/biz-samples/biz-samples-01_Utility--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_Utility--s1/", + "section_range": { + "start_line": 0, + "end_line": 174, + "sections": [ + "", + "NMCommonUtil", + "", + "NMConnectionUtil", + "" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "biz-samples-01_Utility", + "group_line_count": 174 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "NMCommonUtil", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "NMConnectionUtil", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "NMMockUtil", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/03_Utility/01_Utility.rst", + "format": "rst", + "filename": "01_Utility.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-01_Utility--s6", + "base_name": "biz-samples-01_Utility", + "output_path": "guide/biz-samples/biz-samples-01_Utility--s6.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_Utility--s6/", + "section_range": { + "start_line": 174, + "end_line": 492, + "sections": [ + "NMMockUtil" + ], + "section_ids": [ + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "biz-samples-01_Utility", + "group_line_count": 318 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "NMCommonUtil", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "NMConnectionUtil", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "NMMockUtil", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/02_Encryption/01_Encryption.rst", + "format": "rst", + "filename": "01_Encryption.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-01_Encryption--s1", + "base_name": "biz-samples-01_Encryption", + "output_path": "guide/biz-samples/biz-samples-01_Encryption--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_Encryption--s1/", + "section_range": { + "start_line": 0, + "end_line": 220, + "sections": [ + "", + "概要", + "", + "特徴", + "", + "使用方法" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-01_Encryption", + "group_line_count": 220 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "概要", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "特徴", + "rst_labels": [ + "implementated" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "使用方法", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/01_ConnectionFramework/01_ConnectionFramework.rst", + "format": "rst", + "filename": "01_ConnectionFramework.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-01_ConnectionFramework--s1", + "base_name": "biz-samples-01_ConnectionFramework", + "output_path": "guide/biz-samples/biz-samples-01_ConnectionFramework--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_ConnectionFramework--s1/", + "section_range": { + "start_line": 0, + "end_line": 345, + "sections": [ + "", + "概要", + "", + "特徴", + "", + "データモデル", + "", + "使用方法", + "" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "biz-samples-01_ConnectionFramework", + "group_line_count": 345 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "概要", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "特徴", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "データモデル", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "使用方法", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "実装クラス", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "ユーティリティ", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/01_ConnectionFramework/01_ConnectionFramework.rst", + "format": "rst", + "filename": "01_ConnectionFramework.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-01_ConnectionFramework--s10", + "base_name": "biz-samples-01_ConnectionFramework", + "output_path": "guide/biz-samples/biz-samples-01_ConnectionFramework--s10.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_ConnectionFramework--s10/", + "section_range": { + "start_line": 345, + "end_line": 407, + "sections": [ + "実装クラス", + "", + "ユーティリティ" + ], + "section_ids": [ + "s10", + "s11", + "s12" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "biz-samples-01_ConnectionFramework", + "group_line_count": 62 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "概要", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "特徴", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "データモデル", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "使用方法", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "実装クラス", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "ユーティリティ", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-doc-workflow--s1", + "base_name": "workflow-doc-workflow", + "output_path": "extension/workflow/workflow-doc-workflow--s1.json", + "assets_dir": "extension/workflow/assets/workflow-doc-workflow--s1/", + "section_range": { + "start_line": 0, + "end_line": 155, + "sections": [ + "", + "概要", + "", + "要求", + "", + "対象外としている機能", + "", + "制約事項", + "", + "全体構造", + "", + "提供するAPI" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-doc-workflow", + "group_line_count": 155 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "概要", + "rst_labels": [ + "workflow_definition", + "workflow_instance" + ] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "要求", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "対象外としている機能", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "制約事項", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "全体構造", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "提供するAPI", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/toc.rst", + "format": "rst", + "filename": "toc.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-toc-workflow", + "base_name": "workflow-toc-workflow", + "output_path": "extension/workflow/workflow-toc-workflow.json", + "assets_dir": "extension/workflow/assets/workflow-toc-workflow/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowInstanceElement.rst", + "format": "rst", + "filename": "WorkflowInstanceElement.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowInstanceElement--s1", + "base_name": "workflow-WorkflowInstanceElement", + "output_path": "extension/workflow/workflow-WorkflowInstanceElement--s1.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowInstanceElement--s1/", + "section_range": { + "start_line": 0, + "end_line": 57, + "sections": [ + "", + "タスク担当ユーザ/タスク担当グループ", + "", + "アクティブフローノード", + "", + "アクティブユーザタスク/アクティブグループタスク" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-WorkflowInstanceElement", + "group_line_count": 57 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "workflow_task_assignee" + ] + }, + { + "section_id": "s2", + "heading": "タスク担当ユーザ/タスク担当グループ", + "rst_labels": [ + "workflow_active_flow_node" + ] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "アクティブフローノード", + "rst_labels": [ + "workflow_active_task" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "アクティブユーザタスク/アクティブグループタスク", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowProcessElement.rst", + "format": "rst", + "filename": "WorkflowProcessElement.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowProcessElement--s1", + "base_name": "workflow-WorkflowProcessElement", + "output_path": "extension/workflow/workflow-WorkflowProcessElement--s1.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowProcessElement--s1/", + "section_range": { + "start_line": 0, + "end_line": 220, + "sections": [ + "", + "フローノード", + "", + "シーケンスフロー", + "", + "タスク", + "", + "XORゲートウェイ", + "", + "開始イベント", + "", + "停止イベント", + "", + "境界イベント", + "", + "レーン" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-WorkflowProcessElement", + "group_line_count": 220 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "workflow_flow_node" + ] + }, + { + "section_id": "s2", + "heading": "フローノード", + "rst_labels": [ + "workflow_element_sequence_flows" + ] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "シーケンスフロー", + "rst_labels": [ + "workflow_element_task" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "タスク", + "rst_labels": [ + "workflow_element_multi_instance_task", + "workflow_element_gateway_xor" + ] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "XORゲートウェイ", + "rst_labels": [ + "workflow_element_event_start" + ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "開始イベント", + "rst_labels": [ + "workflow_element_event_terminate" + ] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "停止イベント", + "rst_labels": [ + "workflow_element_boundary_event" + ] + }, + { + "section_id": "s13", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "境界イベント", + "rst_labels": [ + "workflow_element_lane" + ] + }, + { + "section_id": "s15", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "レーン", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", + "format": "rst", + "filename": "WorkflowArchitecture.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowArchitecture--s1", + "base_name": "workflow-WorkflowArchitecture", + "output_path": "extension/workflow/workflow-WorkflowArchitecture--s1.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s1/", + "section_range": { + "start_line": 0, + "end_line": 208, + "sections": [ + "" + ], + "section_ids": [ + "s1" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 3, + "original_id": "workflow-WorkflowArchitecture", + "group_line_count": 208 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "テーブル定義", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "テーブル定義の例", + "rst_labels": [ + "assign_user", + "assign_group" + ] + }, + { + "section_id": "s4", + "heading": "テーブル定義の例", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "コンポーネント定義", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", + "format": "rst", + "filename": "WorkflowArchitecture.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowArchitecture--s2", + "base_name": "workflow-WorkflowArchitecture", + "output_path": "extension/workflow/workflow-WorkflowArchitecture--s2.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s2/", + "section_range": { + "start_line": 208, + "end_line": 598, + "sections": [ + "テーブル定義", + "テーブル定義の例", + "テーブル定義の例", + "" + ], + "section_ids": [ + "s2", + "s3", + "s4", + "s5" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 3, + "original_id": "workflow-WorkflowArchitecture", + "group_line_count": 390 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "テーブル定義", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "テーブル定義の例", + "rst_labels": [ + "assign_user", + "assign_group" + ] + }, + { + "section_id": "s4", + "heading": "テーブル定義の例", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "コンポーネント定義", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", + "format": "rst", + "filename": "WorkflowArchitecture.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowArchitecture--s6", + "base_name": "workflow-WorkflowArchitecture", + "output_path": "extension/workflow/workflow-WorkflowArchitecture--s6.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s6/", + "section_range": { + "start_line": 598, + "end_line": 824, + "sections": [ + "コンポーネント定義" + ], + "section_ids": [ + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 3, + "total_parts": 3, + "original_id": "workflow-WorkflowArchitecture", + "group_line_count": 226 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "テーブル定義", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "テーブル定義の例", + "rst_labels": [ + "assign_user", + "assign_group" + ] + }, + { + "section_id": "s4", + "heading": "テーブル定義の例", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "コンポーネント定義", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowApplicationApi.rst", + "format": "rst", + "filename": "WorkflowApplicationApi.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowApplicationApi--s1", + "base_name": "workflow-WorkflowApplicationApi", + "output_path": "extension/workflow/workflow-WorkflowApplicationApi--s1.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowApplicationApi--s1/", + "section_range": { + "start_line": 0, + "end_line": 377, + "sections": [ + "", + "ワークフローの開始", + "", + "インスタンスIDの取得", + "", + "開始済みワークフローの検索", + "", + "ワークフローの進行", + "", + "境界イベントによるワークフローの進行", + "", + "ユーザ/グループの割り当て", + "", + "割り当て済みユーザ/グループの変更", + "", + "フローノードがアクティブか否かの問い合わせ", + "", + "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "", + "ワークフローが完了したか否かの問い合わせ", + "" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "workflow-WorkflowApplicationApi", + "group_line_count": 377 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "ワークフローの開始", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "インスタンスIDの取得", + "rst_labels": [ + "workflow_api_find" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "開始済みワークフローの検索", + "rst_labels": [ + "workflow_complete_task" + ] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "ワークフローの進行", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "境界イベントによるワークフローの進行", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "ユーザ/グループの割り当て", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "割り当て済みユーザ/グループの変更", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "フローノードがアクティブか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "ワークフローが完了したか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "現在有効なワークフローバージョンの取得", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "FlowProceedConditionインタフェース", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "使用例", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "CompletionConditionインタフェース", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowApplicationApi.rst", + "format": "rst", + "filename": "WorkflowApplicationApi.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowApplicationApi--s22", + "base_name": "workflow-WorkflowApplicationApi", + "output_path": "extension/workflow/workflow-WorkflowApplicationApi--s22.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowApplicationApi--s22/", + "section_range": { + "start_line": 377, + "end_line": 612, + "sections": [ + "現在有効なワークフローバージョンの取得", + "", + "FlowProceedConditionインタフェース", + "", + "使用例", + "", + "CompletionConditionインタフェース" + ], + "section_ids": [ + "s22", + "s23", + "s24", + "s25", + "s26", + "s27", + "s28" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "workflow-WorkflowApplicationApi", + "group_line_count": 235 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "ワークフローの開始", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "インスタンスIDの取得", + "rst_labels": [ + "workflow_api_find" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "開始済みワークフローの検索", + "rst_labels": [ + "workflow_complete_task" + ] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "ワークフローの進行", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "境界イベントによるワークフローの進行", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "ユーザ/グループの割り当て", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "割り当て済みユーザ/グループの変更", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "フローノードがアクティブか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "ワークフローが完了したか否かの問い合わせ", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "現在有効なワークフローバージョンの取得", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "FlowProceedConditionインタフェース", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "使用例", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "CompletionConditionインタフェース", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowProcessSample.rst", "format": "rst", - "filename": "5.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-5", - "base_name": "web-application-5", - "output_path": "processing-pattern/web-application/web-application-5.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-5/", - "section_map": [] + "filename": "WorkflowProcessSample.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-WorkflowProcessSample--s1", + "base_name": "workflow-WorkflowProcessSample", + "output_path": "extension/workflow/workflow-WorkflowProcessSample--s1.json", + "assets_dir": "extension/workflow/assets/workflow-WorkflowProcessSample--s1/", + "section_range": { + "start_line": 0, + "end_line": 220, + "sections": [ + "通常経路(申請・確認・承認)", + "条件分岐", + "差戻", + "再申請", + "取消", + "却下", + "引戻", + "後閲", + "合議(回覧)", + "審議(エスカレーション)/スキップ" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-WorkflowProcessSample", + "group_line_count": 220 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "通常経路(申請・確認・承認)", + "rst_labels": [ + "workflow_normal_process", + "workflow_conditional_branch" + ] + }, + { + "section_id": "s2", + "heading": "条件分岐", + "rst_labels": [ + "workflow_remand" + ] + }, + { + "section_id": "s3", + "heading": "差戻", + "rst_labels": [ + "workflow_reapply" + ] + }, + { + "section_id": "s4", + "heading": "再申請", + "rst_labels": [ + "workflow_cancel" + ] + }, + { + "section_id": "s5", + "heading": "取消", + "rst_labels": [ + "workflow_reject" + ] + }, + { + "section_id": "s6", + "heading": "却下", + "rst_labels": [ + "workflow_pullback" + ] + }, + { + "section_id": "s7", + "heading": "引戻", + "rst_labels": [ + "workflow_confirm" + ] + }, + { + "section_id": "s8", + "heading": "後閲", + "rst_labels": [ + "workflow_council" + ] + }, + { + "section_id": "s9", + "heading": "合議(回覧)", + "rst_labels": [ + "workflow_escalation" + ] + }, + { + "section_id": "s10", + "heading": "審議(エスカレーション)/スキップ", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/7.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/index.rst", "format": "rst", - "filename": "7.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-7", - "base_name": "web-application-7", - "output_path": "processing-pattern/web-application/web-application-7.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-7/", + "filename": "index.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-doc", + "base_name": "workflow-doc", + "output_path": "extension/workflow/workflow-doc.json", + "assets_dir": "extension/workflow/assets/workflow-doc/", "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/3.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/toc.rst", "format": "rst", - "filename": "3.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-3", - "base_name": "web-application-3", - "output_path": "processing-pattern/web-application/web-application-3.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-3/", + "filename": "toc.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-toc-sample_application", + "base_name": "workflow-toc-sample_application", + "output_path": "extension/workflow/workflow-toc-sample_application.json", + "assets_dir": "extension/workflow/assets/workflow-toc-sample_application/", "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/10.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationViewImplementation.rst", "format": "rst", - "filename": "10.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-10", - "base_name": "web-application-10", - "output_path": "processing-pattern/web-application/web-application-10.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-10/", - "section_map": [] + "filename": "SampleApplicationViewImplementation.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-SampleApplicationViewImplementation--s1", + "base_name": "workflow-SampleApplicationViewImplementation", + "output_path": "extension/workflow/workflow-SampleApplicationViewImplementation--s1.json", + "assets_dir": "extension/workflow/assets/workflow-SampleApplicationViewImplementation--s1/", + "section_range": { + "start_line": 0, + "end_line": 152, + "sections": [ + "", + "タスクがアクティブかどうかの判定", + "", + "担当ユーザ/グループへのアクティブタスクの割り当て状況の確認", + "", + "画面表示項目の切り替え" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-SampleApplicationViewImplementation", + "group_line_count": 152 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "タスクがアクティブかどうかの判定", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "担当ユーザ/グループへのアクティブタスクの割り当て状況の確認", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "画面表示項目の切り替え", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/1.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationExtension.rst", "format": "rst", - "filename": "1.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-1-FAQ", - "base_name": "web-application-1-FAQ", - "output_path": "processing-pattern/web-application/web-application-1-FAQ.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-1-FAQ/", - "section_map": [] + "filename": "SampleApplicationExtension.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-SampleApplicationExtension--s1", + "base_name": "workflow-SampleApplicationExtension", + "output_path": "extension/workflow/workflow-SampleApplicationExtension--s1.json", + "assets_dir": "extension/workflow/assets/workflow-SampleApplicationExtension--s1/", + "section_range": { + "start_line": 0, + "end_line": 55, + "sections": [ + "", + "進行先ノードの判定制御ロジックの実装" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-SampleApplicationExtension", + "group_line_count": 55 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "customize_flow_proceed_condition" + ] + }, + { + "section_id": "s2", + "heading": "進行先ノードの判定制御ロジックの実装", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/6.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationDesign.rst", "format": "rst", - "filename": "6.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-6", - "base_name": "web-application-6", - "output_path": "processing-pattern/web-application/web-application-6.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-6/", - "section_map": [] + "filename": "SampleApplicationDesign.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-SampleApplicationDesign--s1", + "base_name": "workflow-SampleApplicationDesign", + "output_path": "extension/workflow/workflow-SampleApplicationDesign--s1.json", + "assets_dir": "extension/workflow/assets/workflow-SampleApplicationDesign--s1/", + "section_range": { + "start_line": 0, + "end_line": 99, + "sections": [ + "", + "ワークフロー定義", + "", + "画面遷移", + "", + "ワークフローライブラリに関連する機能", + "ワークフローに付随する情報の保持", + "ワークフローにおける処理履歴の保持", + "タスクにアサインするユーザ/グループや権限の管理" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-SampleApplicationDesign", + "group_line_count": 99 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "ワークフロー定義", + "rst_labels": [ + "trans_expence_appliance_definition", + "loan_appliance_definition" + ] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "画面遷移", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "ワークフローライブラリに関連する機能", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "ワークフローに付随する情報の保持", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "ワークフローにおける処理履歴の保持", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "タスクにアサインするユーザ/グループや権限の管理", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/document/FAQ/web/16.rst", + "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationImplementation.rst", "format": "rst", - "filename": "16.rst", - "type": "processing-pattern", - "category": "web-application", - "id": "web-application-16", - "base_name": "web-application-16", - "output_path": "processing-pattern/web-application/web-application-16.json", - "assets_dir": "processing-pattern/web-application/assets/web-application-16/", - "section_map": [] + "filename": "SampleApplicationImplementation.rst", + "type": "extension", + "category": "workflow", + "id": "workflow-SampleApplicationImplementation--s1", + "base_name": "workflow-SampleApplicationImplementation", + "output_path": "extension/workflow/workflow-SampleApplicationImplementation--s1.json", + "assets_dir": "extension/workflow/assets/workflow-SampleApplicationImplementation--s1/", + "section_range": { + "start_line": 0, + "end_line": 325, + "sections": [ + "", + "ワークフローの開始", + "", + "ワークフローの進行", + "", + "境界イベントの実行", + "", + "ワークフローの検索", + "", + "排他制御についての注意事項" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "workflow-SampleApplicationImplementation", + "group_line_count": 325 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "start_workflow" + ] + }, + { + "section_id": "s2", + "heading": "ワークフローの開始", + "rst_labels": [ + "complete_task" + ] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "ワークフローの進行", + "rst_labels": [ + "trigger_event" + ] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "境界イベントの実行", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "ワークフローの検索", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "排他制御についての注意事項", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/index.rst", + "source_path": ".lw/nab-official/v1.4/workflow/tool/doc/index.rst", "format": "rst", "filename": "index.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-source--s1", - "base_name": "biz-samples-source", - "output_path": "guide/biz-samples/biz-samples-source--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-source--s1/", + "type": "extension", + "category": "workflow", + "id": "workflow-doc-tool--s1", + "base_name": "workflow-doc-tool", + "output_path": "extension/workflow/workflow-doc-tool--s1.json", + "assets_dir": "extension/workflow/assets/workflow-doc-tool--s1/", "section_range": { "start_line": 0, - "end_line": 37, + "end_line": 383, "sections": [ "", - "目次" + "概要", + "", + "前提", + "", + "ツール配置場所", + "", + "利用の準備", + "", + "利用手順", + "精査エラー発生時の動作", + "", + "仕様", + "ワークフロー定義", + "レーン", + "フローノード", + "シーケンスフロー", + "境界イベントトリガー", + "境界イベント", + "タスク", + "イベント", + "ゲートウェイ", + "構文精査", + "ワークフローライブラリの制約に関する精査", + "", + "プロジェクト固有の設定について", + "省略記法について", + "省略記法の追加・変更" ], "section_ids": [ "s1", - "s2" + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21", + "s22", + "s23", + "s24", + "s25", + "s26", + "s27", + "s28" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-source", - "group_line_count": 37 + "original_id": "workflow-doc-tool", + "group_line_count": 383 }, "section_map": [ { @@ -29493,43 +29475,177 @@ }, { "section_id": "s2", - "heading": "目次", + "heading": "概要", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "前提", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "ツール配置場所", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "利用の準備", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "利用手順", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "精査エラー発生時の動作", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "仕様", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "ワークフロー定義", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "レーン", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "フローノード", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "シーケンスフロー", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "境界イベントトリガー", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "境界イベント", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "タスク", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "イベント", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "ゲートウェイ", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "構文精査", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "ワークフローライブラリの制約に関する精査", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "プロジェクト固有の設定について", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "省略記法について", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "省略記法の追加・変更", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/about.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/0402_ExtendedFieldType.rst", "format": "rst", - "filename": "about.rst", + "filename": "0402_ExtendedFieldType.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-about--s1", - "base_name": "biz-samples-about", - "output_path": "guide/biz-samples/biz-samples-about--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-about--s1/", + "id": "biz-samples-0402_ExtendedFieldType--s1", + "base_name": "biz-samples-0402_ExtendedFieldType", + "output_path": "guide/biz-samples/biz-samples-0402_ExtendedFieldType--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-0402_ExtendedFieldType--s1/", "section_range": { "start_line": 0, - "end_line": 28, + "end_line": 136, "sections": [ "", - "Nablarch Mobile Library とは?", - "", - "NMLが想定する利用形態と提供する機能" + "概要", + "提供パッケージ", + "フィールドタイプの構成", + "フィールドタイプの使用方法", + "フィールドタイプ・フィールドコンバータ定義一覧" ], "section_ids": [ "s1", "s2", "s3", - "s4" + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-about", - "group_line_count": 28 + "original_id": "biz-samples-0402_ExtendedFieldType", + "group_line_count": 136 }, "section_map": [ { @@ -29539,53 +29655,77 @@ }, { "section_id": "s2", - "heading": "Nablarch Mobile Library とは?", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "提供パッケージ", "rst_labels": [] }, { "section_id": "s4", - "heading": "NMLが想定する利用形態と提供する機能", + "heading": "フィールドタイプの構成", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "フィールドタイプの使用方法", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/00_Introduction.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/02_ExtendedValidation.rst", "format": "rst", - "filename": "00_Introduction.rst", + "filename": "02_ExtendedValidation.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-00_Introduction--s1", - "base_name": "biz-samples-00_Introduction", - "output_path": "guide/biz-samples/biz-samples-00_Introduction--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-00_Introduction--s1/", + "id": "biz-samples-02_ExtendedValidation--s1", + "base_name": "biz-samples-02_ExtendedValidation", + "output_path": "guide/biz-samples/biz-samples-02_ExtendedValidation--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-02_ExtendedValidation--s1/", "section_range": { "start_line": 0, - "end_line": 105, + "end_line": 311, "sections": [ "", - "ビルド設定", + "提供パッケージ", "", - "実装方針" + "メールアドレスバリデーション", + "", + "日本電話番号バリデーション", + "精査仕様", + "精査仕様", + "実装例", + "", + "コード値精査" ], "section_ids": [ "s1", "s2", "s3", - "s4" + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-00_Introduction", - "group_line_count": 105 + "original_id": "biz-samples-02_ExtendedValidation", + "group_line_count": 311 }, "section_map": [ { @@ -29595,7 +29735,7 @@ }, { "section_id": "s2", - "heading": "ビルド設定", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -29605,45 +29745,86 @@ }, { "section_id": "s4", - "heading": "実装方針", + "heading": "メールアドレスバリデーション", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "日本電話番号バリデーション", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "精査仕様", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "精査仕様", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "実装例", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "コード値精査", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/03_Utility/01_Utility.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/index.rst", "format": "rst", - "filename": "01_Utility.rst", + "filename": "index.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-01_Utility--s1", - "base_name": "biz-samples-01_Utility", - "output_path": "guide/biz-samples/biz-samples-01_Utility--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_Utility--s1/", + "id": "biz-samples-doc", + "base_name": "biz-samples-doc", + "output_path": "guide/biz-samples/biz-samples-doc.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-doc/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/useragent_sample.rst", + "format": "rst", + "filename": "useragent_sample.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-useragent_sample--s1", + "base_name": "biz-samples-useragent_sample", + "output_path": "guide/biz-samples/biz-samples-useragent_sample--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-useragent_sample--s1/", "section_range": { "start_line": 0, - "end_line": 174, + "end_line": 99, "sections": [ "", - "NMCommonUtil", - "", - "NMConnectionUtil", - "" + "UserAgent情報取得機能設定サンプル" ], "section_ids": [ "s1", - "s2", - "s3", - "s4", - "s5" + "s2" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 2, - "original_id": "biz-samples-01_Utility", - "group_line_count": 174 + "original_id": "biz-samples-useragent_sample", + "group_line_count": 99 }, "section_map": [ { @@ -29653,109 +29834,167 @@ }, { "section_id": "s2", - "heading": "NMCommonUtil", + "heading": "UserAgent情報取得機能設定サンプル", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "各種ユーザエージェント値から取得できる値の例", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/useragent_sample.rst", + "format": "rst", + "filename": "useragent_sample.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-useragent_sample--s3", + "base_name": "biz-samples-useragent_sample", + "output_path": "guide/biz-samples/biz-samples-useragent_sample--s3.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-useragent_sample--s3/", + "section_range": { + "start_line": 99, + "end_line": 445, + "sections": [ + "各種ユーザエージェント値から取得できる値の例" + ], + "section_ids": [ + "s3" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "biz-samples-useragent_sample", + "group_line_count": 346 + }, + "section_map": [ { - "section_id": "s4", - "heading": "NMConnectionUtil", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s2", + "heading": "UserAgent情報取得機能設定サンプル", "rst_labels": [] }, { - "section_id": "s6", - "heading": "NMMockUtil", + "section_id": "s3", + "heading": "各種ユーザエージェント値から取得できる値の例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/03_Utility/01_Utility.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/06_Captcha.rst", "format": "rst", - "filename": "01_Utility.rst", + "filename": "06_Captcha.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-01_Utility--s6", - "base_name": "biz-samples-01_Utility", - "output_path": "guide/biz-samples/biz-samples-01_Utility--s6.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_Utility--s6/", + "id": "biz-samples-06_Captcha--s1", + "base_name": "biz-samples-06_Captcha", + "output_path": "guide/biz-samples/biz-samples-06_Captcha--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-06_Captcha--s1/", "section_range": { - "start_line": 174, - "end_line": 492, + "start_line": 0, + "end_line": 359, "sections": [ - "NMMockUtil" + "", + "提供パッケージ", + "", + "概要", + "", + "構成", + "", + "使用方法" ], "section_ids": [ - "s6" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "biz-samples-01_Utility", - "group_line_count": 318 + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-06_Captcha", + "group_line_count": 359 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "captcha" + ] }, { "section_id": "s2", - "heading": "NMCommonUtil", + "heading": "提供パッケージ", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "概要", "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s5", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "NMConnectionUtil", + "section_id": "s6", + "heading": "構成", "rst_labels": [] }, { - "section_id": "s5", + "section_id": "s7", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "NMMockUtil", + "section_id": "s8", + "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/02_Encryption/01_Encryption.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/01_Authentication.rst", "format": "rst", - "filename": "01_Encryption.rst", + "filename": "01_Authentication.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-01_Encryption--s1", - "base_name": "biz-samples-01_Encryption", - "output_path": "guide/biz-samples/biz-samples-01_Encryption--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_Encryption--s1/", + "id": "biz-samples-01_Authentication--s1", + "base_name": "biz-samples-01_Authentication", + "output_path": "guide/biz-samples/biz-samples-01_Authentication--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-01_Authentication--s1/", "section_range": { "start_line": 0, - "end_line": 220, + "end_line": 323, "sections": [ + "", + "提供パッケージ", "", "概要", "", - "特徴", + "構成", "", "使用方法" ], @@ -29765,25 +30004,29 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7", + "s8" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-01_Encryption", - "group_line_count": 220 + "original_id": "biz-samples-01_Authentication", + "group_line_count": 323 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "authentication" + ] }, { "section_id": "s2", - "heading": "概要", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -29793,10 +30036,8 @@ }, { "section_id": "s4", - "heading": "特徴", - "rst_labels": [ - "implementated" - ] + "heading": "概要", + "rst_labels": [] }, { "section_id": "s5", @@ -29805,34 +30046,50 @@ }, { "section_id": "s6", + "heading": "構成", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/01_ConnectionFramework/01_ConnectionFramework.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", "format": "rst", - "filename": "01_ConnectionFramework.rst", + "filename": "03_ListSearchResult.rst", "type": "guide", "category": "biz-samples", - "id": "biz-samples-01_ConnectionFramework--s1", - "base_name": "biz-samples-01_ConnectionFramework", - "output_path": "guide/biz-samples/biz-samples-01_ConnectionFramework--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_ConnectionFramework--s1/", + "id": "biz-samples-03_ListSearchResult--s1", + "base_name": "biz-samples-03_ListSearchResult", + "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s1/", "section_range": { "start_line": 0, - "end_line": 345, + "end_line": 266, "sections": [ "", - "概要", + "提供パッケージ", "", - "特徴", + "概要", "", - "データモデル", + "構成", "", "使用方法", - "" + "", + "ListSearchInfoクラス", + "", + "listSearchResultタグ", + "全体", + "検索結果件数", + "ページング" ], "section_ids": [ "s1", @@ -29843,25 +30100,33 @@ "s6", "s7", "s8", - "s9" + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "biz-samples-01_ConnectionFramework", - "group_line_count": 345 + "total_parts": 4, + "original_id": "biz-samples-03_ListSearchResult", + "group_line_count": 266 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "list_search_result" + ] }, { "section_id": "s2", - "heading": "概要", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -29871,7 +30136,7 @@ }, { "section_id": "s4", - "heading": "特徴", + "heading": "概要", "rst_labels": [] }, { @@ -29881,7 +30146,7 @@ }, { "section_id": "s6", - "heading": "データモデル", + "heading": "構成", "rst_labels": [] }, { @@ -29901,7 +30166,7 @@ }, { "section_id": "s10", - "heading": "実装クラス", + "heading": "ListSearchInfoクラス", "rst_labels": [] }, { @@ -29911,51 +30176,181 @@ }, { "section_id": "s12", - "heading": "ユーティリティ", + "heading": "listSearchResultタグ", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "全体", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "検索結果件数", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "ページング", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "検索結果", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "検索結果の並び替え", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "検索結果の一覧表示機能のデフォルト値設定", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "タグリファレンス", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "全体", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "検索結果件数", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "ページング", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "現在のページ番号", + "rst_labels": [] + }, + { + "section_id": "s33", + "heading": "最初", + "rst_labels": [] + }, + { + "section_id": "s34", + "heading": "前へ", + "rst_labels": [] + }, + { + "section_id": "s35", + "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "rst_labels": [] + }, + { + "section_id": "s36", + "heading": "次へ", + "rst_labels": [] + }, + { + "section_id": "s37", + "heading": "最後", + "rst_labels": [] + }, + { + "section_id": "s38", + "heading": "検索結果", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/mobile/source/01_iOS/01_ConnectionFramework/01_ConnectionFramework.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", "format": "rst", - "filename": "01_ConnectionFramework.rst", + "filename": "03_ListSearchResult.rst", "type": "guide", - "category": "biz-samples", - "id": "biz-samples-01_ConnectionFramework--s10", - "base_name": "biz-samples-01_ConnectionFramework", - "output_path": "guide/biz-samples/biz-samples-01_ConnectionFramework--s10.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_ConnectionFramework--s10/", + "category": "biz-samples", + "id": "biz-samples-03_ListSearchResult--s16", + "base_name": "biz-samples-03_ListSearchResult", + "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s16.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s16/", "section_range": { - "start_line": 345, - "end_line": 407, + "start_line": 266, + "end_line": 520, "sections": [ - "実装クラス", - "", - "ユーティリティ" + "検索結果", + "" ], "section_ids": [ - "s10", - "s11", - "s12" + "s16", + "s17" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 2, - "original_id": "biz-samples-01_ConnectionFramework", - "group_line_count": 62 + "total_parts": 4, + "original_id": "biz-samples-03_ListSearchResult", + "group_line_count": 254 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "list_search_result" + ] }, { "section_id": "s2", - "heading": "概要", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -29965,7 +30360,7 @@ }, { "section_id": "s4", - "heading": "特徴", + "heading": "概要", "rst_labels": [] }, { @@ -29975,7 +30370,7 @@ }, { "section_id": "s6", - "heading": "データモデル", + "heading": "構成", "rst_labels": [] }, { @@ -29995,7 +30390,7 @@ }, { "section_id": "s10", - "heading": "実装クラス", + "heading": "ListSearchInfoクラス", "rst_labels": [] }, { @@ -30005,285 +30400,190 @@ }, { "section_id": "s12", - "heading": "ユーティリティ", + "heading": "listSearchResultタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-doc-workflow--s1", - "base_name": "workflow-doc-workflow", - "output_path": "extension/workflow/workflow-doc-workflow--s1.json", - "assets_dir": "extension/workflow/assets/workflow-doc-workflow--s1/", - "section_range": { - "start_line": 0, - "end_line": 155, - "sections": [ - "", - "概要", - "", - "要求", - "", - "対象外としている機能", - "", - "制約事項", - "", - "全体構造", - "", - "提供するAPI" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "workflow-doc-workflow", - "group_line_count": 155 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s13", + "heading": "全体", "rst_labels": [] }, { - "section_id": "s2", - "heading": "概要", - "rst_labels": [ - "workflow_definition", - "workflow_instance" - ] + "section_id": "s14", + "heading": "検索結果件数", + "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s15", + "heading": "ページング", "rst_labels": [] }, { - "section_id": "s4", - "heading": "要求", + "section_id": "s16", + "heading": "検索結果", "rst_labels": [] }, { - "section_id": "s5", + "section_id": "s17", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "対象外としている機能", + "section_id": "s18", + "heading": "検索結果の並び替え", "rst_labels": [] }, { - "section_id": "s7", + "section_id": "s19", "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "制約事項", + "section_id": "s20", + "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", "rst_labels": [] }, { - "section_id": "s9", + "section_id": "s21", "heading": "", "rst_labels": [] }, { - "section_id": "s10", - "heading": "全体構造", + "section_id": "s22", + "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", "rst_labels": [] }, { - "section_id": "s11", + "section_id": "s23", "heading": "", "rst_labels": [] }, { - "section_id": "s12", - "heading": "提供するAPI", + "section_id": "s24", + "heading": "検索結果の一覧表示機能のデフォルト値設定", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/toc.rst", - "format": "rst", - "filename": "toc.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-toc-workflow", - "base_name": "workflow-toc-workflow", - "output_path": "extension/workflow/workflow-toc-workflow.json", - "assets_dir": "extension/workflow/assets/workflow-toc-workflow/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowInstanceElement.rst", - "format": "rst", - "filename": "WorkflowInstanceElement.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowInstanceElement--s1", - "base_name": "workflow-WorkflowInstanceElement", - "output_path": "extension/workflow/workflow-WorkflowInstanceElement--s1.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowInstanceElement--s1/", - "section_range": { - "start_line": 0, - "end_line": 57, - "sections": [ - "", - "タスク担当ユーザ/タスク担当グループ", - "", - "アクティブフローノード", - "", - "アクティブユーザタスク/アクティブグループタスク" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "workflow-WorkflowInstanceElement", - "group_line_count": 57 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s25", "heading": "", - "rst_labels": [ - "workflow_task_assignee" - ] + "rst_labels": [] }, { - "section_id": "s2", - "heading": "タスク担当ユーザ/タスク担当グループ", - "rst_labels": [ - "workflow_active_flow_node" - ] + "section_id": "s26", + "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", + "rst_labels": [] }, { - "section_id": "s3", + "section_id": "s27", "heading": "", "rst_labels": [] }, { - "section_id": "s4", - "heading": "アクティブフローノード", - "rst_labels": [ - "workflow_active_task" - ] + "section_id": "s28", + "heading": "タグリファレンス", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "全体", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "検索結果件数", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "ページング", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "現在のページ番号", + "rst_labels": [] + }, + { + "section_id": "s33", + "heading": "最初", + "rst_labels": [] + }, + { + "section_id": "s34", + "heading": "前へ", + "rst_labels": [] + }, + { + "section_id": "s35", + "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "rst_labels": [] + }, + { + "section_id": "s36", + "heading": "次へ", + "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s37", + "heading": "最後", "rst_labels": [] }, { - "section_id": "s6", - "heading": "アクティブユーザタスク/アクティブグループタスク", + "section_id": "s38", + "heading": "検索結果", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowProcessElement.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", "format": "rst", - "filename": "WorkflowProcessElement.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowProcessElement--s1", - "base_name": "workflow-WorkflowProcessElement", - "output_path": "extension/workflow/workflow-WorkflowProcessElement--s1.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowProcessElement--s1/", + "filename": "03_ListSearchResult.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-03_ListSearchResult--s18", + "base_name": "biz-samples-03_ListSearchResult", + "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s18.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s18/", "section_range": { - "start_line": 0, - "end_line": 220, + "start_line": 520, + "end_line": 872, "sections": [ + "検索結果の並び替え", "", - "フローノード", - "", - "シーケンスフロー", - "", - "タスク", - "", - "XORゲートウェイ", - "", - "開始イベント", - "", - "停止イベント", - "", - "境界イベント", + "1画面にすべての検索結果を一覧表示する場合の実装方法", "", - "レーン" + "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16" + "s18", + "s19", + "s20", + "s21", + "s22", + "s23" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "workflow-WorkflowProcessElement", - "group_line_count": 220 + "part": 3, + "total_parts": 4, + "original_id": "biz-samples-03_ListSearchResult", + "group_line_count": 352 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "workflow_flow_node" + "list_search_result" ] }, { "section_id": "s2", - "heading": "フローノード", - "rst_labels": [ - "workflow_element_sequence_flows" - ] + "heading": "提供パッケージ", + "rst_labels": [] }, { "section_id": "s3", @@ -30292,10 +30592,8 @@ }, { "section_id": "s4", - "heading": "シーケンスフロー", - "rst_labels": [ - "workflow_element_task" - ] + "heading": "概要", + "rst_labels": [] }, { "section_id": "s5", @@ -30304,11 +30602,8 @@ }, { "section_id": "s6", - "heading": "タスク", - "rst_labels": [ - "workflow_element_multi_instance_task", - "workflow_element_gateway_xor" - ] + "heading": "構成", + "rst_labels": [] }, { "section_id": "s7", @@ -30317,10 +30612,8 @@ }, { "section_id": "s8", - "heading": "XORゲートウェイ", - "rst_labels": [ - "workflow_element_event_start" - ] + "heading": "使用方法", + "rst_labels": [] }, { "section_id": "s9", @@ -30329,10 +30622,8 @@ }, { "section_id": "s10", - "heading": "開始イベント", - "rst_labels": [ - "workflow_element_event_terminate" - ] + "heading": "ListSearchInfoクラス", + "rst_labels": [] }, { "section_id": "s11", @@ -30341,306 +30632,207 @@ }, { "section_id": "s12", - "heading": "停止イベント", - "rst_labels": [ - "workflow_element_boundary_event" - ] + "heading": "listSearchResultタグ", + "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "全体", "rst_labels": [] }, { "section_id": "s14", - "heading": "境界イベント", - "rst_labels": [ - "workflow_element_lane" - ] + "heading": "検索結果件数", + "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "ページング", "rst_labels": [] }, { "section_id": "s16", - "heading": "レーン", + "heading": "検索結果", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", - "format": "rst", - "filename": "WorkflowArchitecture.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowArchitecture--s1", - "base_name": "workflow-WorkflowArchitecture", - "output_path": "extension/workflow/workflow-WorkflowArchitecture--s1.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s1/", - "section_range": { - "start_line": 0, - "end_line": 208, - "sections": [ - "" - ], - "section_ids": [ - "s1" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 3, - "original_id": "workflow-WorkflowArchitecture", - "group_line_count": 208 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s17", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "テーブル定義", + "section_id": "s18", + "heading": "検索結果の並び替え", "rst_labels": [] }, { - "section_id": "s3", - "heading": "テーブル定義の例", - "rst_labels": [ - "assign_user", - "assign_group" - ] + "section_id": "s19", + "heading": "", + "rst_labels": [] }, { - "section_id": "s4", - "heading": "テーブル定義の例", + "section_id": "s20", + "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", "rst_labels": [] }, { - "section_id": "s5", + "section_id": "s21", "heading": "", "rst_labels": [] }, { - "section_id": "s6", - "heading": "コンポーネント定義", + "section_id": "s22", + "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", - "format": "rst", - "filename": "WorkflowArchitecture.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowArchitecture--s2", - "base_name": "workflow-WorkflowArchitecture", - "output_path": "extension/workflow/workflow-WorkflowArchitecture--s2.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s2/", - "section_range": { - "start_line": 208, - "end_line": 598, - "sections": [ - "テーブル定義", - "テーブル定義の例", - "テーブル定義の例", - "" - ], - "section_ids": [ - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 3, - "original_id": "workflow-WorkflowArchitecture", - "group_line_count": 390 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s23", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "テーブル定義", + "section_id": "s24", + "heading": "検索結果の一覧表示機能のデフォルト値設定", "rst_labels": [] }, { - "section_id": "s3", - "heading": "テーブル定義の例", - "rst_labels": [ - "assign_user", - "assign_group" - ] + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "タグリファレンス", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "全体", + "rst_labels": [] }, { - "section_id": "s4", - "heading": "テーブル定義の例", + "section_id": "s30", + "heading": "検索結果件数", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s31", + "heading": "ページング", "rst_labels": [] }, { - "section_id": "s6", - "heading": "コンポーネント定義", + "section_id": "s32", + "heading": "現在のページ番号", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowArchitecture.rst", - "format": "rst", - "filename": "WorkflowArchitecture.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowArchitecture--s6", - "base_name": "workflow-WorkflowArchitecture", - "output_path": "extension/workflow/workflow-WorkflowArchitecture--s6.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowArchitecture--s6/", - "section_range": { - "start_line": 598, - "end_line": 824, - "sections": [ - "コンポーネント定義" - ], - "section_ids": [ - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "workflow-WorkflowArchitecture", - "group_line_count": 226 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s33", + "heading": "最初", "rst_labels": [] }, { - "section_id": "s2", - "heading": "テーブル定義", + "section_id": "s34", + "heading": "前へ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "テーブル定義の例", - "rst_labels": [ - "assign_user", - "assign_group" - ] + "section_id": "s35", + "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "rst_labels": [] }, { - "section_id": "s4", - "heading": "テーブル定義の例", + "section_id": "s36", + "heading": "次へ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s37", + "heading": "最後", "rst_labels": [] }, { - "section_id": "s6", - "heading": "コンポーネント定義", + "section_id": "s38", + "heading": "検索結果", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowApplicationApi.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", "format": "rst", - "filename": "WorkflowApplicationApi.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowApplicationApi--s1", - "base_name": "workflow-WorkflowApplicationApi", - "output_path": "extension/workflow/workflow-WorkflowApplicationApi--s1.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowApplicationApi--s1/", + "filename": "03_ListSearchResult.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-03_ListSearchResult--s24", + "base_name": "biz-samples-03_ListSearchResult", + "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s24.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s24/", "section_range": { - "start_line": 0, - "end_line": 377, + "start_line": 872, + "end_line": 1269, "sections": [ + "検索結果の一覧表示機能のデフォルト値設定", "", - "ワークフローの開始", - "", - "インスタンスIDの取得", - "", - "開始済みワークフローの検索", - "", - "ワークフローの進行", - "", - "境界イベントによるワークフローの進行", - "", - "ユーザ/グループの割り当て", - "", - "割り当て済みユーザ/グループの変更", - "", - "フローノードがアクティブか否かの問い合わせ", - "", - "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", "", - "ワークフローが完了したか否かの問い合わせ", - "" + "タグリファレンス", + "全体", + "検索結果件数", + "ページング", + "現在のページ番号", + "最初", + "前へ", + "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "次へ", + "最後", + "検索結果" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16", - "s17", - "s18", - "s19", - "s20", - "s21" + "s24", + "s25", + "s26", + "s27", + "s28", + "s29", + "s30", + "s31", + "s32", + "s33", + "s34", + "s35", + "s36", + "s37", + "s38" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "workflow-WorkflowApplicationApi", - "group_line_count": 377 + "part": 4, + "total_parts": 4, + "original_id": "biz-samples-03_ListSearchResult", + "group_line_count": 397 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "list_search_result" + ] }, { "section_id": "s2", - "heading": "ワークフローの開始", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -30650,10 +30842,8 @@ }, { "section_id": "s4", - "heading": "インスタンスIDの取得", - "rst_labels": [ - "workflow_api_find" - ] + "heading": "概要", + "rst_labels": [] }, { "section_id": "s5", @@ -30662,10 +30852,8 @@ }, { "section_id": "s6", - "heading": "開始済みワークフローの検索", - "rst_labels": [ - "workflow_complete_task" - ] + "heading": "構成", + "rst_labels": [] }, { "section_id": "s7", @@ -30674,7 +30862,7 @@ }, { "section_id": "s8", - "heading": "ワークフローの進行", + "heading": "使用方法", "rst_labels": [] }, { @@ -30684,7 +30872,7 @@ }, { "section_id": "s10", - "heading": "境界イベントによるワークフローの進行", + "heading": "ListSearchInfoクラス", "rst_labels": [] }, { @@ -30694,27 +30882,27 @@ }, { "section_id": "s12", - "heading": "ユーザ/グループの割り当て", + "heading": "listSearchResultタグ", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "全体", "rst_labels": [] }, { "section_id": "s14", - "heading": "割り当て済みユーザ/グループの変更", + "heading": "検索結果件数", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "ページング", "rst_labels": [] }, { "section_id": "s16", - "heading": "フローノードがアクティブか否かの問い合わせ", + "heading": "検索結果", "rst_labels": [] }, { @@ -30724,7 +30912,7 @@ }, { "section_id": "s18", - "heading": "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "heading": "検索結果の並び替え", "rst_labels": [] }, { @@ -30734,7 +30922,7 @@ }, { "section_id": "s20", - "heading": "ワークフローが完了したか否かの問い合わせ", + "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", "rst_labels": [] }, { @@ -30743,252 +30931,376 @@ "rst_labels": [] }, { - "section_id": "s22", - "heading": "現在有効なワークフローバージョンの取得", + "section_id": "s22", + "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "検索結果の一覧表示機能のデフォルト値設定", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "タグリファレンス", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "全体", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "検索結果件数", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "ページング", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "現在のページ番号", "rst_labels": [] }, { - "section_id": "s23", - "heading": "", + "section_id": "s33", + "heading": "最初", "rst_labels": [] }, { - "section_id": "s24", - "heading": "FlowProceedConditionインタフェース", + "section_id": "s34", + "heading": "前へ", "rst_labels": [] }, { - "section_id": "s25", - "heading": "", + "section_id": "s35", + "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", "rst_labels": [] }, { - "section_id": "s26", - "heading": "使用例", + "section_id": "s36", + "heading": "次へ", "rst_labels": [] }, { - "section_id": "s27", - "heading": "", + "section_id": "s37", + "heading": "最後", "rst_labels": [] }, { - "section_id": "s28", - "heading": "CompletionConditionインタフェース", + "section_id": "s38", + "heading": "検索結果", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowApplicationApi.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/08_HtmlMail.rst", "format": "rst", - "filename": "WorkflowApplicationApi.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowApplicationApi--s22", - "base_name": "workflow-WorkflowApplicationApi", - "output_path": "extension/workflow/workflow-WorkflowApplicationApi--s22.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowApplicationApi--s22/", + "filename": "08_HtmlMail.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-08_HtmlMail--s1", + "base_name": "biz-samples-08_HtmlMail", + "output_path": "guide/biz-samples/biz-samples-08_HtmlMail--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-08_HtmlMail--s1/", "section_range": { - "start_line": 377, - "end_line": 612, + "start_line": 0, + "end_line": 334, "sections": [ - "現在有効なワークフローバージョンの取得", - "", - "FlowProceedConditionインタフェース", - "", - "使用例", - "", - "CompletionConditionインタフェース" + "実装済み", + "取り下げ", + "メールの形式", + "クラス図", + "データモデル", + "HTMLメールの送信", + "コンテンツの動的な切替", + "電子署名の併用", + "タグを埋めこむ" ], "section_ids": [ - "s22", - "s23", - "s24", - "s25", - "s26", - "s27", - "s28" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "workflow-WorkflowApplicationApi", - "group_line_count": 235 + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-08_HtmlMail", + "group_line_count": 334 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "実装済み", "rst_labels": [] }, { "section_id": "s2", - "heading": "ワークフローの開始", + "heading": "取り下げ", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "メールの形式", "rst_labels": [] }, { "section_id": "s4", - "heading": "インスタンスIDの取得", - "rst_labels": [ - "workflow_api_find" - ] + "heading": "クラス図", + "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "データモデル", "rst_labels": [] }, { "section_id": "s6", - "heading": "開始済みワークフローの検索", - "rst_labels": [ - "workflow_complete_task" - ] + "heading": "HTMLメールの送信", + "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "コンテンツの動的な切替", "rst_labels": [] }, { "section_id": "s8", - "heading": "ワークフローの進行", + "heading": "電子署名の併用", "rst_labels": [] }, { "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "境界イベントによるワークフローの進行", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "ユーザ/グループの割り当て", + "heading": "タグを埋めこむ", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/07_UserAgent.rst", + "format": "rst", + "filename": "07_UserAgent.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-07_UserAgent--s1", + "base_name": "biz-samples-07_UserAgent", + "output_path": "guide/biz-samples/biz-samples-07_UserAgent--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-07_UserAgent--s1/", + "section_range": { + "start_line": 0, + "end_line": 326, + "sections": [ + "インタフェース定義", + "クラス定義", + "", + "設定の記述", + "設定内容詳細", + "", + "使用例" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-07_UserAgent", + "group_line_count": 326 + }, + "section_map": [ { - "section_id": "s13", - "heading": "", + "section_id": "s1", + "heading": "インタフェース定義", "rst_labels": [] }, { - "section_id": "s14", - "heading": "割り当て済みユーザ/グループの変更", + "section_id": "s2", + "heading": "クラス定義", "rst_labels": [] }, { - "section_id": "s15", + "section_id": "s3", "heading": "", "rst_labels": [] }, { - "section_id": "s16", - "heading": "フローノードがアクティブか否かの問い合わせ", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", + "section_id": "s4", + "heading": "設定の記述", "rst_labels": [] }, { - "section_id": "s18", - "heading": "ユーザ/グループのアクティブタスクが存在するか否かの問い合わせ", + "section_id": "s5", + "heading": "設定内容詳細", "rst_labels": [] }, { - "section_id": "s19", + "section_id": "s6", "heading": "", "rst_labels": [] }, { - "section_id": "s20", - "heading": "ワークフローが完了したか否かの問い合わせ", + "section_id": "s7", + "heading": "使用例", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/04_ExtendedFormatter.rst", + "format": "rst", + "filename": "04_ExtendedFormatter.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-04_ExtendedFormatter--s1", + "base_name": "biz-samples-04_ExtendedFormatter", + "output_path": "guide/biz-samples/biz-samples-04_ExtendedFormatter--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-04_ExtendedFormatter--s1/", + "section_range": { + "start_line": 0, + "end_line": 120, + "sections": [ + "", + "提供パッケージ", + "", + "KeyValueデータフォーマッタ", + "", + "使用方法", + "KeyValueデータフォーマッタの使用方法", + "フィールドタイプ・フィールドコンバータ定義一覧", + "同一キーで複数の値を取り扱う場合" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-04_ExtendedFormatter", + "group_line_count": 120 + }, + "section_map": [ { - "section_id": "s21", + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s22", - "heading": "現在有効なワークフローバージョンの取得", + "section_id": "s2", + "heading": "提供パッケージ", "rst_labels": [] }, { - "section_id": "s23", + "section_id": "s3", "heading": "", "rst_labels": [] }, { - "section_id": "s24", - "heading": "FlowProceedConditionインタフェース", + "section_id": "s4", + "heading": "KeyValueデータフォーマッタ", "rst_labels": [] }, { - "section_id": "s25", + "section_id": "s5", "heading": "", "rst_labels": [] }, { - "section_id": "s26", - "heading": "使用例", + "section_id": "s6", + "heading": "使用方法", "rst_labels": [] }, { - "section_id": "s27", - "heading": "", + "section_id": "s7", + "heading": "KeyValueデータフォーマッタの使用方法", "rst_labels": [] }, { - "section_id": "s28", - "heading": "CompletionConditionインタフェース", + "section_id": "s8", + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "同一キーで複数の値を取り扱う場合", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/doc/09/WorkflowProcessSample.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/0401_ExtendedDataFormatter.rst", "format": "rst", - "filename": "WorkflowProcessSample.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-WorkflowProcessSample--s1", - "base_name": "workflow-WorkflowProcessSample", - "output_path": "extension/workflow/workflow-WorkflowProcessSample--s1.json", - "assets_dir": "extension/workflow/assets/workflow-WorkflowProcessSample--s1/", + "filename": "0401_ExtendedDataFormatter.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-0401_ExtendedDataFormatter--s1", + "base_name": "biz-samples-0401_ExtendedDataFormatter", + "output_path": "guide/biz-samples/biz-samples-0401_ExtendedDataFormatter--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-0401_ExtendedDataFormatter--s1/", "section_range": { "start_line": 0, - "end_line": 220, + "end_line": 207, "sections": [ - "通常経路(申請・確認・承認)", - "条件分岐", - "差戻", - "再申請", - "取消", - "却下", - "引戻", - "後閲", - "合議(回覧)", - "審議(エスカレーション)/スキップ" + "", + "概要", + "提供パッケージ", + "FormUrlEncodedデータフォーマッタの構成", + "", + "使用方法", + "FormUrlEncodedデータフォーマッタの使用方法", + "フォーマット定義ファイルの記述例", + "フィールドタイプ・フィールドコンバータ定義一覧", + "同一キーで複数の値を取り扱う場合", + "テストデータの記述方法" ], "section_ids": [ "s1", @@ -31000,132 +31312,99 @@ "s7", "s8", "s9", - "s10" + "s10", + "s11" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "workflow-WorkflowProcessSample", - "group_line_count": 220 + "original_id": "biz-samples-0401_ExtendedDataFormatter", + "group_line_count": 207 }, "section_map": [ { "section_id": "s1", - "heading": "通常経路(申請・確認・承認)", - "rst_labels": [ - "workflow_normal_process", - "workflow_conditional_branch" - ] + "heading": "", + "rst_labels": [] }, { "section_id": "s2", - "heading": "条件分岐", - "rst_labels": [ - "workflow_remand" - ] + "heading": "概要", + "rst_labels": [] }, { "section_id": "s3", - "heading": "差戻", - "rst_labels": [ - "workflow_reapply" - ] + "heading": "提供パッケージ", + "rst_labels": [] }, { "section_id": "s4", - "heading": "再申請", - "rst_labels": [ - "workflow_cancel" - ] + "heading": "FormUrlEncodedデータフォーマッタの構成", + "rst_labels": [] }, { "section_id": "s5", - "heading": "取消", - "rst_labels": [ - "workflow_reject" - ] + "heading": "", + "rst_labels": [] }, { "section_id": "s6", - "heading": "却下", - "rst_labels": [ - "workflow_pullback" - ] + "heading": "使用方法", + "rst_labels": [] }, { "section_id": "s7", - "heading": "引戻", - "rst_labels": [ - "workflow_confirm" - ] + "heading": "FormUrlEncodedデータフォーマッタの使用方法", + "rst_labels": [] }, { "section_id": "s8", - "heading": "後閲", - "rst_labels": [ - "workflow_council" - ] + "heading": "フォーマット定義ファイルの記述例", + "rst_labels": [] }, { "section_id": "s9", - "heading": "合議(回覧)", - "rst_labels": [ - "workflow_escalation" - ] + "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "rst_labels": [] }, { "section_id": "s10", - "heading": "審議(エスカレーション)/スキップ", + "heading": "同一キーで複数の値を取り扱う場合", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "テストデータの記述方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-doc", - "base_name": "workflow-doc", - "output_path": "extension/workflow/workflow-doc.json", - "assets_dir": "extension/workflow/assets/workflow-doc/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/toc.rst", - "format": "rst", - "filename": "toc.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-toc-sample_application", - "base_name": "workflow-toc-sample_application", - "output_path": "extension/workflow/workflow-toc-sample_application.json", - "assets_dir": "extension/workflow/assets/workflow-toc-sample_application/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationViewImplementation.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/05_DbFileManagement.rst", "format": "rst", - "filename": "SampleApplicationViewImplementation.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-SampleApplicationViewImplementation--s1", - "base_name": "workflow-SampleApplicationViewImplementation", - "output_path": "extension/workflow/workflow-SampleApplicationViewImplementation--s1.json", - "assets_dir": "extension/workflow/assets/workflow-SampleApplicationViewImplementation--s1/", + "filename": "05_DbFileManagement.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-05_DbFileManagement--s1", + "base_name": "biz-samples-05_DbFileManagement", + "output_path": "guide/biz-samples/biz-samples-05_DbFileManagement--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-05_DbFileManagement--s1/", "section_range": { "start_line": 0, - "end_line": 152, + "end_line": 259, "sections": [ "", - "タスクがアクティブかどうかの判定", + "概要", "", - "担当ユーザ/グループへのアクティブタスクの割り当て状況の確認", + "提供パッケージ", "", - "画面表示項目の切り替え" + "機能", + "", + "構成", + "", + "使用方法" ], "section_ids": [ "s1", @@ -31133,15 +31412,19 @@ "s3", "s4", "s5", - "s6" + "s6", + "s7", + "s8", + "s9", + "s10" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "workflow-SampleApplicationViewImplementation", - "group_line_count": 152 + "original_id": "biz-samples-05_DbFileManagement", + "group_line_count": 259 }, "section_map": [ { @@ -31151,7 +31434,7 @@ }, { "section_id": "s2", - "heading": "タスクがアクティブかどうかの判定", + "heading": "概要", "rst_labels": [] }, { @@ -31161,7 +31444,7 @@ }, { "section_id": "s4", - "heading": "担当ユーザ/グループへのアクティブタスクの割り当て状況の確認", + "heading": "提供パッケージ", "rst_labels": [] }, { @@ -31171,78 +31454,55 @@ }, { "section_id": "s6", - "heading": "画面表示項目の切り替え", + "heading": "機能", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationExtension.rst", - "format": "rst", - "filename": "SampleApplicationExtension.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-SampleApplicationExtension--s1", - "base_name": "workflow-SampleApplicationExtension", - "output_path": "extension/workflow/workflow-SampleApplicationExtension--s1.json", - "assets_dir": "extension/workflow/assets/workflow-SampleApplicationExtension--s1/", - "section_range": { - "start_line": 0, - "end_line": 55, - "sections": [ - "", - "進行先ノードの判定制御ロジックの実装" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "workflow-SampleApplicationExtension", - "group_line_count": 55 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s7", "heading": "", - "rst_labels": [ - "customize_flow_proceed_condition" - ] + "rst_labels": [] }, { - "section_id": "s2", - "heading": "進行先ノードの判定制御ロジックの実装", + "section_id": "s8", + "heading": "構成", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationDesign.rst", + "source_path": ".lw/nab-official/v1.4/biz_sample/doc/01/0101_PBKDF2PasswordEncryptor.rst", "format": "rst", - "filename": "SampleApplicationDesign.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-SampleApplicationDesign--s1", - "base_name": "workflow-SampleApplicationDesign", - "output_path": "extension/workflow/workflow-SampleApplicationDesign--s1.json", - "assets_dir": "extension/workflow/assets/workflow-SampleApplicationDesign--s1/", + "filename": "0101_PBKDF2PasswordEncryptor.rst", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-0101_PBKDF2PasswordEncryptor--s1", + "base_name": "biz-samples-0101_PBKDF2PasswordEncryptor", + "output_path": "guide/biz-samples/biz-samples-0101_PBKDF2PasswordEncryptor--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-0101_PBKDF2PasswordEncryptor--s1/", "section_range": { "start_line": 0, - "end_line": 99, + "end_line": 178, "sections": [ "", - "ワークフロー定義", + "提供パッケージ", "", - "画面遷移", + "概要", "", - "ワークフローライブラリに関連する機能", - "ワークフローに付随する情報の保持", - "ワークフローにおける処理履歴の保持", - "タスクにアサインするユーザ/グループや権限の管理" + "要求", + "", + "パスワード暗号化機能の詳細", + "", + "設定方法" ], "section_ids": [ "s1", @@ -31253,29 +31513,29 @@ "s6", "s7", "s8", - "s9" + "s9", + "s10" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "workflow-SampleApplicationDesign", - "group_line_count": 99 + "original_id": "biz-samples-0101_PBKDF2PasswordEncryptor", + "group_line_count": 178 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "authentication_pbkdf2" + ] }, { "section_id": "s2", - "heading": "ワークフロー定義", - "rst_labels": [ - "trans_expence_appliance_definition", - "loan_appliance_definition" - ] + "heading": "提供パッケージ", + "rst_labels": [] }, { "section_id": "s3", @@ -31284,7 +31544,7 @@ }, { "section_id": "s4", - "heading": "画面遷移", + "heading": "概要", "rst_labels": [] }, { @@ -31294,50 +31554,80 @@ }, { "section_id": "s6", - "heading": "ワークフローライブラリに関連する機能", + "heading": "要求", "rst_labels": [] }, { "section_id": "s7", - "heading": "ワークフローに付随する情報の保持", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "ワークフローにおける処理履歴の保持", + "heading": "パスワード暗号化機能の詳細", "rst_labels": [] }, { "section_id": "s9", - "heading": "タスクにアサインするユーザ/グループや権限の管理", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "設定方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/sample_application/doc/00/SampleApplicationImplementation.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/known_issues.rst", "format": "rst", - "filename": "SampleApplicationImplementation.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-SampleApplicationImplementation--s1", - "base_name": "workflow-SampleApplicationImplementation", - "output_path": "extension/workflow/workflow-SampleApplicationImplementation--s1.json", - "assets_dir": "extension/workflow/assets/workflow-SampleApplicationImplementation--s1/", + "filename": "known_issues.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-known_issues", + "base_name": "ui-framework-known_issues", + "output_path": "component/ui-framework/ui-framework-known_issues.json", + "assets_dir": "component/ui-framework/assets/ui-framework-known_issues/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-doc", + "base_name": "ui-framework-doc", + "output_path": "component/ui-framework/ui-framework-doc.json", + "assets_dir": "component/ui-framework/assets/ui-framework-doc/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", + "format": "rst", + "filename": "plugin_build.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-plugin_build--s1", + "base_name": "ui-framework-plugin_build", + "output_path": "component/ui-framework/ui-framework-plugin_build--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s1/", "section_range": { "start_line": 0, - "end_line": 325, + "end_line": 274, "sections": [ "", - "ワークフローの開始", - "", - "ワークフローの進行", + "概要", "", - "境界イベントの実行", + "想定されるプロジェクト構成ごとの設定例", + "デプロイ対象プロジェクトが1つの場合", + "デプロイ対象プロジェクト複数の場合(プラグインは共通)", + "デプロイ対象プロジェクト複数の場合(プラグインも個別)", "", - "ワークフローの検索", + "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", "", - "排他制御についての注意事項" + "設定ファイル" ], "section_ids": [ "s1", @@ -31349,29 +31639,28 @@ "s7", "s8", "s9", - "s10" + "s10", + "s11" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "workflow-SampleApplicationImplementation", - "group_line_count": 325 + "total_parts": 3, + "original_id": "ui-framework-plugin_build", + "group_line_count": 274 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "start_workflow" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "ワークフローの開始", + "heading": "概要", "rst_labels": [ - "complete_task" + "project-structure" ] }, { @@ -31381,98 +31670,181 @@ }, { "section_id": "s4", - "heading": "ワークフローの進行", - "rst_labels": [ - "trigger_event" - ] + "heading": "想定されるプロジェクト構成ごとの設定例", + "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "デプロイ対象プロジェクトが1つの場合", "rst_labels": [] }, { "section_id": "s6", - "heading": "境界イベントの実行", + "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", "rst_labels": [] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] + "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", + "rst_labels": [ + "config-command-detail" + ] }, { "section_id": "s8", - "heading": "ワークフローの検索", + "heading": "", "rst_labels": [] }, { "section_id": "s9", + "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", + "rst_labels": [ + "config-file" + ] + }, + { + "section_id": "s10", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "設定ファイル", + "rst_labels": [ + "pjconf_json" + ] + }, + { + "section_id": "s12", + "heading": "ビルドコマンド用設定ファイル", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "lessインポート定義ファイル", + "rst_labels": [ + "generate-file" + ] + }, + { + "section_id": "s14", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "ファイルの自動生成", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "CSSの自動生成", + "rst_labels": [ + "generate_javascript" + ] + }, + { + "section_id": "s17", + "heading": "JavaScriptの自動生成", + "rst_labels": [ + "build-file" + ] + }, + { + "section_id": "s18", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "プラグイン、外部ライブラリの展開", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "プラグインの展開", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "外部ライブラリの展開", + "rst_labels": [ + "build-command" + ] + }, + { + "section_id": "s22", "heading": "", "rst_labels": [] }, { - "section_id": "s10", - "heading": "排他制御についての注意事項", + "section_id": "s23", + "heading": "ビルドコマンド", + "rst_labels": [ + "install" + ] + }, + { + "section_id": "s24", + "heading": "インストールコマンド", + "rst_labels": [ + "ui_build" + ] + }, + { + "section_id": "s25", + "heading": "UIビルドコマンド", + "rst_labels": [ + "ui_genless" + ] + }, + { + "section_id": "s26", + "heading": "lessインポート定義雛形生成コマンド", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "ローカル動作確認用サーバ起動コマンド", + "rst_labels": [ + "ui_demo" + ] + }, + { + "section_id": "s28", + "heading": "サーバ動作確認用サーバ起動コマンド", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/workflow/tool/doc/index.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", "format": "rst", - "filename": "index.rst", - "type": "extension", - "category": "workflow", - "id": "workflow-doc-tool--s1", - "base_name": "workflow-doc-tool", - "output_path": "extension/workflow/workflow-doc-tool--s1.json", - "assets_dir": "extension/workflow/assets/workflow-doc-tool--s1/", + "filename": "plugin_build.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-plugin_build--s12", + "base_name": "ui-framework-plugin_build", + "output_path": "component/ui-framework/ui-framework-plugin_build--s12.json", + "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s12/", "section_range": { - "start_line": 0, - "end_line": 383, + "start_line": 274, + "end_line": 658, "sections": [ + "ビルドコマンド用設定ファイル", + "lessインポート定義ファイル", "", - "概要", - "", - "前提", - "", - "ツール配置場所", - "", - "利用の準備", - "", - "利用手順", - "精査エラー発生時の動作", + "ファイルの自動生成", + "CSSの自動生成", + "JavaScriptの自動生成", "", - "仕様", - "ワークフロー定義", - "レーン", - "フローノード", - "シーケンスフロー", - "境界イベントトリガー", - "境界イベント", - "タスク", - "イベント", - "ゲートウェイ", - "構文精査", - "ワークフローライブラリの制約に関する精査", + "プラグイン、外部ライブラリの展開", + "プラグインの展開", + "外部ライブラリの展開", "", - "プロジェクト固有の設定について", - "省略記法について", - "省略記法の追加・変更" + "ビルドコマンド" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", "s12", "s13", "s14", @@ -31484,20 +31856,15 @@ "s20", "s21", "s22", - "s23", - "s24", - "s25", - "s26", - "s27", - "s28" + "s23" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "workflow-doc-tool", - "group_line_count": 383 + "part": 2, + "total_parts": 3, + "original_id": "ui-framework-plugin_build", + "group_line_count": 384 }, "section_map": [ { @@ -31508,7 +31875,9 @@ { "section_id": "s2", "heading": "概要", - "rst_labels": [] + "rst_labels": [ + "project-structure" + ] }, { "section_id": "s3", @@ -31517,247 +31886,187 @@ }, { "section_id": "s4", - "heading": "前提", + "heading": "想定されるプロジェクト構成ごとの設定例", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "デプロイ対象プロジェクトが1つの場合", "rst_labels": [] }, { "section_id": "s6", - "heading": "ツール配置場所", + "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", "rst_labels": [] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] + "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", + "rst_labels": [ + "config-command-detail" + ] }, { "section_id": "s8", - "heading": "利用の準備", + "heading": "", "rst_labels": [] }, { "section_id": "s9", - "heading": "", - "rst_labels": [] + "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", + "rst_labels": [ + "config-file" + ] }, { "section_id": "s10", - "heading": "利用手順", + "heading": "", "rst_labels": [] }, { "section_id": "s11", - "heading": "精査エラー発生時の動作", - "rst_labels": [] + "heading": "設定ファイル", + "rst_labels": [ + "pjconf_json" + ] }, { "section_id": "s12", - "heading": "", + "heading": "ビルドコマンド用設定ファイル", "rst_labels": [] }, { "section_id": "s13", - "heading": "仕様", - "rst_labels": [] + "heading": "lessインポート定義ファイル", + "rst_labels": [ + "generate-file" + ] }, { "section_id": "s14", - "heading": "ワークフロー定義", + "heading": "", "rst_labels": [] }, { "section_id": "s15", - "heading": "レーン", + "heading": "ファイルの自動生成", "rst_labels": [] }, { "section_id": "s16", - "heading": "フローノード", - "rst_labels": [] + "heading": "CSSの自動生成", + "rst_labels": [ + "generate_javascript" + ] }, { "section_id": "s17", - "heading": "シーケンスフロー", - "rst_labels": [] + "heading": "JavaScriptの自動生成", + "rst_labels": [ + "build-file" + ] }, { "section_id": "s18", - "heading": "境界イベントトリガー", + "heading": "", "rst_labels": [] }, { "section_id": "s19", - "heading": "境界イベント", + "heading": "プラグイン、外部ライブラリの展開", "rst_labels": [] }, { "section_id": "s20", - "heading": "タスク", + "heading": "プラグインの展開", "rst_labels": [] }, { "section_id": "s21", - "heading": "イベント", - "rst_labels": [] + "heading": "外部ライブラリの展開", + "rst_labels": [ + "build-command" + ] }, { "section_id": "s22", - "heading": "ゲートウェイ", + "heading": "", "rst_labels": [] }, { "section_id": "s23", - "heading": "構文精査", - "rst_labels": [] + "heading": "ビルドコマンド", + "rst_labels": [ + "install" + ] }, { "section_id": "s24", - "heading": "ワークフローライブラリの制約に関する精査", - "rst_labels": [] + "heading": "インストールコマンド", + "rst_labels": [ + "ui_build" + ] }, { "section_id": "s25", - "heading": "", - "rst_labels": [] + "heading": "UIビルドコマンド", + "rst_labels": [ + "ui_genless" + ] }, { "section_id": "s26", - "heading": "プロジェクト固有の設定について", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "省略記法について", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "省略記法の追加・変更", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/0402_ExtendedFieldType.rst", - "format": "rst", - "filename": "0402_ExtendedFieldType.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-0402_ExtendedFieldType--s1", - "base_name": "biz-samples-0402_ExtendedFieldType", - "output_path": "guide/biz-samples/biz-samples-0402_ExtendedFieldType--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-0402_ExtendedFieldType--s1/", - "section_range": { - "start_line": 0, - "end_line": 136, - "sections": [ - "", - "概要", - "提供パッケージ", - "フィールドタイプの構成", - "フィールドタイプの使用方法", - "フィールドタイプ・フィールドコンバータ定義一覧" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "biz-samples-0402_ExtendedFieldType", - "group_line_count": 136 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "提供パッケージ", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "フィールドタイプの構成", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "フィールドタイプの使用方法", + "heading": "lessインポート定義雛形生成コマンド", "rst_labels": [] }, { - "section_id": "s6", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "section_id": "s27", + "heading": "ローカル動作確認用サーバ起動コマンド", + "rst_labels": [ + "ui_demo" + ] + }, + { + "section_id": "s28", + "heading": "サーバ動作確認用サーバ起動コマンド", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/02_ExtendedValidation.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", "format": "rst", - "filename": "02_ExtendedValidation.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-02_ExtendedValidation--s1", - "base_name": "biz-samples-02_ExtendedValidation", - "output_path": "guide/biz-samples/biz-samples-02_ExtendedValidation--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-02_ExtendedValidation--s1/", + "filename": "plugin_build.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-plugin_build--s24", + "base_name": "ui-framework-plugin_build", + "output_path": "component/ui-framework/ui-framework-plugin_build--s24.json", + "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s24/", "section_range": { - "start_line": 0, - "end_line": 311, + "start_line": 658, + "end_line": 814, "sections": [ - "", - "提供パッケージ", - "", - "メールアドレスバリデーション", - "", - "日本電話番号バリデーション", - "精査仕様", - "精査仕様", - "実装例", - "", - "コード値精査" + "インストールコマンド", + "UIビルドコマンド", + "lessインポート定義雛形生成コマンド", + "ローカル動作確認用サーバ起動コマンド", + "サーバ動作確認用サーバ起動コマンド" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11" + "s24", + "s25", + "s26", + "s27", + "s28" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "biz-samples-02_ExtendedValidation", - "group_line_count": 311 + "part": 3, + "total_parts": 3, + "original_id": "ui-framework-plugin_build", + "group_line_count": 156 }, "section_map": [ { @@ -31767,8 +32076,10 @@ }, { "section_id": "s2", - "heading": "提供パッケージ", - "rst_labels": [] + "heading": "概要", + "rst_labels": [ + "project-structure" + ] }, { "section_id": "s3", @@ -31777,33 +32088,37 @@ }, { "section_id": "s4", - "heading": "メールアドレスバリデーション", + "heading": "想定されるプロジェクト構成ごとの設定例", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "デプロイ対象プロジェクトが1つの場合", "rst_labels": [] }, { "section_id": "s6", - "heading": "日本電話番号バリデーション", + "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", "rst_labels": [] }, { "section_id": "s7", - "heading": "精査仕様", - "rst_labels": [] + "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", + "rst_labels": [ + "config-command-detail" + ] }, { "section_id": "s8", - "heading": "精査仕様", + "heading": "", "rst_labels": [] }, { "section_id": "s9", - "heading": "実装例", - "rst_labels": [] + "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", + "rst_labels": [ + "config-file" + ] }, { "section_id": "s10", @@ -31812,137 +32127,224 @@ }, { "section_id": "s11", - "heading": "コード値精査", + "heading": "設定ファイル", + "rst_labels": [ + "pjconf_json" + ] + }, + { + "section_id": "s12", + "heading": "ビルドコマンド用設定ファイル", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-doc", - "base_name": "biz-samples-doc", - "output_path": "guide/biz-samples/biz-samples-doc.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-doc/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/useragent_sample.rst", - "format": "rst", - "filename": "useragent_sample.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-useragent_sample--s1", - "base_name": "biz-samples-useragent_sample", - "output_path": "guide/biz-samples/biz-samples-useragent_sample--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-useragent_sample--s1/", - "section_range": { - "start_line": 0, - "end_line": 99, - "sections": [ - "", - "UserAgent情報取得機能設定サンプル" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "biz-samples-useragent_sample", - "group_line_count": 99 - }, - "section_map": [ + }, { - "section_id": "s1", + "section_id": "s13", + "heading": "lessインポート定義ファイル", + "rst_labels": [ + "generate-file" + ] + }, + { + "section_id": "s14", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "UserAgent情報取得機能設定サンプル", + "section_id": "s15", + "heading": "ファイルの自動生成", "rst_labels": [] }, { - "section_id": "s3", - "heading": "各種ユーザエージェント値から取得できる値の例", + "section_id": "s16", + "heading": "CSSの自動生成", + "rst_labels": [ + "generate_javascript" + ] + }, + { + "section_id": "s17", + "heading": "JavaScriptの自動生成", + "rst_labels": [ + "build-file" + ] + }, + { + "section_id": "s18", + "heading": "", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/useragent_sample.rst", - "format": "rst", - "filename": "useragent_sample.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-useragent_sample--s3", - "base_name": "biz-samples-useragent_sample", - "output_path": "guide/biz-samples/biz-samples-useragent_sample--s3.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-useragent_sample--s3/", + }, + { + "section_id": "s19", + "heading": "プラグイン、外部ライブラリの展開", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "プラグインの展開", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "外部ライブラリの展開", + "rst_labels": [ + "build-command" + ] + }, + { + "section_id": "s22", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "ビルドコマンド", + "rst_labels": [ + "install" + ] + }, + { + "section_id": "s24", + "heading": "インストールコマンド", + "rst_labels": [ + "ui_build" + ] + }, + { + "section_id": "s25", + "heading": "UIビルドコマンド", + "rst_labels": [ + "ui_genless" + ] + }, + { + "section_id": "s26", + "heading": "lessインポート定義雛形生成コマンド", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "ローカル動作確認用サーバ起動コマンド", + "rst_labels": [ + "ui_demo" + ] + }, + { + "section_id": "s28", + "heading": "サーバ動作確認用サーバ起動コマンド", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_js_framework.rst", + "format": "rst", + "filename": "reference_js_framework.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-reference_js_framework--s1", + "base_name": "ui-framework-reference_js_framework", + "output_path": "component/ui-framework/ui-framework-reference_js_framework--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-reference_js_framework--s1/", "section_range": { - "start_line": 99, - "end_line": 445, + "start_line": 0, + "end_line": 28, "sections": [ - "各種ユーザエージェント値から取得できる値の例" + "UI部品", + "ユーティリティ" ], "section_ids": [ - "s3" + "s1", + "s2" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "biz-samples-useragent_sample", - "group_line_count": 346 + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-reference_js_framework", + "group_line_count": 28 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "UI部品", "rst_labels": [] }, { "section_id": "s2", - "heading": "UserAgent情報取得機能設定サンプル", + "heading": "ユーティリティ", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/related_documents.rst", + "format": "rst", + "filename": "related_documents.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-related_documents", + "base_name": "ui-framework-related_documents", + "output_path": "component/ui-framework/ui-framework-related_documents.json", + "assets_dir": "component/ui-framework/assets/ui-framework-related_documents/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/about_this_book.rst", + "format": "rst", + "filename": "about_this_book.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-about_this_book", + "base_name": "ui-framework-about_this_book", + "output_path": "component/ui-framework/ui-framework-about_this_book.json", + "assets_dir": "component/ui-framework/assets/ui-framework-about_this_book/", + "section_map": [ { - "section_id": "s3", - "heading": "各種ユーザエージェント値から取得できる値の例", + "section_id": "s1", + "heading": "本書の内容", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/06_Captcha.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/book_layout.rst", "format": "rst", - "filename": "06_Captcha.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-06_Captcha--s1", - "base_name": "biz-samples-06_Captcha", - "output_path": "guide/biz-samples/biz-samples-06_Captcha--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-06_Captcha--s1/", + "filename": "book_layout.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-book_layout", + "base_name": "ui-framework-book_layout", + "output_path": "component/ui-framework/ui-framework-book_layout.json", + "assets_dir": "component/ui-framework/assets/ui-framework-book_layout/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/testing.rst", + "format": "rst", + "filename": "testing.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-testing--s1", + "base_name": "ui-framework-testing", + "output_path": "component/ui-framework/ui-framework-testing--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-testing--s1/", "section_range": { "start_line": 0, - "end_line": 359, + "end_line": 170, "sections": [ "", - "提供パッケージ", - "", - "概要", + "テスト方針", "", - "構成", + "テスト実施環境", "", - "使用方法" + "実施テスト内容", + "UI部品ウィジェット機能テスト", + "UI部品ウィジェット性能テスト", + "UI部品ウィジェット組み合わせテスト", + "結合テスト", + "ローカル表示テスト", + "表示方向切替えテスト" ], "section_ids": [ "s1", @@ -31952,27 +32354,29 @@ "s5", "s6", "s7", - "s8" + "s8", + "s9", + "s10", + "s11", + "s12" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-06_Captcha", - "group_line_count": 359 + "original_id": "ui-framework-testing", + "group_line_count": 170 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "captcha" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "提供パッケージ", + "heading": "テスト方針", "rst_labels": [] }, { @@ -31982,7 +32386,7 @@ }, { "section_id": "s4", - "heading": "概要", + "heading": "テスト実施環境", "rst_labels": [] }, { @@ -31992,73 +32396,95 @@ }, { "section_id": "s6", - "heading": "構成", + "heading": "実施テスト内容", "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "UI部品ウィジェット機能テスト", "rst_labels": [] }, { "section_id": "s8", - "heading": "使用方法", + "heading": "UI部品ウィジェット性能テスト", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "UI部品ウィジェット組み合わせテスト", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "結合テスト", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "ローカル表示テスト", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "表示方向切替えテスト", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/01_Authentication.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/structure/directory_layout.rst", "format": "rst", - "filename": "01_Authentication.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-01_Authentication--s1", - "base_name": "biz-samples-01_Authentication", - "output_path": "guide/biz-samples/biz-samples-01_Authentication--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-01_Authentication--s1/", + "filename": "directory_layout.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-directory_layout", + "base_name": "ui-framework-directory_layout", + "output_path": "component/ui-framework/ui-framework-directory_layout.json", + "assets_dir": "component/ui-framework/assets/ui-framework-directory_layout/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/structure/plugins.rst", + "format": "rst", + "filename": "plugins.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-plugins--s1", + "base_name": "ui-framework-plugins", + "output_path": "component/ui-framework/ui-framework-plugins--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-plugins--s1/", "section_range": { "start_line": 0, - "end_line": 323, + "end_line": 147, "sections": [ "", - "提供パッケージ", - "", - "概要", - "", - "構成", + "UIプラグインの構造", "", - "使用方法" + "UIプラグインのバージョンについて" ], "section_ids": [ "s1", "s2", "s3", - "s4", - "s5", - "s6", - "s7", - "s8" + "s4" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-01_Authentication", - "group_line_count": 323 + "original_id": "ui-framework-plugins", + "group_line_count": 147 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "authentication" - ] + "rst_labels": [] }, { "section_id": "s2", - "heading": "提供パッケージ", + "heading": "UIプラグインの構造", "rst_labels": [] }, { @@ -32068,60 +32494,64 @@ }, { "section_id": "s4", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "構成", + "heading": "UIプラグインのバージョンについて", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_plugin/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-reference_ui_plugin", + "base_name": "ui-framework-reference_ui_plugin", + "output_path": "component/ui-framework/ui-framework-reference_ui_plugin.json", + "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_plugin/", + "section_map": [ { - "section_id": "s7", + "section_id": "s1", "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "使用方法", - "rst_labels": [] + "rst_labels": [ + "nablarch-device-fix" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", - "format": "rst", - "filename": "03_ListSearchResult.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-03_ListSearchResult--s1", - "base_name": "biz-samples-03_ListSearchResult", - "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s1/", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_standard/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-reference_ui_standard--s1", + "base_name": "ui-framework-reference_ui_standard", + "output_path": "component/ui-framework/ui-framework-reference_ui_standard--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_standard--s1/", "section_range": { "start_line": 0, - "end_line": 266, + "end_line": 395, "sections": [ "", - "提供パッケージ", + "UI標準1.1. 対応する端末とブラウザ", "", - "概要", + "UI標準1.2. 使用技術", "", - "構成", + "UI標準2. 画面構成", "", - "使用方法", + "UI標準2.1. 端末の画面サイズと表示モード", "", - "ListSearchInfoクラス", + "UI標準2.2. ワイド表示モードの画面構成", "", - "listSearchResultタグ", - "全体", - "検索結果件数", - "ページング" + "UI標準2.3. コンパクト表示モードの画面構成", + "", + "UI標準2.4. ナロー表示モードの画面構成", + "", + "UI標準2.5.画面内の入出力項目に関する共通仕様", + "", + "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", + "" ], "section_ids": [ "s1", @@ -32138,28 +32568,34 @@ "s12", "s13", "s14", - "s15" + "s15", + "s16", + "s17", + "s18", + "s19" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 4, - "original_id": "biz-samples-03_ListSearchResult", - "group_line_count": 266 + "total_parts": 2, + "original_id": "ui-framework-reference_ui_standard", + "group_line_count": 395 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "list_search_result" + "ui_standard_1_1" ] }, { "section_id": "s2", - "heading": "提供パッケージ", - "rst_labels": [] + "heading": "UI標準1.1. 対応する端末とブラウザ", + "rst_labels": [ + "ui_standard_1_2" + ] }, { "section_id": "s3", @@ -32168,8 +32604,10 @@ }, { "section_id": "s4", - "heading": "概要", - "rst_labels": [] + "heading": "UI標準1.2. 使用技術", + "rst_labels": [ + "ui_standard_2" + ] }, { "section_id": "s5", @@ -32178,8 +32616,10 @@ }, { "section_id": "s6", - "heading": "構成", - "rst_labels": [] + "heading": "UI標準2. 画面構成", + "rst_labels": [ + "ui_standard_2_1" + ] }, { "section_id": "s7", @@ -32188,7 +32628,7 @@ }, { "section_id": "s8", - "heading": "使用方法", + "heading": "UI標準2.1. 端末の画面サイズと表示モード", "rst_labels": [] }, { @@ -32198,7 +32638,7 @@ }, { "section_id": "s10", - "heading": "ListSearchInfoクラス", + "heading": "UI標準2.2. ワイド表示モードの画面構成", "rst_labels": [] }, { @@ -32208,27 +32648,27 @@ }, { "section_id": "s12", - "heading": "listSearchResultタグ", + "heading": "UI標準2.3. コンパクト表示モードの画面構成", "rst_labels": [] }, { "section_id": "s13", - "heading": "全体", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "検索結果件数", + "heading": "UI標準2.4. ナロー表示モードの画面構成", "rst_labels": [] }, { "section_id": "s15", - "heading": "ページング", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "検索結果", + "heading": "UI標準2.5.画面内の入出力項目に関する共通仕様", "rst_labels": [] }, { @@ -32238,7 +32678,7 @@ }, { "section_id": "s18", - "heading": "検索結果の並び替え", + "heading": "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", "rst_labels": [] }, { @@ -32248,7 +32688,7 @@ }, { "section_id": "s20", - "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", + "heading": "UI標準2.11. 共通エラー画面の構成", "rst_labels": [] }, { @@ -32258,7 +32698,7 @@ }, { "section_id": "s22", - "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "heading": "UI標準3. UI部品 (UI部品カタログ)", "rst_labels": [] }, { @@ -32268,122 +32708,60 @@ }, { "section_id": "s24", - "heading": "検索結果の一覧表示機能のデフォルト値設定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "タグリファレンス", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "全体", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "検索結果件数", - "rst_labels": [] - }, - { - "section_id": "s31", - "heading": "ページング", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "現在のページ番号", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "最初", - "rst_labels": [] - }, - { - "section_id": "s34", - "heading": "前へ", - "rst_labels": [] - }, - { - "section_id": "s35", - "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", - "rst_labels": [] - }, - { - "section_id": "s36", - "heading": "次へ", - "rst_labels": [] - }, - { - "section_id": "s37", - "heading": "最後", - "rst_labels": [] - }, - { - "section_id": "s38", - "heading": "検索結果", + "heading": "開閉可能領域", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_standard/index.rst", "format": "rst", - "filename": "03_ListSearchResult.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-03_ListSearchResult--s16", - "base_name": "biz-samples-03_ListSearchResult", - "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s16.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s16/", + "filename": "index.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-reference_ui_standard--s20", + "base_name": "ui-framework-reference_ui_standard", + "output_path": "component/ui-framework/ui-framework-reference_ui_standard--s20.json", + "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_standard--s20/", "section_range": { - "start_line": 266, - "end_line": 520, + "start_line": 395, + "end_line": 496, "sections": [ - "検索結果", - "" + "UI標準2.11. 共通エラー画面の構成", + "", + "UI標準3. UI部品 (UI部品カタログ)", + "", + "開閉可能領域" ], "section_ids": [ - "s16", - "s17" + "s20", + "s21", + "s22", + "s23", + "s24" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 4, - "original_id": "biz-samples-03_ListSearchResult", - "group_line_count": 254 + "total_parts": 2, + "original_id": "ui-framework-reference_ui_standard", + "group_line_count": 101 }, "section_map": [ { "section_id": "s1", "heading": "", "rst_labels": [ - "list_search_result" + "ui_standard_1_1" ] }, { "section_id": "s2", - "heading": "提供パッケージ", - "rst_labels": [] + "heading": "UI標準1.1. 対応する端末とブラウザ", + "rst_labels": [ + "ui_standard_1_2" + ] }, { "section_id": "s3", @@ -32392,8 +32770,10 @@ }, { "section_id": "s4", - "heading": "概要", - "rst_labels": [] + "heading": "UI標準1.2. 使用技術", + "rst_labels": [ + "ui_standard_2" + ] }, { "section_id": "s5", @@ -32402,8 +32782,10 @@ }, { "section_id": "s6", - "heading": "構成", - "rst_labels": [] + "heading": "UI標準2. 画面構成", + "rst_labels": [ + "ui_standard_2_1" + ] }, { "section_id": "s7", @@ -32412,7 +32794,7 @@ }, { "section_id": "s8", - "heading": "使用方法", + "heading": "UI標準2.1. 端末の画面サイズと表示モード", "rst_labels": [] }, { @@ -32422,7 +32804,7 @@ }, { "section_id": "s10", - "heading": "ListSearchInfoクラス", + "heading": "UI標準2.2. ワイド表示モードの画面構成", "rst_labels": [] }, { @@ -32432,27 +32814,27 @@ }, { "section_id": "s12", - "heading": "listSearchResultタグ", + "heading": "UI標準2.3. コンパクト表示モードの画面構成", "rst_labels": [] }, { "section_id": "s13", - "heading": "全体", + "heading": "", "rst_labels": [] }, { "section_id": "s14", - "heading": "検索結果件数", + "heading": "UI標準2.4. ナロー表示モードの画面構成", "rst_labels": [] }, { "section_id": "s15", - "heading": "ページング", + "heading": "", "rst_labels": [] }, { "section_id": "s16", - "heading": "検索結果", + "heading": "UI標準2.5.画面内の入出力項目に関する共通仕様", "rst_labels": [] }, { @@ -32462,7 +32844,7 @@ }, { "section_id": "s18", - "heading": "検索結果の並び替え", + "heading": "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", "rst_labels": [] }, { @@ -32472,7 +32854,7 @@ }, { "section_id": "s20", - "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", + "heading": "UI標準2.11. 共通エラー画面の構成", "rst_labels": [] }, { @@ -32482,7 +32864,7 @@ }, { "section_id": "s22", - "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "heading": "UI標準3. UI部品 (UI部品カタログ)", "rst_labels": [] }, { @@ -32491,587 +32873,1154 @@ "rst_labels": [] }, { - "section_id": "s24", - "heading": "検索結果の一覧表示機能のデフォルト値設定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "タグリファレンス", + "section_id": "s24", + "heading": "開閉可能領域", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_title.rst", + "format": "rst", + "filename": "box_title.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-box_title", + "base_name": "ui-framework-box_title", + "output_path": "component/ui-framework/ui-framework-box_title.json", + "assets_dir": "component/ui-framework/assets/ui-framework-box_title/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_label.rst", + "format": "rst", + "filename": "column_label.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-column_label", + "base_name": "ui-framework-column_label", + "output_path": "component/ui-framework/ui-framework-column_label.json", + "assets_dir": "component/ui-framework/assets/ui-framework-column_label/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_block.rst", + "format": "rst", + "filename": "field_label_block.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_label_block", + "base_name": "ui-framework-field_label_block", + "output_path": "component/ui-framework/ui-framework-field_label_block.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_label_block/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_condition.rst", + "format": "rst", + "filename": "spec_condition.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_condition", + "base_name": "ui-framework-spec_condition", + "output_path": "component/ui-framework/ui-framework-spec_condition.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_condition/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_checkbox.rst", + "format": "rst", + "filename": "column_checkbox.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-column_checkbox", + "base_name": "ui-framework-column_checkbox", + "output_path": "component/ui-framework/ui-framework-column_checkbox.json", + "assets_dir": "component/ui-framework/assets/ui-framework-column_checkbox/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_checkbox.rst", + "format": "rst", + "filename": "field_checkbox.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_checkbox", + "base_name": "ui-framework-field_checkbox", + "output_path": "component/ui-framework/ui-framework-field_checkbox.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_checkbox/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/button_submit.rst", + "format": "rst", + "filename": "button_submit.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-button_submit--s1", + "base_name": "ui-framework-button_submit", + "output_path": "component/ui-framework/ui-framework-button_submit--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-button_submit--s1/", + "section_range": { + "start_line": 0, + "end_line": 185, + "sections": [ + "**共通属性**", + "**共通属性(ポップアップを除く)**", + "**ポップアップ・汎用ボタンのみの属性**", + "**ポップアップボタンのみの属性**", + "**特定ボタン固有の属性**" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-button_submit", + "group_line_count": 185 + }, + "section_map": [ { - "section_id": "s29", - "heading": "全体", + "section_id": "s1", + "heading": "**共通属性**", "rst_labels": [] }, { - "section_id": "s30", - "heading": "検索結果件数", + "section_id": "s2", + "heading": "**共通属性(ポップアップを除く)**", "rst_labels": [] }, { - "section_id": "s31", - "heading": "ページング", + "section_id": "s3", + "heading": "**ポップアップ・汎用ボタンのみの属性**", "rst_labels": [] }, { - "section_id": "s32", - "heading": "現在のページ番号", + "section_id": "s4", + "heading": "**ポップアップボタンのみの属性**", "rst_labels": [] }, { - "section_id": "s33", - "heading": "最初", + "section_id": "s5", + "heading": "**特定ボタン固有の属性**", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_send_request.rst", + "format": "rst", + "filename": "event_send_request.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_send_request", + "base_name": "ui-framework-event_send_request", + "output_path": "component/ui-framework/ui-framework-event_send_request.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_send_request/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/index.rst", + "format": "rst", + "filename": "index.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-reference_jsp_widgets", + "base_name": "ui-framework-reference_jsp_widgets", + "output_path": "component/ui-framework/ui-framework-reference_jsp_widgets.json", + "assets_dir": "component/ui-framework/assets/ui-framework-reference_jsp_widgets/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_alert.rst", + "format": "rst", + "filename": "event_alert.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_alert", + "base_name": "ui-framework-event_alert", + "output_path": "component/ui-framework/ui-framework-event_alert.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_alert/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_id_value.rst", + "format": "rst", + "filename": "field_label_id_value.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_label_id_value", + "base_name": "ui-framework-field_label_id_value", + "output_path": "component/ui-framework/ui-framework-field_label_id_value.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_label_id_value/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_radio.rst", + "format": "rst", + "filename": "column_radio.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-column_radio", + "base_name": "ui-framework-column_radio", + "output_path": "component/ui-framework/ui-framework-column_radio.json", + "assets_dir": "component/ui-framework/assets/ui-framework-column_radio/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label.rst", + "format": "rst", + "filename": "field_label.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_label", + "base_name": "ui-framework-field_label", + "output_path": "component/ui-framework/ui-framework-field_label.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_label/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_row.rst", + "format": "rst", + "filename": "table_row.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-table_row", + "base_name": "ui-framework-table_row", + "output_path": "component/ui-framework/ui-framework-table_row.json", + "assets_dir": "component/ui-framework/assets/ui-framework-table_row/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/button_block.rst", + "format": "rst", + "filename": "button_block.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-button_block", + "base_name": "ui-framework-button_block", + "output_path": "component/ui-framework/ui-framework-button_block.json", + "assets_dir": "component/ui-framework/assets/ui-framework-button_block/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_code.rst", + "format": "rst", + "filename": "column_code.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-column_code", + "base_name": "ui-framework-column_code", + "output_path": "component/ui-framework/ui-framework-column_code.json", + "assets_dir": "component/ui-framework/assets/ui-framework-column_code/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_hint.rst", + "format": "rst", + "filename": "field_hint.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_hint", + "base_name": "ui-framework-field_hint", + "output_path": "component/ui-framework/ui-framework-field_hint.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_hint/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_readonly.rst", + "format": "rst", + "filename": "event_toggle_readonly.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_toggle_readonly", + "base_name": "ui-framework-event_toggle_readonly", + "output_path": "component/ui-framework/ui-framework-event_toggle_readonly.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_readonly/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_link.rst", + "format": "rst", + "filename": "column_link.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-column_link", + "base_name": "ui-framework-column_link", + "output_path": "component/ui-framework/ui-framework-column_link.json", + "assets_dir": "component/ui-framework/assets/ui-framework-column_link/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_img.rst", + "format": "rst", + "filename": "box_img.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-box_img", + "base_name": "ui-framework-box_img", + "output_path": "component/ui-framework/ui-framework-box_img.json", + "assets_dir": "component/ui-framework/assets/ui-framework-box_img/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_desc.rst", + "format": "rst", + "filename": "spec_desc.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_desc", + "base_name": "ui-framework-spec_desc", + "output_path": "component/ui-framework/ui-framework-spec_desc.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_desc/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_password.rst", + "format": "rst", + "filename": "field_password.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_password", + "base_name": "ui-framework-field_password", + "output_path": "component/ui-framework/ui-framework-field_password.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_password/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_pulldown.rst", + "format": "rst", + "filename": "field_pulldown.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_pulldown", + "base_name": "ui-framework-field_pulldown", + "output_path": "component/ui-framework/ui-framework-field_pulldown.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_pulldown/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_listen_subwindow.rst", + "format": "rst", + "filename": "event_listen_subwindow.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_listen_subwindow", + "base_name": "ui-framework-event_listen_subwindow", + "output_path": "component/ui-framework/ui-framework-event_listen_subwindow.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_listen_subwindow/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_block.rst", + "format": "rst", + "filename": "field_block.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_block", + "base_name": "ui-framework-field_block", + "output_path": "component/ui-framework/ui-framework-field_block.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_block/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_file.rst", + "format": "rst", + "filename": "field_file.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_file", + "base_name": "ui-framework-field_file", + "output_path": "component/ui-framework/ui-framework-field_file.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_file/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/link_submit.rst", + "format": "rst", + "filename": "link_submit.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-link_submit--s1", + "base_name": "ui-framework-link_submit", + "output_path": "component/ui-framework/ui-framework-link_submit--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-link_submit--s1/", + "section_range": { + "start_line": 0, + "end_line": 93, + "sections": [ + "共通属性", + "汎用リンクのみの属性", + "ポップアップリンクのみの属性" + ], + "section_ids": [ + "s1", + "s2", + "s3" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-link_submit", + "group_line_count": 93 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "共通属性", "rst_labels": [] }, { - "section_id": "s34", - "heading": "前へ", + "section_id": "s2", + "heading": "汎用リンクのみの属性", "rst_labels": [] }, { - "section_id": "s35", - "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "section_id": "s3", + "heading": "ポップアップリンクのみの属性", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_pulldown.rst", + "format": "rst", + "filename": "field_code_pulldown.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_code_pulldown", + "base_name": "ui-framework-field_code_pulldown", + "output_path": "component/ui-framework/ui-framework-field_code_pulldown.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_code_pulldown/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_textarea.rst", + "format": "rst", + "filename": "field_textarea.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_textarea", + "base_name": "ui-framework-field_textarea", + "output_path": "component/ui-framework/ui-framework-field_textarea.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_textarea/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_write_to.rst", + "format": "rst", + "filename": "event_write_to.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_write_to", + "base_name": "ui-framework-event_write_to", + "output_path": "component/ui-framework/ui-framework-event_write_to.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_write_to/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_author.rst", + "format": "rst", + "filename": "spec_author.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_author", + "base_name": "ui-framework-spec_author", + "output_path": "component/ui-framework/ui-framework-spec_author.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_author/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_base.rst", + "format": "rst", + "filename": "field_base.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_base", + "base_name": "ui-framework-field_base", + "output_path": "component/ui-framework/ui-framework-field_base.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_base/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_listen.rst", + "format": "rst", + "filename": "event_listen.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_listen", + "base_name": "ui-framework-event_listen", + "output_path": "component/ui-framework/ui-framework-event_listen.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_listen/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_radio.rst", + "format": "rst", + "filename": "field_code_radio.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_code_radio", + "base_name": "ui-framework-field_code_radio", + "output_path": "component/ui-framework/ui-framework-field_code_radio.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_code_radio/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_layout.rst", + "format": "rst", + "filename": "spec_layout.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_layout", + "base_name": "ui-framework-spec_layout", + "output_path": "component/ui-framework/ui-framework-spec_layout.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_layout/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_calendar.rst", + "format": "rst", + "filename": "field_calendar.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_calendar", + "base_name": "ui-framework-field_calendar", + "output_path": "component/ui-framework/ui-framework-field_calendar.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_calendar/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_search_result.rst", + "format": "rst", + "filename": "table_search_result.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-table_search_result", + "base_name": "ui-framework-table_search_result", + "output_path": "component/ui-framework/ui-framework-table_search_result.json", + "assets_dir": "component/ui-framework/assets/ui-framework-table_search_result/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_confirm.rst", + "format": "rst", + "filename": "event_confirm.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_confirm", + "base_name": "ui-framework-event_confirm", + "output_path": "component/ui-framework/ui-framework-event_confirm.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_confirm/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_updated_date.rst", + "format": "rst", + "filename": "spec_updated_date.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_updated_date", + "base_name": "ui-framework-spec_updated_date", + "output_path": "component/ui-framework/ui-framework-spec_updated_date.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_updated_date/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_listbuilder.rst", + "format": "rst", + "filename": "field_listbuilder.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_listbuilder", + "base_name": "ui-framework-field_listbuilder", + "output_path": "component/ui-framework/ui-framework-field_listbuilder.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_listbuilder/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_property.rst", + "format": "rst", + "filename": "event_toggle_property.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_toggle_property", + "base_name": "ui-framework-event_toggle_property", + "output_path": "component/ui-framework/ui-framework-event_toggle_property.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_property/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/tab_group.rst", + "format": "rst", + "filename": "tab_group.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-tab_group--s1", + "base_name": "ui-framework-tab_group", + "output_path": "component/ui-framework/ui-framework-tab_group--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-tab_group--s1/", + "section_range": { + "start_line": 0, + "end_line": 132, + "sections": [ + "****", + "****", + "****" + ], + "section_ids": [ + "s1", + "s2", + "s3" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-tab_group", + "group_line_count": 132 + }, + "section_map": [ { - "section_id": "s36", - "heading": "次へ", + "section_id": "s1", + "heading": "****", "rst_labels": [] }, { - "section_id": "s37", - "heading": "最後", + "section_id": "s2", + "heading": "****", "rst_labels": [] }, { - "section_id": "s38", - "heading": "検索結果", + "section_id": "s3", + "heading": "****", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_disabled.rst", + "format": "rst", + "filename": "event_toggle_disabled.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_toggle_disabled", + "base_name": "ui-framework-event_toggle_disabled", + "output_path": "component/ui-framework/ui-framework-event_toggle_disabled.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_disabled/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_treelist.rst", + "format": "rst", + "filename": "table_treelist.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-table_treelist", + "base_name": "ui-framework-table_treelist", + "output_path": "component/ui-framework/ui-framework-table_treelist.json", + "assets_dir": "component/ui-framework/assets/ui-framework-table_treelist/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_radio.rst", + "format": "rst", + "filename": "field_radio.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_radio", + "base_name": "ui-framework-field_radio", + "output_path": "component/ui-framework/ui-framework-field_radio.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_radio/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_content.rst", + "format": "rst", + "filename": "box_content.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-box_content", + "base_name": "ui-framework-box_content", + "output_path": "component/ui-framework/ui-framework-box_content.json", + "assets_dir": "component/ui-framework/assets/ui-framework-box_content/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_plain.rst", + "format": "rst", + "filename": "table_plain.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-table_plain", + "base_name": "ui-framework-table_plain", + "output_path": "component/ui-framework/ui-framework-table_plain.json", + "assets_dir": "component/ui-framework/assets/ui-framework-table_plain/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_created_date.rst", + "format": "rst", + "filename": "spec_created_date.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_created_date", + "base_name": "ui-framework-spec_created_date", + "output_path": "component/ui-framework/ui-framework-spec_created_date.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_created_date/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_text.rst", + "format": "rst", + "filename": "field_text.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_text", + "base_name": "ui-framework-field_text", + "output_path": "component/ui-framework/ui-framework-field_text.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_text/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_validation.rst", + "format": "rst", + "filename": "spec_validation.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_validation", + "base_name": "ui-framework-spec_validation", + "output_path": "component/ui-framework/ui-framework-spec_validation.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_validation/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_code.rst", + "format": "rst", + "filename": "field_label_code.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_label_code", + "base_name": "ui-framework-field_label_code", + "output_path": "component/ui-framework/ui-framework-field_label_code.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_label_code/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_window_close.rst", + "format": "rst", + "filename": "event_window_close.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-event_window_close", + "base_name": "ui-framework-event_window_close", + "output_path": "component/ui-framework/ui-framework-event_window_close.json", + "assets_dir": "component/ui-framework/assets/ui-framework-event_window_close/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_checkbox.rst", + "format": "rst", + "filename": "field_code_checkbox.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-field_code_checkbox", + "base_name": "ui-framework-field_code_checkbox", + "output_path": "component/ui-framework/ui-framework-field_code_checkbox.json", + "assets_dir": "component/ui-framework/assets/ui-framework-field_code_checkbox/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_updated_by.rst", + "format": "rst", + "filename": "spec_updated_by.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-spec_updated_by", + "base_name": "ui-framework-spec_updated_by", + "output_path": "component/ui-framework/ui-framework-spec_updated_by.json", + "assets_dir": "component/ui-framework/assets/ui-framework-spec_updated_by/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/ui_development_workflow.rst", "format": "rst", - "filename": "03_ListSearchResult.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-03_ListSearchResult--s18", - "base_name": "biz-samples-03_ListSearchResult", - "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s18.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s18/", + "filename": "ui_development_workflow.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-ui_development_workflow--s1", + "base_name": "ui-framework-ui_development_workflow", + "output_path": "component/ui-framework/ui-framework-ui_development_workflow--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-ui_development_workflow--s1/", "section_range": { - "start_line": 520, - "end_line": 872, + "start_line": 0, + "end_line": 49, "sections": [ - "検索結果の並び替え", "", - "1画面にすべての検索結果を一覧表示する場合の実装方法", - "", - "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", - "" + "UI開発ワークフロー" ], "section_ids": [ - "s18", - "s19", - "s20", - "s21", - "s22", - "s23" + "s1", + "s2" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 4, - "original_id": "biz-samples-03_ListSearchResult", - "group_line_count": 352 + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-ui_development_workflow", + "group_line_count": 49 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [ - "list_search_result" - ] - }, - { - "section_id": "s2", - "heading": "提供パッケージ", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "概要", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "使用方法", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "ListSearchInfoクラス", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "listSearchResultタグ", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "全体", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "検索結果件数", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "ページング", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "検索結果", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "検索結果の並び替え", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", - "rst_labels": [] - }, - { - "section_id": "s23", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s24", - "heading": "検索結果の一覧表示機能のデフォルト値設定", - "rst_labels": [] - }, - { - "section_id": "s25", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s26", - "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s28", - "heading": "タグリファレンス", - "rst_labels": [] - }, - { - "section_id": "s29", - "heading": "全体", - "rst_labels": [] - }, - { - "section_id": "s30", - "heading": "検索結果件数", "rst_labels": [] }, { - "section_id": "s31", - "heading": "ページング", - "rst_labels": [] - }, - { - "section_id": "s32", - "heading": "現在のページ番号", - "rst_labels": [] - }, - { - "section_id": "s33", - "heading": "最初", - "rst_labels": [] - }, - { - "section_id": "s34", - "heading": "前へ", + "section_id": "s2", + "heading": "UI開発ワークフロー", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/required_knowledge.rst", + "format": "rst", + "filename": "required_knowledge.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-required_knowledge", + "base_name": "ui-framework-required_knowledge", + "output_path": "component/ui-framework/ui-framework-required_knowledge.json", + "assets_dir": "component/ui-framework/assets/ui-framework-required_knowledge/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/grand_design.rst", + "format": "rst", + "filename": "grand_design.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-grand_design--s1", + "base_name": "ui-framework-grand_design", + "output_path": "component/ui-framework/ui-framework-grand_design--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-grand_design--s1/", + "section_range": { + "start_line": 0, + "end_line": 118, + "sections": [ + "", + "業務画面JSPの記述", + "", + "UI標準と共通部品" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-grand_design", + "group_line_count": 118 + }, + "section_map": [ { - "section_id": "s35", - "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s36", - "heading": "次へ", + "section_id": "s2", + "heading": "業務画面JSPの記述", "rst_labels": [] }, { - "section_id": "s37", - "heading": "最後", + "section_id": "s3", + "heading": "", "rst_labels": [] }, { - "section_id": "s38", - "heading": "検索結果", + "section_id": "s4", + "heading": "UI標準と共通部品", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/03_ListSearchResult.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/intention.rst", "format": "rst", - "filename": "03_ListSearchResult.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-03_ListSearchResult--s24", - "base_name": "biz-samples-03_ListSearchResult", - "output_path": "guide/biz-samples/biz-samples-03_ListSearchResult--s24.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-03_ListSearchResult--s24/", + "filename": "intention.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-intention--s1", + "base_name": "ui-framework-intention", + "output_path": "component/ui-framework/ui-framework-intention--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-intention--s1/", "section_range": { - "start_line": 872, - "end_line": 1269, + "start_line": 0, + "end_line": 128, "sections": [ - "検索結果の一覧表示機能のデフォルト値設定", - "", - "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", - "", - "タグリファレンス", - "全体", - "検索結果件数", - "ページング", - "現在のページ番号", - "最初", - "前へ", - "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", - "次へ", - "最後", - "検索結果" + "問題点", + "アプローチ", + "メリット", + "問題点", + "アプローチ", + "メリット" ], "section_ids": [ - "s24", - "s25", - "s26", - "s27", - "s28", - "s29", - "s30", - "s31", - "s32", - "s33", - "s34", - "s35", - "s36", - "s37", - "s38" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, - "part": 4, - "total_parts": 4, - "original_id": "biz-samples-03_ListSearchResult", - "group_line_count": 397 + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-intention", + "group_line_count": 128 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "list_search_result" - ] + "heading": "問題点", + "rst_labels": [] }, { "section_id": "s2", - "heading": "提供パッケージ", + "heading": "アプローチ", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "メリット", "rst_labels": [] }, { "section_id": "s4", - "heading": "概要", + "heading": "問題点", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "アプローチ", "rst_labels": [] }, { "section_id": "s6", - "heading": "構成", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "使用方法", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "ListSearchInfoクラス", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "listSearchResultタグ", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "全体", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "検索結果件数", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "ページング", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "検索結果", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "検索結果の並び替え", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "1画面にすべての検索結果を一覧表示する場合の実装方法", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "デフォルトの検索条件で検索した結果を初期表示する場合の実装方法", + "heading": "メリット", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/jsp_widgets.rst", + "format": "rst", + "filename": "jsp_widgets.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-jsp_widgets--s1", + "base_name": "ui-framework-jsp_widgets", + "output_path": "component/ui-framework/ui-framework-jsp_widgets--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-jsp_widgets--s1/", + "section_range": { + "start_line": 0, + "end_line": 345, + "sections": [ + "", + "概要", + "", + "構造", + "**buttonタグ**", + "**fieldタグ**", + "**linkタグ**", + "**tabタグ**", + "**tableタグ**", + "**columnタグ**", + "**boxタグ**", + "", + "ローカル動作時の挙動" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-jsp_widgets", + "group_line_count": 345 + }, + "section_map": [ { - "section_id": "s23", + "section_id": "s1", "heading": "", "rst_labels": [] }, { - "section_id": "s24", - "heading": "検索結果の一覧表示機能のデフォルト値設定", + "section_id": "s2", + "heading": "概要", "rst_labels": [] }, { - "section_id": "s25", + "section_id": "s3", "heading": "", "rst_labels": [] }, { - "section_id": "s26", - "heading": "業務アプリケーションへのサンプル実装(タグファイル)の取り込み方法", - "rst_labels": [] - }, - { - "section_id": "s27", - "heading": "", + "section_id": "s4", + "heading": "構造", "rst_labels": [] }, { - "section_id": "s28", - "heading": "タグリファレンス", + "section_id": "s5", + "heading": "**buttonタグ**", "rst_labels": [] }, { - "section_id": "s29", - "heading": "全体", + "section_id": "s6", + "heading": "**fieldタグ**", "rst_labels": [] }, { - "section_id": "s30", - "heading": "検索結果件数", + "section_id": "s7", + "heading": "**linkタグ**", "rst_labels": [] }, { - "section_id": "s31", - "heading": "ページング", + "section_id": "s8", + "heading": "**tabタグ**", "rst_labels": [] }, { - "section_id": "s32", - "heading": "現在のページ番号", + "section_id": "s9", + "heading": "**tableタグ**", "rst_labels": [] }, { - "section_id": "s33", - "heading": "最初", + "section_id": "s10", + "heading": "**columnタグ**", "rst_labels": [] }, { - "section_id": "s34", - "heading": "前へ", + "section_id": "s11", + "heading": "**boxタグ**", "rst_labels": [] }, { - "section_id": "s35", - "heading": "ページ番号(ページ番号をラベルとして使用するためラベル指定がない)", + "section_id": "s12", + "heading": "", "rst_labels": [] }, { - "section_id": "s36", - "heading": "次へ", + "section_id": "s13", + "heading": "ローカル動作時の挙動", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/configuration_files.rst", + "format": "rst", + "filename": "configuration_files.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-configuration_files--s1", + "base_name": "ui-framework-configuration_files", + "output_path": "component/ui-framework/ui-framework-configuration_files--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-configuration_files--s1/", + "section_range": { + "start_line": 0, + "end_line": 74, + "sections": [ + "", + "タグ定義" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-configuration_files", + "group_line_count": 74 + }, + "section_map": [ { - "section_id": "s37", - "heading": "最後", + "section_id": "s1", + "heading": "", "rst_labels": [] }, { - "section_id": "s38", - "heading": "検索結果", + "section_id": "s2", + "heading": "タグ定義", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/08_HtmlMail.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/css_framework.rst", "format": "rst", - "filename": "08_HtmlMail.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-08_HtmlMail--s1", - "base_name": "biz-samples-08_HtmlMail", - "output_path": "guide/biz-samples/biz-samples-08_HtmlMail--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-08_HtmlMail--s1/", + "filename": "css_framework.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-css_framework--s1", + "base_name": "ui-framework-css_framework", + "output_path": "component/ui-framework/ui-framework-css_framework--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-css_framework--s1/", "section_range": { "start_line": 0, - "end_line": 334, + "end_line": 243, "sections": [ - "実装済み", - "取り下げ", - "メールの形式", - "クラス図", - "データモデル", - "HTMLメールの送信", - "コンテンツの動的な切替", - "電子署名の併用", - "タグを埋めこむ" + "", + "概要", + "", + "表示モード切替え", + "", + "ファイル構成", + "構成ファイル一覧", + "**ビルド済みCSSファイル**", + "**LESSファイル**", + "", + "グリッドベースレイアウト", + "グリッドレイアウトフレームワークの使用方法", + "", + "アイコンの使用" ], "section_ids": [ "s1", @@ -33082,85 +34031,119 @@ "s6", "s7", "s8", - "s9" + "s9", + "s10", + "s11", + "s12", + "s13", + "s14" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-08_HtmlMail", - "group_line_count": 334 + "original_id": "ui-framework-css_framework", + "group_line_count": 243 }, "section_map": [ { "section_id": "s1", - "heading": "実装済み", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "取り下げ", - "rst_labels": [] + "heading": "概要", + "rst_labels": [ + "display_mode" + ] }, { "section_id": "s3", - "heading": "メールの形式", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "クラス図", + "heading": "表示モード切替え", "rst_labels": [] }, { "section_id": "s5", - "heading": "データモデル", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "HTMLメールの送信", + "heading": "ファイル構成", "rst_labels": [] }, { "section_id": "s7", - "heading": "コンテンツの動的な切替", + "heading": "構成ファイル一覧", "rst_labels": [] }, { "section_id": "s8", - "heading": "電子署名の併用", + "heading": "**ビルド済みCSSファイル**", "rst_labels": [] }, { "section_id": "s9", - "heading": "タグを埋めこむ", + "heading": "**LESSファイル**", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "グリッドベースレイアウト", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "グリッドレイアウトフレームワークの使用方法", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "アイコンの使用", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/07_UserAgent.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/inbrowser_jsp_rendering.rst", "format": "rst", - "filename": "07_UserAgent.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-07_UserAgent--s1", - "base_name": "biz-samples-07_UserAgent", - "output_path": "guide/biz-samples/biz-samples-07_UserAgent--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-07_UserAgent--s1/", + "filename": "inbrowser_jsp_rendering.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-inbrowser_jsp_rendering--s1", + "base_name": "ui-framework-inbrowser_jsp_rendering", + "output_path": "component/ui-framework/ui-framework-inbrowser_jsp_rendering--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-inbrowser_jsp_rendering--s1/", "section_range": { "start_line": 0, - "end_line": 326, + "end_line": 275, "sections": [ - "インタフェース定義", - "クラス定義", "", - "設定の記述", - "設定内容詳細", + "概要", + "ローカルJSPレンダリング機能の有効化", + "業務画面JSPを記述する際の制約事項", "", - "使用例" + "ローカル表示の仕組み", + "", + "構造", + "構成ファイル一覧" ], "section_ids": [ "s1", @@ -33169,77 +34152,89 @@ "s4", "s5", "s6", - "s7" + "s7", + "s8", + "s9" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-07_UserAgent", - "group_line_count": 326 + "original_id": "ui-framework-inbrowser_jsp_rendering", + "group_line_count": 275 }, "section_map": [ { "section_id": "s1", - "heading": "インタフェース定義", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "クラス定義", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "ローカルJSPレンダリング機能の有効化", "rst_labels": [] }, { "section_id": "s4", - "heading": "設定の記述", + "heading": "業務画面JSPを記述する際の制約事項", "rst_labels": [] }, { "section_id": "s5", - "heading": "設定内容詳細", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "", + "heading": "ローカル表示の仕組み", "rst_labels": [] }, { "section_id": "s7", - "heading": "使用例", + "heading": "", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/04_ExtendedFormatter.rst", - "format": "rst", - "filename": "04_ExtendedFormatter.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-04_ExtendedFormatter--s1", - "base_name": "biz-samples-04_ExtendedFormatter", - "output_path": "guide/biz-samples/biz-samples-04_ExtendedFormatter--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-04_ExtendedFormatter--s1/", + }, + { + "section_id": "s8", + "heading": "構造", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "構成ファイル一覧", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/multicol_css_framework.rst", + "format": "rst", + "filename": "multicol_css_framework.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-multicol_css_framework--s1", + "base_name": "ui-framework-multicol_css_framework", + "output_path": "component/ui-framework/ui-framework-multicol_css_framework--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-multicol_css_framework--s1/", "section_range": { "start_line": 0, - "end_line": 120, + "end_line": 274, "sections": [ "", - "提供パッケージ", + "概要", "", - "KeyValueデータフォーマッタ", + "制約事項", "", - "使用方法", - "KeyValueデータフォーマッタの使用方法", - "フィールドタイプ・フィールドコンバータ定義一覧", - "同一キーで複数の値を取り扱う場合" + "マルチレイアウトモードの適用方法", + "", + "レイアウトの調整方法", + "" ], "section_ids": [ "s1", @@ -33256,19 +34251,21 @@ "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "biz-samples-04_ExtendedFormatter", - "group_line_count": 120 + "total_parts": 2, + "original_id": "ui-framework-multicol_css_framework", + "group_line_count": 274 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "multicol_mode" + ] }, { "section_id": "s2", - "heading": "提供パッケージ", + "heading": "概要", "rst_labels": [] }, { @@ -33278,8 +34275,10 @@ }, { "section_id": "s4", - "heading": "KeyValueデータフォーマッタ", - "rst_labels": [] + "heading": "制約事項", + "rst_labels": [ + "apply-multicol-layout" + ] }, { "section_id": "s5", @@ -33288,78 +34287,65 @@ }, { "section_id": "s6", - "heading": "使用方法", + "heading": "マルチレイアウトモードの適用方法", "rst_labels": [] }, { "section_id": "s7", - "heading": "KeyValueデータフォーマッタの使用方法", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "heading": "レイアウトの調整方法", "rst_labels": [] }, { "section_id": "s9", - "heading": "同一キーで複数の値を取り扱う場合", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "使用例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/0401_ExtendedDataFormatter.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/multicol_css_framework.rst", "format": "rst", - "filename": "0401_ExtendedDataFormatter.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-0401_ExtendedDataFormatter--s1", - "base_name": "biz-samples-0401_ExtendedDataFormatter", - "output_path": "guide/biz-samples/biz-samples-0401_ExtendedDataFormatter--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-0401_ExtendedDataFormatter--s1/", + "filename": "multicol_css_framework.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-multicol_css_framework--s10", + "base_name": "ui-framework-multicol_css_framework", + "output_path": "component/ui-framework/ui-framework-multicol_css_framework--s10.json", + "assets_dir": "component/ui-framework/assets/ui-framework-multicol_css_framework--s10/", "section_range": { - "start_line": 0, - "end_line": 207, + "start_line": 274, + "end_line": 489, "sections": [ - "", - "概要", - "提供パッケージ", - "FormUrlEncodedデータフォーマッタの構成", - "", - "使用方法", - "FormUrlEncodedデータフォーマッタの使用方法", - "フォーマット定義ファイルの記述例", - "フィールドタイプ・フィールドコンバータ定義一覧", - "同一キーで複数の値を取り扱う場合", - "テストデータの記述方法" + "使用例" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11" + "s10" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "biz-samples-0401_ExtendedDataFormatter", - "group_line_count": 207 + "part": 2, + "total_parts": 2, + "original_id": "ui-framework-multicol_css_framework", + "group_line_count": 215 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "multicol_mode" + ] }, { "section_id": "s2", @@ -33368,13 +34354,15 @@ }, { "section_id": "s3", - "heading": "提供パッケージ", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "FormUrlEncodedデータフォーマッタの構成", - "rst_labels": [] + "heading": "制約事項", + "rst_labels": [ + "apply-multicol-layout" + ] }, { "section_id": "s5", @@ -33383,60 +34371,58 @@ }, { "section_id": "s6", - "heading": "使用方法", + "heading": "マルチレイアウトモードの適用方法", "rst_labels": [] }, { "section_id": "s7", - "heading": "FormUrlEncodedデータフォーマッタの使用方法", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "フォーマット定義ファイルの記述例", + "heading": "レイアウトの調整方法", "rst_labels": [] }, { "section_id": "s9", - "heading": "フィールドタイプ・フィールドコンバータ定義一覧", + "heading": "", "rst_labels": [] }, { "section_id": "s10", - "heading": "同一キーで複数の値を取り扱う場合", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "テストデータの記述方法", + "heading": "使用例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/05_DbFileManagement.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/jsp_page_templates.rst", "format": "rst", - "filename": "05_DbFileManagement.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-05_DbFileManagement--s1", - "base_name": "biz-samples-05_DbFileManagement", - "output_path": "guide/biz-samples/biz-samples-05_DbFileManagement--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-05_DbFileManagement--s1/", + "filename": "jsp_page_templates.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-jsp_page_templates--s1", + "base_name": "ui-framework-jsp_page_templates", + "output_path": "component/ui-framework/ui-framework-jsp_page_templates--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-jsp_page_templates--s1/", "section_range": { "start_line": 0, - "end_line": 259, + "end_line": 322, "sections": [ "", "概要", "", - "提供パッケージ", - "", - "機能", + "ファイル構成", + "概要", + "構成ファイル一覧", "", - "構成", + "業務画面テンプレートの詳細仕様", + "業務画面ベースレイアウト", + "業務画面標準テンプレート", + "エラー画面テンプレート", "", - "使用方法" + "ローカル動作時の挙動" ], "section_ids": [ "s1", @@ -33448,15 +34434,18 @@ "s7", "s8", "s9", - "s10" + "s10", + "s11", + "s12", + "s13" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-05_DbFileManagement", - "group_line_count": 259 + "original_id": "ui-framework-jsp_page_templates", + "group_line_count": 322 }, "section_map": [ { @@ -33476,190 +34465,195 @@ }, { "section_id": "s4", - "heading": "提供パッケージ", + "heading": "ファイル構成", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "概要", "rst_labels": [] }, { "section_id": "s6", - "heading": "機能", + "heading": "構成ファイル一覧", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "業務画面テンプレートの詳細仕様", + "rst_labels": [ + "base_layout_tag" + ] + }, + { + "section_id": "s9", + "heading": "業務画面ベースレイアウト", + "rst_labels": [ + "page_template_tag" + ] + }, + { + "section_id": "s10", + "heading": "業務画面標準テンプレート", + "rst_labels": [ + "errorpage_template_tag" + ] + }, + { + "section_id": "s11", + "heading": "エラー画面テンプレート", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "", "rst_labels": [] }, { - "section_id": "s7", - "heading": "", + "section_id": "s13", + "heading": "ローカル動作時の挙動", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/generating_form_class.rst", + "format": "rst", + "filename": "generating_form_class.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-generating_form_class-internals--s1", + "base_name": "ui-framework-generating_form_class-internals", + "output_path": "component/ui-framework/ui-framework-generating_form_class-internals--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-generating_form_class-internals--s1/", + "section_range": { + "start_line": 0, + "end_line": 387, + "sections": [ + "概要", + "使用方法", + "関連ファイル", + "出力仕様" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-generating_form_class-internals", + "group_line_count": 387 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "概要", "rst_labels": [] }, { - "section_id": "s8", - "heading": "構成", + "section_id": "s2", + "heading": "使用方法", "rst_labels": [] }, { - "section_id": "s9", - "heading": "", + "section_id": "s3", + "heading": "関連ファイル", "rst_labels": [] }, { - "section_id": "s10", - "heading": "使用方法", + "section_id": "s4", + "heading": "出力仕様", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/biz_sample/doc/01/0101_PBKDF2PasswordEncryptor.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/showing_specsheet_view.rst", "format": "rst", - "filename": "0101_PBKDF2PasswordEncryptor.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-0101_PBKDF2PasswordEncryptor--s1", - "base_name": "biz-samples-0101_PBKDF2PasswordEncryptor", - "output_path": "guide/biz-samples/biz-samples-0101_PBKDF2PasswordEncryptor--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-0101_PBKDF2PasswordEncryptor--s1/", + "filename": "showing_specsheet_view.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-showing_specsheet_view--s1", + "base_name": "ui-framework-showing_specsheet_view", + "output_path": "component/ui-framework/ui-framework-showing_specsheet_view--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-showing_specsheet_view--s1/", "section_range": { "start_line": 0, - "end_line": 178, + "end_line": 84, "sections": [ - "", - "提供パッケージ", - "", "概要", - "", - "要求", - "", - "パスワード暗号化機能の詳細", - "", - "設定方法" + "使用方法", + "関連ファイル" ], "section_ids": [ "s1", "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10" + "s3" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "biz-samples-0101_PBKDF2PasswordEncryptor", - "group_line_count": 178 + "original_id": "ui-framework-showing_specsheet_view", + "group_line_count": 84 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "authentication_pbkdf2" - ] - }, - { - "section_id": "s2", - "heading": "提供パッケージ", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", "heading": "概要", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "要求", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "パスワード暗号化機能の詳細", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "", + "section_id": "s2", + "heading": "使用方法", "rst_labels": [] }, { - "section_id": "s10", - "heading": "設定方法", + "section_id": "s3", + "heading": "関連ファイル", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/known_issues.rst", - "format": "rst", - "filename": "known_issues.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-known_issues", - "base_name": "ui-framework-known_issues", - "output_path": "component/ui-framework/ui-framework-known_issues.json", - "assets_dir": "component/ui-framework/assets/ui-framework-known_issues/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-doc", - "base_name": "ui-framework-doc", - "output_path": "component/ui-framework/ui-framework-doc.json", - "assets_dir": "component/ui-framework/assets/ui-framework-doc/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/js_framework.rst", "format": "rst", - "filename": "plugin_build.rst", + "filename": "js_framework.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-plugin_build--s1", - "base_name": "ui-framework-plugin_build", - "output_path": "component/ui-framework/ui-framework-plugin_build--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s1/", + "id": "ui-framework-js_framework--s1", + "base_name": "ui-framework-js_framework", + "output_path": "component/ui-framework/ui-framework-js_framework--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-js_framework--s1/", "section_range": { "start_line": 0, - "end_line": 274, + "end_line": 254, "sections": [ "", "概要", + "使用例", + "依存ライブラリ", "", - "想定されるプロジェクト構成ごとの設定例", - "デプロイ対象プロジェクトが1つの場合", - "デプロイ対象プロジェクト複数の場合(プラグインは共通)", - "デプロイ対象プロジェクト複数の場合(プラグインも個別)", + "初期処理", + "スクリプトロード時の挙動", + "ドキュメントロード時の挙動", + "UI部品の再初期化", "", - "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", + "ファイル構成", "", - "設定ファイル" + "新規 JavaScript UI部品の作成方法", + "作成するファイル" ], "section_ids": [ "s1", @@ -33672,15 +34666,18 @@ "s8", "s9", "s10", - "s11" + "s11", + "s12", + "s13", + "s14" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 3, - "original_id": "ui-framework-plugin_build", - "group_line_count": 274 + "total_parts": 2, + "original_id": "ui-framework-js_framework", + "group_line_count": 254 }, "section_map": [ { @@ -33691,212 +34688,101 @@ { "section_id": "s2", "heading": "概要", - "rst_labels": [ - "project-structure" - ] + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "使用例", "rst_labels": [] }, { "section_id": "s4", - "heading": "想定されるプロジェクト構成ごとの設定例", + "heading": "依存ライブラリ", "rst_labels": [] }, { "section_id": "s5", - "heading": "デプロイ対象プロジェクトが1つの場合", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", + "heading": "初期処理", "rst_labels": [] }, { "section_id": "s7", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", - "rst_labels": [ - "config-command-detail" - ] - }, - { - "section_id": "s8", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", - "rst_labels": [ - "config-file" - ] - }, - { - "section_id": "s10", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "設定ファイル", - "rst_labels": [ - "pjconf_json" - ] - }, - { - "section_id": "s12", - "heading": "ビルドコマンド用設定ファイル", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "lessインポート定義ファイル", - "rst_labels": [ - "generate-file" - ] - }, - { - "section_id": "s14", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "ファイルの自動生成", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "CSSの自動生成", - "rst_labels": [ - "generate_javascript" - ] - }, - { - "section_id": "s17", - "heading": "JavaScriptの自動生成", - "rst_labels": [ - "build-file" - ] - }, - { - "section_id": "s18", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "プラグイン、外部ライブラリの展開", + "heading": "スクリプトロード時の挙動", "rst_labels": [] }, { - "section_id": "s20", - "heading": "プラグインの展開", + "section_id": "s8", + "heading": "ドキュメントロード時の挙動", "rst_labels": [] }, { - "section_id": "s21", - "heading": "外部ライブラリの展開", - "rst_labels": [ - "build-command" - ] + "section_id": "s9", + "heading": "UI部品の再初期化", + "rst_labels": [] }, { - "section_id": "s22", + "section_id": "s10", "heading": "", "rst_labels": [] }, { - "section_id": "s23", - "heading": "ビルドコマンド", - "rst_labels": [ - "install" - ] - }, - { - "section_id": "s24", - "heading": "インストールコマンド", - "rst_labels": [ - "ui_build" - ] + "section_id": "s11", + "heading": "ファイル構成", + "rst_labels": [] }, { - "section_id": "s25", - "heading": "UIビルドコマンド", - "rst_labels": [ - "ui_genless" - ] + "section_id": "s12", + "heading": "", + "rst_labels": [] }, { - "section_id": "s26", - "heading": "lessインポート定義雛形生成コマンド", + "section_id": "s13", + "heading": "新規 JavaScript UI部品の作成方法", "rst_labels": [] }, { - "section_id": "s27", - "heading": "ローカル動作確認用サーバ起動コマンド", - "rst_labels": [ - "ui_demo" - ] + "section_id": "s14", + "heading": "作成するファイル", + "rst_labels": [] }, { - "section_id": "s28", - "heading": "サーバ動作確認用サーバ起動コマンド", + "section_id": "s15", + "heading": "ウィジェットの実装例", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/js_framework.rst", "format": "rst", - "filename": "plugin_build.rst", + "filename": "js_framework.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-plugin_build--s12", - "base_name": "ui-framework-plugin_build", - "output_path": "component/ui-framework/ui-framework-plugin_build--s12.json", - "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s12/", + "id": "ui-framework-js_framework--s15", + "base_name": "ui-framework-js_framework", + "output_path": "component/ui-framework/ui-framework-js_framework--s15.json", + "assets_dir": "component/ui-framework/assets/ui-framework-js_framework--s15/", "section_range": { - "start_line": 274, - "end_line": 658, + "start_line": 254, + "end_line": 423, "sections": [ - "ビルドコマンド用設定ファイル", - "lessインポート定義ファイル", - "", - "ファイルの自動生成", - "CSSの自動生成", - "JavaScriptの自動生成", - "", - "プラグイン、外部ライブラリの展開", - "プラグインの展開", - "外部ライブラリの展開", - "", - "ビルドコマンド" + "ウィジェットの実装例" ], "section_ids": [ - "s12", - "s13", - "s14", - "s15", - "s16", - "s17", - "s18", - "s19", - "s20", - "s21", - "s22", - "s23" + "s15" ] }, "split_info": { "is_split": true, "part": 2, - "total_parts": 3, - "original_id": "ui-framework-plugin_build", - "group_line_count": 384 + "total_parts": 2, + "original_id": "ui-framework-js_framework", + "group_line_count": 169 }, "section_map": [ { @@ -33907,48 +34793,42 @@ { "section_id": "s2", "heading": "概要", - "rst_labels": [ - "project-structure" - ] + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "使用例", "rst_labels": [] }, { "section_id": "s4", - "heading": "想定されるプロジェクト構成ごとの設定例", + "heading": "依存ライブラリ", "rst_labels": [] }, { "section_id": "s5", - "heading": "デプロイ対象プロジェクトが1つの場合", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", + "heading": "初期処理", "rst_labels": [] }, { "section_id": "s7", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", - "rst_labels": [ - "config-command-detail" - ] + "heading": "スクリプトロード時の挙動", + "rst_labels": [] }, { "section_id": "s8", - "heading": "", + "heading": "ドキュメントロード時の挙動", "rst_labels": [] }, { "section_id": "s9", - "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", - "rst_labels": [ - "config-file" - ] + "heading": "UI部品の再初期化", + "rst_labels": [] }, { "section_id": "s10", @@ -33957,332 +34837,305 @@ }, { "section_id": "s11", - "heading": "設定ファイル", - "rst_labels": [ - "pjconf_json" - ] + "heading": "ファイル構成", + "rst_labels": [] }, { "section_id": "s12", - "heading": "ビルドコマンド用設定ファイル", + "heading": "", "rst_labels": [] }, { "section_id": "s13", - "heading": "lessインポート定義ファイル", - "rst_labels": [ - "generate-file" - ] + "heading": "新規 JavaScript UI部品の作成方法", + "rst_labels": [] }, { "section_id": "s14", - "heading": "", + "heading": "作成するファイル", "rst_labels": [] }, { "section_id": "s15", - "heading": "ファイルの自動生成", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "CSSの自動生成", - "rst_labels": [ - "generate_javascript" - ] - }, - { - "section_id": "s17", - "heading": "JavaScriptの自動生成", - "rst_labels": [ - "build-file" - ] - }, - { - "section_id": "s18", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "プラグイン、外部ライブラリの展開", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "プラグインの展開", + "heading": "ウィジェットの実装例", "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "外部ライブラリの展開", - "rst_labels": [ - "build-command" - ] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/architecture_overview.rst", + "format": "rst", + "filename": "architecture_overview.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-architecture_overview--s1", + "base_name": "ui-framework-architecture_overview", + "output_path": "component/ui-framework/ui-framework-architecture_overview--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-architecture_overview--s1/", + "section_range": { + "start_line": 0, + "end_line": 120, + "sections": [ + "本番環境での外部ライブラリへの依存", + "サーバ動作時の構成", + "ローカル動作時の構成" + ], + "section_ids": [ + "s1", + "s2", + "s3" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-architecture_overview", + "group_line_count": 120 + }, + "section_map": [ { - "section_id": "s22", - "heading": "", + "section_id": "s1", + "heading": "本番環境での外部ライブラリへの依存", "rst_labels": [] }, { - "section_id": "s23", - "heading": "ビルドコマンド", - "rst_labels": [ - "install" - ] - }, - { - "section_id": "s24", - "heading": "インストールコマンド", - "rst_labels": [ - "ui_build" - ] - }, - { - "section_id": "s25", - "heading": "UIビルドコマンド", - "rst_labels": [ - "ui_genless" - ] - }, - { - "section_id": "s26", - "heading": "lessインポート定義雛形生成コマンド", + "section_id": "s2", + "heading": "サーバ動作時の構成", "rst_labels": [] }, { - "section_id": "s27", - "heading": "ローカル動作確認用サーバ起動コマンド", - "rst_labels": [ - "ui_demo" - ] - }, - { - "section_id": "s28", - "heading": "サーバ動作確認用サーバ起動コマンド", + "section_id": "s3", + "heading": "ローカル動作時の構成", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/plugin_build.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/modifying_code_and_testing.rst", "format": "rst", - "filename": "plugin_build.rst", + "filename": "modifying_code_and_testing.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-plugin_build--s24", - "base_name": "ui-framework-plugin_build", - "output_path": "component/ui-framework/ui-framework-plugin_build--s24.json", - "assets_dir": "component/ui-framework/assets/ui-framework-plugin_build--s24/", + "id": "ui-framework-modifying_code_and_testing--s1", + "base_name": "ui-framework-modifying_code_and_testing", + "output_path": "component/ui-framework/ui-framework-modifying_code_and_testing--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-modifying_code_and_testing--s1/", "section_range": { - "start_line": 658, - "end_line": 814, + "start_line": 0, + "end_line": 209, "sections": [ - "インストールコマンド", - "UIビルドコマンド", - "lessインポート定義雛形生成コマンド", - "ローカル動作確認用サーバ起動コマンド", - "サーバ動作確認用サーバ起動コマンド" + "1. 修正要件の確認", + "2. 修正箇所の特定", + "3. プラグインの追加", + "4. ビルドと修正確認", + "5. リポジトリへの反映" ], "section_ids": [ - "s24", - "s25", - "s26", - "s27", - "s28" + "s1", + "s2", + "s3", + "s4", + "s5" ] }, "split_info": { "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "ui-framework-plugin_build", - "group_line_count": 156 + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-modifying_code_and_testing", + "group_line_count": 209 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "1. 修正要件の確認", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "2. 修正箇所の特定", "rst_labels": [ - "project-structure" + "add_plugin" ] }, { "section_id": "s3", - "heading": "", + "heading": "3. プラグインの追加", "rst_labels": [] }, { "section_id": "s4", - "heading": "想定されるプロジェクト構成ごとの設定例", + "heading": "4. ビルドと修正確認", "rst_labels": [] }, { "section_id": "s5", - "heading": "デプロイ対象プロジェクトが1つの場合", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインは共通)", + "heading": "5. リポジトリへの反映", "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "デプロイ対象プロジェクト複数の場合(プラグインも個別)", - "rst_labels": [ - "config-command-detail" - ] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/initial_setup.rst", + "format": "rst", + "filename": "initial_setup.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-initial_setup--s1", + "base_name": "ui-framework-initial_setup", + "output_path": "component/ui-framework/ui-framework-initial_setup--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-initial_setup--s1/", + "section_range": { + "start_line": 0, + "end_line": 378, + "sections": [ + "1. サードパーティライブラリの取得(要オンライン)", + "2. プロジェクトで使用するプラグインの選定", + "3. プロジェクトへのプラグインインストール", + "4. UI部品のビルドと配置", + "5. UIローカルデモ用プロジェクトの動作確認", + "6. UI開発基盤テスト用プロジェクトの動作確認" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "ui-framework-initial_setup", + "group_line_count": 378 + }, + "section_map": [ { - "section_id": "s8", - "heading": "", + "section_id": "s1", + "heading": "1. サードパーティライブラリの取得(要オンライン)", "rst_labels": [] }, { - "section_id": "s9", - "heading": "プラグインビルドで使用するコマンドや設定ファイルの詳細仕様", - "rst_labels": [ - "config-file" - ] - }, - { - "section_id": "s10", - "heading": "", + "section_id": "s2", + "heading": "2. プロジェクトで使用するプラグインの選定", "rst_labels": [] }, { - "section_id": "s11", - "heading": "設定ファイル", + "section_id": "s3", + "heading": "3. プロジェクトへのプラグインインストール", "rst_labels": [ - "pjconf_json" + "executing_ui_build" ] }, { - "section_id": "s12", - "heading": "ビルドコマンド用設定ファイル", + "section_id": "s4", + "heading": "4. UI部品のビルドと配置", "rst_labels": [] }, { - "section_id": "s13", - "heading": "lessインポート定義ファイル", - "rst_labels": [ - "generate-file" - ] - }, - { - "section_id": "s14", - "heading": "", + "section_id": "s5", + "heading": "5. UIローカルデモ用プロジェクトの動作確認", "rst_labels": [] }, { - "section_id": "s15", - "heading": "ファイルの自動生成", + "section_id": "s6", + "heading": "6. UI開発基盤テスト用プロジェクトの動作確認", "rst_labels": [] }, { - "section_id": "s16", - "heading": "CSSの自動生成", - "rst_labels": [ - "generate_javascript" - ] - }, - { - "section_id": "s17", - "heading": "JavaScriptの自動生成", - "rst_labels": [ - "build-file" - ] - }, - { - "section_id": "s18", - "heading": "", + "section_id": "s7", + "heading": "7. 開発リポジトリへの登録", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/initial_setup.rst", + "format": "rst", + "filename": "initial_setup.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-initial_setup--s7", + "base_name": "ui-framework-initial_setup", + "output_path": "component/ui-framework/ui-framework-initial_setup--s7.json", + "assets_dir": "component/ui-framework/assets/ui-framework-initial_setup--s7/", + "section_range": { + "start_line": 378, + "end_line": 438, + "sections": [ + "7. 開発リポジトリへの登録" + ], + "section_ids": [ + "s7" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "ui-framework-initial_setup", + "group_line_count": 60 + }, + "section_map": [ { - "section_id": "s19", - "heading": "プラグイン、外部ライブラリの展開", + "section_id": "s1", + "heading": "1. サードパーティライブラリの取得(要オンライン)", "rst_labels": [] }, { - "section_id": "s20", - "heading": "プラグインの展開", + "section_id": "s2", + "heading": "2. プロジェクトで使用するプラグインの選定", "rst_labels": [] }, { - "section_id": "s21", - "heading": "外部ライブラリの展開", + "section_id": "s3", + "heading": "3. プロジェクトへのプラグインインストール", "rst_labels": [ - "build-command" + "executing_ui_build" ] }, { - "section_id": "s22", - "heading": "", + "section_id": "s4", + "heading": "4. UI部品のビルドと配置", "rst_labels": [] }, { - "section_id": "s23", - "heading": "ビルドコマンド", - "rst_labels": [ - "install" - ] - }, - { - "section_id": "s24", - "heading": "インストールコマンド", - "rst_labels": [ - "ui_build" - ] - }, - { - "section_id": "s25", - "heading": "UIビルドコマンド", - "rst_labels": [ - "ui_genless" - ] - }, - { - "section_id": "s26", - "heading": "lessインポート定義雛形生成コマンド", + "section_id": "s5", + "heading": "5. UIローカルデモ用プロジェクトの動作確認", "rst_labels": [] }, { - "section_id": "s27", - "heading": "ローカル動作確認用サーバ起動コマンド", - "rst_labels": [ - "ui_demo" - ] + "section_id": "s6", + "heading": "6. UI開発基盤テスト用プロジェクトの動作確認", + "rst_labels": [] }, - { - "section_id": "s28", - "heading": "サーバ動作確認用サーバ起動コマンド", + { + "section_id": "s7", + "heading": "7. 開発リポジトリへの登録", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_js_framework.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/update_bundle_plugin.rst", "format": "rst", - "filename": "reference_js_framework.rst", + "filename": "update_bundle_plugin.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-reference_js_framework--s1", - "base_name": "ui-framework-reference_js_framework", - "output_path": "component/ui-framework/ui-framework-reference_js_framework--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-reference_js_framework--s1/", + "id": "ui-framework-update_bundle_plugin--s1", + "base_name": "ui-framework-update_bundle_plugin", + "output_path": "component/ui-framework/ui-framework-update_bundle_plugin--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-update_bundle_plugin--s1/", "section_range": { "start_line": 0, - "end_line": 28, + "end_line": 200, "sections": [ - "UI部品", - "ユーティリティ" + "1. 現在のプラグインのバージョンの確認", + "2. プラグインのマージ" ], "section_ids": [ "s1", @@ -34293,296 +35146,322 @@ "is_split": true, "part": 1, "total_parts": 1, - "original_id": "ui-framework-reference_js_framework", - "group_line_count": 28 + "original_id": "ui-framework-update_bundle_plugin", + "group_line_count": 200 }, "section_map": [ { "section_id": "s1", - "heading": "UI部品", + "heading": "1. 現在のプラグインのバージョンの確認", "rst_labels": [] }, { "section_id": "s2", - "heading": "ユーティリティ", + "heading": "2. プラグインのマージ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/related_documents.rst", - "format": "rst", - "filename": "related_documents.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-related_documents", - "base_name": "ui-framework-related_documents", - "output_path": "component/ui-framework/ui-framework-related_documents.json", - "assets_dir": "component/ui-framework/assets/ui-framework-related_documents/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/about_this_book.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/redistribution.rst", "format": "rst", - "filename": "about_this_book.rst", + "filename": "redistribution.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-about_this_book", - "base_name": "ui-framework-about_this_book", - "output_path": "component/ui-framework/ui-framework-about_this_book.json", - "assets_dir": "component/ui-framework/assets/ui-framework-about_this_book/", + "id": "ui-framework-redistribution--s1", + "base_name": "ui-framework-redistribution", + "output_path": "component/ui-framework/ui-framework-redistribution--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-redistribution--s1/", + "section_range": { + "start_line": 0, + "end_line": 125, + "sections": [ + "作成手順", + "確認手順" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-redistribution", + "group_line_count": 125 + }, "section_map": [ { "section_id": "s1", - "heading": "本書の内容", + "heading": "作成手順", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "確認手順", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/book_layout.rst", - "format": "rst", - "filename": "book_layout.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-book_layout", - "base_name": "ui-framework-book_layout", - "output_path": "component/ui-framework/ui-framework-book_layout.json", - "assets_dir": "component/ui-framework/assets/ui-framework-book_layout/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/testing.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/index.rst", "format": "rst", - "filename": "testing.rst", + "filename": "index.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-testing--s1", - "base_name": "ui-framework-testing", - "output_path": "component/ui-framework/ui-framework-testing--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-testing--s1/", + "id": "ui-framework-guide--s1", + "base_name": "ui-framework-guide", + "output_path": "component/ui-framework/ui-framework-guide--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-guide--s1/", "section_range": { "start_line": 0, - "end_line": 170, + "end_line": 82, "sections": [ - "", - "テスト方針", - "", - "テスト実施環境", - "", - "実施テスト内容", - "UI部品ウィジェット機能テスト", - "UI部品ウィジェット性能テスト", - "UI部品ウィジェット組み合わせテスト", - "結合テスト", - "ローカル表示テスト", - "表示方向切替えテスト" + "業務画面JSP作成フロー", + "業務画面JSP作成に利用する開発環境", + "業務画面JSPの作成方法", + "画面項目定義一覧の作成方法", + "フォームクラスの自動生成方法" ], "section_ids": [ "s1", "s2", "s3", "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12" + "s5" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "ui-framework-testing", - "group_line_count": 170 + "original_id": "ui-framework-guide", + "group_line_count": 82 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "業務画面JSP作成フロー", "rst_labels": [] }, { "section_id": "s2", - "heading": "テスト方針", + "heading": "業務画面JSP作成に利用する開発環境", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "業務画面JSPの作成方法", "rst_labels": [] }, { "section_id": "s4", - "heading": "テスト実施環境", + "heading": "画面項目定義一覧の作成方法", "rst_labels": [] }, { "section_id": "s5", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "実施テスト内容", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "UI部品ウィジェット機能テスト", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "UI部品ウィジェット性能テスト", + "heading": "フォームクラスの自動生成方法", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/template_list.rst", + "format": "rst", + "filename": "template_list.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-template_list--s1", + "base_name": "ui-framework-template_list", + "output_path": "component/ui-framework/ui-framework-template_list--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-template_list--s1/", + "section_range": { + "start_line": 0, + "end_line": 215, + "sections": [ + "Eclipse補完テンプレートの導入方法", + "Eclipse補完テンプレートの一覧" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-template_list", + "group_line_count": 215 + }, + "section_map": [ { - "section_id": "s9", - "heading": "UI部品ウィジェット組み合わせテスト", - "rst_labels": [] + "section_id": "s1", + "heading": "Eclipse補完テンプレートの導入方法", + "rst_labels": [ + "eclipse-template" + ] }, { - "section_id": "s10", - "heading": "結合テスト", + "section_id": "s2", + "heading": "Eclipse補完テンプレートの一覧", "rst_labels": [] - }, + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/develop_environment.rst", + "format": "rst", + "filename": "develop_environment.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-develop_environment--s1", + "base_name": "ui-framework-develop_environment", + "output_path": "component/ui-framework/ui-framework-develop_environment--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-develop_environment--s1/", + "section_range": { + "start_line": 0, + "end_line": 34, + "sections": [ + "統合開発環境の補完機能を利用する", + "統合開発環境のドキュメント参照機能を利用する" + ], + "section_ids": [ + "s1", + "s2" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 1, + "original_id": "ui-framework-develop_environment", + "group_line_count": 34 + }, + "section_map": [ { - "section_id": "s11", - "heading": "ローカル表示テスト", + "section_id": "s1", + "heading": "統合開発環境の補完機能を利用する", "rst_labels": [] }, { - "section_id": "s12", - "heading": "表示方向切替えテスト", + "section_id": "s2", + "heading": "統合開発環境のドキュメント参照機能を利用する", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/structure/directory_layout.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/widget_list.rst", + "format": "rst", + "filename": "widget_list.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-widget_list", + "base_name": "ui-framework-widget_list", + "output_path": "component/ui-framework/ui-framework-widget_list.json", + "assets_dir": "component/ui-framework/assets/ui-framework-widget_list/", + "section_map": [] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/project_structure.rst", "format": "rst", - "filename": "directory_layout.rst", + "filename": "project_structure.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-directory_layout", - "base_name": "ui-framework-directory_layout", - "output_path": "component/ui-framework/ui-framework-directory_layout.json", - "assets_dir": "component/ui-framework/assets/ui-framework-directory_layout/", + "id": "ui-framework-project_structure", + "base_name": "ui-framework-project_structure", + "output_path": "component/ui-framework/ui-framework-project_structure.json", + "assets_dir": "component/ui-framework/assets/ui-framework-project_structure/", "section_map": [] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/structure/plugins.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/create_screen_item_list.rst", "format": "rst", - "filename": "plugins.rst", + "filename": "create_screen_item_list.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-plugins--s1", - "base_name": "ui-framework-plugins", - "output_path": "component/ui-framework/ui-framework-plugins--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-plugins--s1/", + "id": "ui-framework-create_screen_item_list", + "base_name": "ui-framework-create_screen_item_list", + "output_path": "component/ui-framework/ui-framework-create_screen_item_list.json", + "assets_dir": "component/ui-framework/assets/ui-framework-create_screen_item_list/", + "section_map": [ + { + "section_id": "s1", + "heading": "業務画面JSPから画面項目定義を作成する", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/generating_form_class.rst", + "format": "rst", + "filename": "generating_form_class.rst", + "type": "component", + "category": "ui-framework", + "id": "ui-framework-generating_form_class-widget_usage--s1", + "base_name": "ui-framework-generating_form_class-widget_usage", + "output_path": "component/ui-framework/ui-framework-generating_form_class-widget_usage--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-generating_form_class-widget_usage--s1/", "section_range": { "start_line": 0, - "end_line": 147, + "end_line": 38, "sections": [ - "", - "UIプラグインの構造", - "", - "UIプラグインのバージョンについて" + "概要", + "使用方法" ], "section_ids": [ "s1", - "s2", - "s3", - "s4" + "s2" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 1, - "original_id": "ui-framework-plugins", - "group_line_count": 147 + "original_id": "ui-framework-generating_form_class-widget_usage", + "group_line_count": 38 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "概要", "rst_labels": [] }, { "section_id": "s2", - "heading": "UIプラグインの構造", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "UIプラグインのバージョンについて", + "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_plugin/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-reference_ui_plugin", - "base_name": "ui-framework-reference_ui_plugin", - "output_path": "component/ui-framework/ui-framework-reference_ui_plugin.json", - "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_plugin/", - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "nablarch-device-fix" - ] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_standard/index.rst", + "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/create_with_widget.rst", "format": "rst", - "filename": "index.rst", + "filename": "create_with_widget.rst", "type": "component", "category": "ui-framework", - "id": "ui-framework-reference_ui_standard--s1", - "base_name": "ui-framework-reference_ui_standard", - "output_path": "component/ui-framework/ui-framework-reference_ui_standard--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_standard--s1/", + "id": "ui-framework-create_with_widget--s1", + "base_name": "ui-framework-create_with_widget", + "output_path": "component/ui-framework/ui-framework-create_with_widget--s1.json", + "assets_dir": "component/ui-framework/assets/ui-framework-create_with_widget--s1/", "section_range": { "start_line": 0, - "end_line": 395, + "end_line": 326, "sections": [ + "画面のテンプレートを用意する", + "画面をブラウザで表示する", + "UI部品(ウィジェット)を配置していく", + "ウィジェットに定義されている属性について", + "画面遷移について", + "ウィジェットの作成について", + "入力画面と確認画面の共用", + "業務画面JSPの例", "", - "UI標準1.1. 対応する端末とブラウザ", - "", - "UI標準1.2. 使用技術", - "", - "UI標準2. 画面構成", - "", - "UI標準2.1. 端末の画面サイズと表示モード", - "", - "UI標準2.2. ワイド表示モードの画面構成", - "", - "UI標準2.3. コンパクト表示モードの画面構成", - "", - "UI標準2.4. ナロー表示モードの画面構成", "", - "UI標準2.5.画面内の入出力項目に関する共通仕様", "", - "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", "" ], "section_ids": [ @@ -34597,1307 +35476,982 @@ "s9", "s10", "s11", - "s12", - "s13", - "s14", - "s15", - "s16", - "s17", - "s18", - "s19" + "s12" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "ui-framework-reference_ui_standard", - "group_line_count": 395 + "total_parts": 1, + "original_id": "ui-framework-create_with_widget", + "group_line_count": 326 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "ui_standard_1_1" - ] + "heading": "画面のテンプレートを用意する", + "rst_labels": [] }, { "section_id": "s2", - "heading": "UI標準1.1. 対応する端末とブラウザ", - "rst_labels": [ - "ui_standard_1_2" - ] + "heading": "画面をブラウザで表示する", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "UI部品(ウィジェット)を配置していく", "rst_labels": [] }, { "section_id": "s4", - "heading": "UI標準1.2. 使用技術", - "rst_labels": [ - "ui_standard_2" - ] + "heading": "ウィジェットに定義されている属性について", + "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "画面遷移について", "rst_labels": [] }, { "section_id": "s6", - "heading": "UI標準2. 画面構成", - "rst_labels": [ - "ui_standard_2_1" - ] + "heading": "ウィジェットの作成について", + "rst_labels": [] }, { "section_id": "s7", - "heading": "", - "rst_labels": [] + "heading": "入力画面と確認画面の共用", + "rst_labels": [ + "example" + ] }, { "section_id": "s8", - "heading": "UI標準2.1. 端末の画面サイズと表示モード", + "heading": "業務画面JSPの例", "rst_labels": [] }, { "section_id": "s9", "heading": "", - "rst_labels": [] + "rst_labels": [ + "input" + ] }, { "section_id": "s10", - "heading": "UI標準2.2. ワイド表示モードの画面構成", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "UI標準2.3. コンパクト表示モードの画面構成", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "UI標準2.4. ナロー表示モードの画面構成", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s16", - "heading": "UI標準2.5.画面内の入出力項目に関する共通仕様", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "UI標準2.11. 共通エラー画面の構成", - "rst_labels": [] - }, - { - "section_id": "s21", "heading": "", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "UI標準3. UI部品 (UI部品カタログ)", - "rst_labels": [] + "rst_labels": [ + "confirm" + ] }, { - "section_id": "s23", + "section_id": "s11", "heading": "", - "rst_labels": [] + "rst_labels": [ + "list_search" + ] }, { - "section_id": "s24", - "heading": "開閉可能領域", - "rst_labels": [] + "section_id": "s12", + "heading": "", + "rst_labels": [ + "detail" + ] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_ui_standard/index.rst", + "source_path": ".lw/nab-official/v1.4/MessagingSimu/doc/index.rst", "format": "rst", "filename": "index.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-reference_ui_standard--s20", - "base_name": "ui-framework-reference_ui_standard", - "output_path": "component/ui-framework/ui-framework-reference_ui_standard--s20.json", - "assets_dir": "component/ui-framework/assets/ui-framework-reference_ui_standard--s20/", + "type": "guide", + "category": "biz-samples", + "id": "biz-samples-doc--s1", + "base_name": "biz-samples-doc", + "output_path": "guide/biz-samples/biz-samples-doc--s1.json", + "assets_dir": "guide/biz-samples/assets/biz-samples-doc--s1/", "section_range": { - "start_line": 395, - "end_line": 496, + "start_line": 0, + "end_line": 209, "sections": [ - "UI標準2.11. 共通エラー画面の構成", + "疎通テスト", + "結合テスト", + "負荷テスト", + "シミュレータがMOM同期応答メッセージ受信を行う場合", + "シミュレータがMOM同期応答メッセージ送信を行う場合", + "シミュレータがMOM応答不要メッセージ送信を行う場合", + "シミュレータがHTTPメッセージ受信を行う場合", + "シミュレータがHTTPメッセージ送信を行う場合", + "シミュレータがメッセージ受信する場合", + "シミュレータがメッセージ送信する場合", + "シミュレータがメッセージ受信する場合", + "シミュレータがメッセージ受信する場合", + "シミュレータがメッセージ送信する場合", "", - "UI標準3. UI部品 (UI部品カタログ)", + "動作イメージ", "", - "開閉可能領域" + "利用手順" ], "section_ids": [ - "s20", - "s21", - "s22", - "s23", - "s24" + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8", + "s9", + "s10", + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17" ] }, "split_info": { "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "ui-framework-reference_ui_standard", - "group_line_count": 101 + "part": 1, + "total_parts": 1, + "original_id": "biz-samples-doc", + "group_line_count": 209 }, "section_map": [ { "section_id": "s1", - "heading": "", - "rst_labels": [ - "ui_standard_1_1" - ] + "heading": "疎通テスト", + "rst_labels": [] }, { "section_id": "s2", - "heading": "UI標準1.1. 対応する端末とブラウザ", - "rst_labels": [ - "ui_standard_1_2" - ] + "heading": "結合テスト", + "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "負荷テスト", "rst_labels": [] }, { "section_id": "s4", - "heading": "UI標準1.2. 使用技術", - "rst_labels": [ - "ui_standard_2" - ] + "heading": "シミュレータがMOM同期応答メッセージ受信を行う場合", + "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "シミュレータがMOM同期応答メッセージ送信を行う場合", "rst_labels": [] }, { "section_id": "s6", - "heading": "UI標準2. 画面構成", - "rst_labels": [ - "ui_standard_2_1" - ] + "heading": "シミュレータがMOM応答不要メッセージ送信を行う場合", + "rst_labels": [] }, { "section_id": "s7", - "heading": "", + "heading": "シミュレータがHTTPメッセージ受信を行う場合", "rst_labels": [] }, { "section_id": "s8", - "heading": "UI標準2.1. 端末の画面サイズと表示モード", + "heading": "シミュレータがHTTPメッセージ送信を行う場合", "rst_labels": [] }, { "section_id": "s9", - "heading": "", + "heading": "シミュレータがメッセージ受信する場合", "rst_labels": [] }, { "section_id": "s10", - "heading": "UI標準2.2. ワイド表示モードの画面構成", + "heading": "シミュレータがメッセージ送信する場合", "rst_labels": [] }, { "section_id": "s11", - "heading": "", + "heading": "シミュレータがメッセージ受信する場合", "rst_labels": [] }, { "section_id": "s12", - "heading": "UI標準2.3. コンパクト表示モードの画面構成", + "heading": "シミュレータがメッセージ受信する場合", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "シミュレータがメッセージ送信する場合", "rst_labels": [] }, { "section_id": "s14", - "heading": "UI標準2.4. ナロー表示モードの画面構成", + "heading": "", "rst_labels": [] }, { "section_id": "s15", - "heading": "", + "heading": "動作イメージ", "rst_labels": [] }, { "section_id": "s16", - "heading": "UI標準2.5.画面内の入出力項目に関する共通仕様", - "rst_labels": [] - }, - { - "section_id": "s17", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s18", - "heading": "UI標準2.6. WEB標準に準拠しないブラウザでの表示制約", - "rst_labels": [] - }, - { - "section_id": "s19", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s20", - "heading": "UI標準2.11. 共通エラー画面の構成", - "rst_labels": [] - }, - { - "section_id": "s21", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s22", - "heading": "UI標準3. UI部品 (UI部品カタログ)", - "rst_labels": [] - }, - { - "section_id": "s23", "heading": "", "rst_labels": [] }, { - "section_id": "s24", - "heading": "開閉可能領域", + "section_id": "s17", + "heading": "利用手順", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_title.rst", - "format": "rst", - "filename": "box_title.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-box_title", - "base_name": "ui-framework-box_title", - "output_path": "component/ui-framework/ui-framework-box_title.json", - "assets_dir": "component/ui-framework/assets/ui-framework-box_title/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_label.rst", - "format": "rst", - "filename": "column_label.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-column_label", - "base_name": "ui-framework-column_label", - "output_path": "component/ui-framework/ui-framework-column_label.json", - "assets_dir": "component/ui-framework/assets/ui-framework-column_label/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_block.rst", - "format": "rst", - "filename": "field_label_block.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_label_block", - "base_name": "ui-framework-field_label_block", - "output_path": "component/ui-framework/ui-framework-field_label_block.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_label_block/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_condition.rst", - "format": "rst", - "filename": "spec_condition.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_condition", - "base_name": "ui-framework-spec_condition", - "output_path": "component/ui-framework/ui-framework-spec_condition.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_condition/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_checkbox.rst", - "format": "rst", - "filename": "column_checkbox.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-column_checkbox", - "base_name": "ui-framework-column_checkbox", - "output_path": "component/ui-framework/ui-framework-column_checkbox.json", - "assets_dir": "component/ui-framework/assets/ui-framework-column_checkbox/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_checkbox.rst", - "format": "rst", - "filename": "field_checkbox.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_checkbox", - "base_name": "ui-framework-field_checkbox", - "output_path": "component/ui-framework/ui-framework-field_checkbox.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_checkbox/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/button_submit.rst", + "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", "format": "rst", - "filename": "button_submit.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-button_submit--s1", - "base_name": "ui-framework-button_submit", - "output_path": "component/ui-framework/ui-framework-button_submit--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-button_submit--s1/", + "filename": "index.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-top-nablarch--s1", + "base_name": "about-nablarch-top-nablarch", + "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s1.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s1/", "section_range": { "start_line": 0, - "end_line": 185, + "end_line": 11, "sections": [ - "**共通属性**", - "**共通属性(ポップアップを除く)**", - "**ポップアップ・汎用ボタンのみの属性**", - "**ポップアップボタンのみの属性**", - "**特定ボタン固有の属性**" + "" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" + "s1" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "ui-framework-button_submit", - "group_line_count": 185 + "total_parts": 3, + "original_id": "about-nablarch-top-nablarch", + "group_line_count": 11 }, "section_map": [ { "section_id": "s1", - "heading": "**共通属性**", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "**共通属性(ポップアップを除く)**", + "heading": "フォルダ構成", "rst_labels": [] }, { "section_id": "s3", - "heading": "**ポップアップ・汎用ボタンのみの属性**", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "**ポップアップボタンのみの属性**", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "**特定ボタン固有の属性**", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_send_request.rst", - "format": "rst", - "filename": "event_send_request.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_send_request", - "base_name": "ui-framework-event_send_request", - "output_path": "component/ui-framework/ui-framework-event_send_request.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_send_request/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-reference_jsp_widgets", - "base_name": "ui-framework-reference_jsp_widgets", - "output_path": "component/ui-framework/ui-framework-reference_jsp_widgets.json", - "assets_dir": "component/ui-framework/assets/ui-framework-reference_jsp_widgets/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_alert.rst", - "format": "rst", - "filename": "event_alert.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_alert", - "base_name": "ui-framework-event_alert", - "output_path": "component/ui-framework/ui-framework-event_alert.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_alert/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_id_value.rst", - "format": "rst", - "filename": "field_label_id_value.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_label_id_value", - "base_name": "ui-framework-field_label_id_value", - "output_path": "component/ui-framework/ui-framework-field_label_id_value.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_label_id_value/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_radio.rst", - "format": "rst", - "filename": "column_radio.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-column_radio", - "base_name": "ui-framework-column_radio", - "output_path": "component/ui-framework/ui-framework-column_radio.json", - "assets_dir": "component/ui-framework/assets/ui-framework-column_radio/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label.rst", - "format": "rst", - "filename": "field_label.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_label", - "base_name": "ui-framework-field_label", - "output_path": "component/ui-framework/ui-framework-field_label.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_label/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_row.rst", - "format": "rst", - "filename": "table_row.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-table_row", - "base_name": "ui-framework-table_row", - "output_path": "component/ui-framework/ui-framework-table_row.json", - "assets_dir": "component/ui-framework/assets/ui-framework-table_row/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/button_block.rst", - "format": "rst", - "filename": "button_block.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-button_block", - "base_name": "ui-framework-button_block", - "output_path": "component/ui-framework/ui-framework-button_block.json", - "assets_dir": "component/ui-framework/assets/ui-framework-button_block/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_code.rst", - "format": "rst", - "filename": "column_code.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-column_code", - "base_name": "ui-framework-column_code", - "output_path": "component/ui-framework/ui-framework-column_code.json", - "assets_dir": "component/ui-framework/assets/ui-framework-column_code/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_hint.rst", - "format": "rst", - "filename": "field_hint.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_hint", - "base_name": "ui-framework-field_hint", - "output_path": "component/ui-framework/ui-framework-field_hint.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_hint/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_readonly.rst", - "format": "rst", - "filename": "event_toggle_readonly.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_toggle_readonly", - "base_name": "ui-framework-event_toggle_readonly", - "output_path": "component/ui-framework/ui-framework-event_toggle_readonly.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_readonly/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/column_link.rst", - "format": "rst", - "filename": "column_link.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-column_link", - "base_name": "ui-framework-column_link", - "output_path": "component/ui-framework/ui-framework-column_link.json", - "assets_dir": "component/ui-framework/assets/ui-framework-column_link/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_img.rst", - "format": "rst", - "filename": "box_img.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-box_img", - "base_name": "ui-framework-box_img", - "output_path": "component/ui-framework/ui-framework-box_img.json", - "assets_dir": "component/ui-framework/assets/ui-framework-box_img/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_desc.rst", - "format": "rst", - "filename": "spec_desc.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_desc", - "base_name": "ui-framework-spec_desc", - "output_path": "component/ui-framework/ui-framework-spec_desc.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_desc/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_password.rst", - "format": "rst", - "filename": "field_password.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_password", - "base_name": "ui-framework-field_password", - "output_path": "component/ui-framework/ui-framework-field_password.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_password/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_pulldown.rst", - "format": "rst", - "filename": "field_pulldown.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_pulldown", - "base_name": "ui-framework-field_pulldown", - "output_path": "component/ui-framework/ui-framework-field_pulldown.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_pulldown/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_listen_subwindow.rst", - "format": "rst", - "filename": "event_listen_subwindow.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_listen_subwindow", - "base_name": "ui-framework-event_listen_subwindow", - "output_path": "component/ui-framework/ui-framework-event_listen_subwindow.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_listen_subwindow/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_block.rst", - "format": "rst", - "filename": "field_block.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_block", - "base_name": "ui-framework-field_block", - "output_path": "component/ui-framework/ui-framework-field_block.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_block/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_file.rst", - "format": "rst", - "filename": "field_file.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_file", - "base_name": "ui-framework-field_file", - "output_path": "component/ui-framework/ui-framework-field_file.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_file/", - "section_map": [] + "heading": "コンテンツの見方", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/link_submit.rst", + "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", "format": "rst", - "filename": "link_submit.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-link_submit--s1", - "base_name": "ui-framework-link_submit", - "output_path": "component/ui-framework/ui-framework-link_submit--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-link_submit--s1/", + "filename": "index.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-top-nablarch--s2", + "base_name": "about-nablarch-top-nablarch", + "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s2.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s2/", "section_range": { - "start_line": 0, - "end_line": 93, + "start_line": 11, + "end_line": 858, "sections": [ - "共通属性", - "汎用リンクのみの属性", - "ポップアップリンクのみの属性" + "フォルダ構成" ], "section_ids": [ - "s1", - "s2", - "s3" + "s2" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-link_submit", - "group_line_count": 93 + "part": 2, + "total_parts": 3, + "original_id": "about-nablarch-top-nablarch", + "group_line_count": 847 }, "section_map": [ { "section_id": "s1", - "heading": "共通属性", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "汎用リンクのみの属性", + "heading": "フォルダ構成", "rst_labels": [] }, { "section_id": "s3", - "heading": "ポップアップリンクのみの属性", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "コンテンツの見方", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_pulldown.rst", - "format": "rst", - "filename": "field_code_pulldown.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_code_pulldown", - "base_name": "ui-framework-field_code_pulldown", - "output_path": "component/ui-framework/ui-framework-field_code_pulldown.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_code_pulldown/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_textarea.rst", - "format": "rst", - "filename": "field_textarea.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_textarea", - "base_name": "ui-framework-field_textarea", - "output_path": "component/ui-framework/ui-framework-field_textarea.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_textarea/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_write_to.rst", - "format": "rst", - "filename": "event_write_to.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_write_to", - "base_name": "ui-framework-event_write_to", - "output_path": "component/ui-framework/ui-framework-event_write_to.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_write_to/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_author.rst", - "format": "rst", - "filename": "spec_author.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_author", - "base_name": "ui-framework-spec_author", - "output_path": "component/ui-framework/ui-framework-spec_author.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_author/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_base.rst", - "format": "rst", - "filename": "field_base.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_base", - "base_name": "ui-framework-field_base", - "output_path": "component/ui-framework/ui-framework-field_base.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_base/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_listen.rst", - "format": "rst", - "filename": "event_listen.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_listen", - "base_name": "ui-framework-event_listen", - "output_path": "component/ui-framework/ui-framework-event_listen.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_listen/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_radio.rst", - "format": "rst", - "filename": "field_code_radio.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_code_radio", - "base_name": "ui-framework-field_code_radio", - "output_path": "component/ui-framework/ui-framework-field_code_radio.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_code_radio/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_layout.rst", - "format": "rst", - "filename": "spec_layout.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_layout", - "base_name": "ui-framework-spec_layout", - "output_path": "component/ui-framework/ui-framework-spec_layout.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_layout/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_calendar.rst", - "format": "rst", - "filename": "field_calendar.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_calendar", - "base_name": "ui-framework-field_calendar", - "output_path": "component/ui-framework/ui-framework-field_calendar.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_calendar/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_search_result.rst", - "format": "rst", - "filename": "table_search_result.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-table_search_result", - "base_name": "ui-framework-table_search_result", - "output_path": "component/ui-framework/ui-framework-table_search_result.json", - "assets_dir": "component/ui-framework/assets/ui-framework-table_search_result/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_confirm.rst", - "format": "rst", - "filename": "event_confirm.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_confirm", - "base_name": "ui-framework-event_confirm", - "output_path": "component/ui-framework/ui-framework-event_confirm.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_confirm/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_updated_date.rst", + "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", "format": "rst", - "filename": "spec_updated_date.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_updated_date", - "base_name": "ui-framework-spec_updated_date", - "output_path": "component/ui-framework/ui-framework-spec_updated_date.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_updated_date/", - "section_map": [] + "filename": "index.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-top-nablarch--s3", + "base_name": "about-nablarch-top-nablarch", + "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s3.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s3/", + "section_range": { + "start_line": 858, + "end_line": 906, + "sections": [ + "", + "コンテンツの見方" + ], + "section_ids": [ + "s3", + "s4" + ] + }, + "split_info": { + "is_split": true, + "part": 3, + "total_parts": 3, + "original_id": "about-nablarch-top-nablarch", + "group_line_count": 48 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "フォルダ構成", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "コンテンツの見方", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_listbuilder.rst", + "source_path": ".lw/nab-official/v1.4/document/guide/03_DevelopmentStep/09_confirm_operation.rst", "format": "rst", - "filename": "field_listbuilder.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_listbuilder", - "base_name": "ui-framework-field_listbuilder", - "output_path": "component/ui-framework/ui-framework-field_listbuilder.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_listbuilder/", - "section_map": [] + "filename": "09_confirm_operation.rst", + "type": "guide", + "category": "web-application", + "id": "web-application-09_confirm_operation", + "base_name": "web-application-09_confirm_operation", + "output_path": "guide/web-application/web-application-09_confirm_operation.json", + "assets_dir": "guide/web-application/assets/web-application-09_confirm_operation/", + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "動作確認の実施", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_property.rst", + "source_path": ".lw/nab-official/v1.4/document/guide/03_DevelopmentStep/02_flow.rst", "format": "rst", - "filename": "event_toggle_property.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_toggle_property", - "base_name": "ui-framework-event_toggle_property", - "output_path": "component/ui-framework/ui-framework-event_toggle_property.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_property/", - "section_map": [] + "filename": "02_flow.rst", + "type": "guide", + "category": "web-application", + "id": "web-application-02_flow", + "base_name": "web-application-02_flow", + "output_path": "guide/web-application/web-application-02_flow.json", + "assets_dir": "guide/web-application/assets/web-application-02_flow/", + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "開発フロー", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/tab_group.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", "format": "rst", - "filename": "tab_group.rst", + "filename": "01_FailureLog.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-tab_group--s1", - "base_name": "ui-framework-tab_group", - "output_path": "component/ui-framework/ui-framework-tab_group--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-tab_group--s1/", + "category": "libraries", + "id": "libraries-01_FailureLog--s1", + "base_name": "libraries-01_FailureLog", + "output_path": "component/libraries/libraries-01_FailureLog--s1.json", + "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s1/", "section_range": { "start_line": 0, - "end_line": 132, + "end_line": 389, "sections": [ - "****", - "****", - "****" + "", + "障害ログの出力方針", + "障害ログの出力項目", + "障害ログの出力方法", + "障害ログの設定方法", + "障害ログの出力例" ], "section_ids": [ "s1", "s2", - "s3" + "s3", + "s4", + "s5", + "s6" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "ui-framework-tab_group", - "group_line_count": 132 + "total_parts": 3, + "original_id": "libraries-01_FailureLog", + "group_line_count": 389 }, "section_map": [ { "section_id": "s1", - "heading": "****", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "****", + "heading": "障害ログの出力方針", "rst_labels": [] }, { "section_id": "s3", - "heading": "****", + "heading": "障害ログの出力項目", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_toggle_disabled.rst", - "format": "rst", - "filename": "event_toggle_disabled.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_toggle_disabled", - "base_name": "ui-framework-event_toggle_disabled", - "output_path": "component/ui-framework/ui-framework-event_toggle_disabled.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_toggle_disabled/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_treelist.rst", - "format": "rst", - "filename": "table_treelist.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-table_treelist", - "base_name": "ui-framework-table_treelist", - "output_path": "component/ui-framework/ui-framework-table_treelist.json", - "assets_dir": "component/ui-framework/assets/ui-framework-table_treelist/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_radio.rst", - "format": "rst", - "filename": "field_radio.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_radio", - "base_name": "ui-framework-field_radio", - "output_path": "component/ui-framework/ui-framework-field_radio.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_radio/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/box_content.rst", - "format": "rst", - "filename": "box_content.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-box_content", - "base_name": "ui-framework-box_content", - "output_path": "component/ui-framework/ui-framework-box_content.json", - "assets_dir": "component/ui-framework/assets/ui-framework-box_content/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/table_plain.rst", - "format": "rst", - "filename": "table_plain.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-table_plain", - "base_name": "ui-framework-table_plain", - "output_path": "component/ui-framework/ui-framework-table_plain.json", - "assets_dir": "component/ui-framework/assets/ui-framework-table_plain/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_created_date.rst", - "format": "rst", - "filename": "spec_created_date.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_created_date", - "base_name": "ui-framework-spec_created_date", - "output_path": "component/ui-framework/ui-framework-spec_created_date.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_created_date/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_text.rst", - "format": "rst", - "filename": "field_text.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_text", - "base_name": "ui-framework-field_text", - "output_path": "component/ui-framework/ui-framework-field_text.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_text/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_validation.rst", - "format": "rst", - "filename": "spec_validation.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_validation", - "base_name": "ui-framework-spec_validation", - "output_path": "component/ui-framework/ui-framework-spec_validation.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_validation/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_label_code.rst", - "format": "rst", - "filename": "field_label_code.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_label_code", - "base_name": "ui-framework-field_label_code", - "output_path": "component/ui-framework/ui-framework-field_label_code.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_label_code/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/event_window_close.rst", - "format": "rst", - "filename": "event_window_close.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-event_window_close", - "base_name": "ui-framework-event_window_close", - "output_path": "component/ui-framework/ui-framework-event_window_close.json", - "assets_dir": "component/ui-framework/assets/ui-framework-event_window_close/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/field_code_checkbox.rst", - "format": "rst", - "filename": "field_code_checkbox.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-field_code_checkbox", - "base_name": "ui-framework-field_code_checkbox", - "output_path": "component/ui-framework/ui-framework-field_code_checkbox.json", - "assets_dir": "component/ui-framework/assets/ui-framework-field_code_checkbox/", - "section_map": [] + }, + { + "section_id": "s4", + "heading": "障害ログの出力方法", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "障害ログの設定方法", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "障害ログの出力例", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "障害の連絡先情報の追加方法", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "アプリケーションの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "フレームワークの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "派生元実行時情報の出力方法", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "プレースホルダのカスタマイズ方法", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/reference_jsp_widgets/spec_updated_by.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", "format": "rst", - "filename": "spec_updated_by.rst", + "filename": "01_FailureLog.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-spec_updated_by", - "base_name": "ui-framework-spec_updated_by", - "output_path": "component/ui-framework/ui-framework-spec_updated_by.json", - "assets_dir": "component/ui-framework/assets/ui-framework-spec_updated_by/", - "section_map": [] + "category": "libraries", + "id": "libraries-01_FailureLog--s7", + "base_name": "libraries-01_FailureLog", + "output_path": "component/libraries/libraries-01_FailureLog--s7.json", + "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s7/", + "section_range": { + "start_line": 389, + "end_line": 700, + "sections": [ + "障害の連絡先情報の追加方法", + "アプリケーションの障害コードの変更方法", + "フレームワークの障害コードの変更方法", + "派生元実行時情報の出力方法" + ], + "section_ids": [ + "s7", + "s8", + "s9", + "s10" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 3, + "original_id": "libraries-01_FailureLog", + "group_line_count": 311 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "障害ログの出力方針", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "障害ログの出力項目", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "障害ログの出力方法", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "障害ログの設定方法", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "障害ログの出力例", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "障害の連絡先情報の追加方法", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "アプリケーションの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "フレームワークの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "派生元実行時情報の出力方法", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "プレースホルダのカスタマイズ方法", + "rst_labels": [] + } + ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/ui_development_workflow.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", "format": "rst", - "filename": "ui_development_workflow.rst", + "filename": "01_FailureLog.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-ui_development_workflow--s1", - "base_name": "ui-framework-ui_development_workflow", - "output_path": "component/ui-framework/ui-framework-ui_development_workflow--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-ui_development_workflow--s1/", + "category": "libraries", + "id": "libraries-01_FailureLog--s11", + "base_name": "libraries-01_FailureLog", + "output_path": "component/libraries/libraries-01_FailureLog--s11.json", + "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s11/", "section_range": { - "start_line": 0, - "end_line": 49, + "start_line": 700, + "end_line": 810, "sections": [ - "", - "UI開発ワークフロー" + "プレースホルダのカスタマイズ方法" ], "section_ids": [ - "s1", - "s2" + "s11" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-ui_development_workflow", - "group_line_count": 49 + "part": 3, + "total_parts": 3, + "original_id": "libraries-01_FailureLog", + "group_line_count": 110 }, "section_map": [ { - "section_id": "s1", + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "障害ログの出力方針", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "障害ログの出力項目", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "障害ログの出力方法", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "障害ログの設定方法", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "障害ログの出力例", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "障害の連絡先情報の追加方法", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "アプリケーションの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "フレームワークの障害コードの変更方法", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "派生元実行時情報の出力方法", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "プレースホルダのカスタマイズ方法", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/01_SystemConstitution/02_I18N.rst", + "format": "rst", + "filename": "02_I18N.rst", + "type": "about", + "category": "about-nablarch", + "id": "about-nablarch-02_I18N", + "base_name": "about-nablarch-02_I18N", + "output_path": "about/about-nablarch/about-nablarch-02_I18N.json", + "assets_dir": "about/about-nablarch/assets/about-nablarch-02_I18N/", + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "RDBMS上データの保持方法", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "言語を指定した取得方法", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "フレームワーク内で作成するログ出力メッセージの使用言語", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "ファイル入出力の文字コード", + "rst_labels": [ + "i18n_lang_select_keep" + ] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "言語の選択と保持", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "タイムゾーンの選択と保持", + "rst_labels": [] + }, + { + "section_id": "s13", "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "UI開発ワークフロー", + "section_id": "s14", + "heading": "JSPファイルおよび静的ファイルのパス", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/required_knowledge.rst", - "format": "rst", - "filename": "required_knowledge.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-required_knowledge", - "base_name": "ui-framework-required_knowledge", - "output_path": "component/ui-framework/ui-framework-required_knowledge.json", - "assets_dir": "component/ui-framework/assets/ui-framework-required_knowledge/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/grand_design.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/common_library/file_upload_utility.rst", "format": "rst", - "filename": "grand_design.rst", + "filename": "file_upload_utility.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-grand_design--s1", - "base_name": "ui-framework-grand_design", - "output_path": "component/ui-framework/ui-framework-grand_design--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-grand_design--s1/", - "section_range": { - "start_line": 0, - "end_line": 118, - "sections": [ - "", - "業務画面JSPの記述", - "", - "UI標準と共通部品" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-grand_design", - "group_line_count": 118 - }, + "category": "libraries", + "id": "libraries-file_upload_utility", + "base_name": "libraries-file_upload_utility", + "output_path": "component/libraries/libraries-file_upload_utility.json", + "assets_dir": "component/libraries/assets/libraries-file_upload_utility/", "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s2", - "heading": "業務画面JSPの記述", + "heading": "", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "使用方法", "rst_labels": [] }, { "section_id": "s4", - "heading": "UI標準と共通部品", + "heading": "フォーマット定義ファイルパスの指定", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "精査エラー発生時のメッセージID指定", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "精査処理を実装したクラス、メソッドの指定", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "データベース一括登録", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "データベース一括登録(独自実装)", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/introduction/intention.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/mail.rst", "format": "rst", - "filename": "intention.rst", + "filename": "mail.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-intention--s1", - "base_name": "ui-framework-intention", - "output_path": "component/ui-framework/ui-framework-intention--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-intention--s1/", + "category": "libraries", + "id": "libraries-mail--s1", + "base_name": "libraries-mail", + "output_path": "component/libraries/libraries-mail--s1.json", + "assets_dir": "component/libraries/assets/libraries-mail--s1/", "section_range": { "start_line": 0, - "end_line": 128, + "end_line": 305, "sections": [ - "問題点", - "アプローチ", - "メリット", - "問題点", - "アプローチ", - "メリット" + "クラス図", + "各クラスの責務", + "テーブル定義", + "メール送信要求", + "メール送信要求実装例" ], "section_ids": [ "s1", "s2", "s3", "s4", - "s5", - "s6" + "s5" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "ui-framework-intention", - "group_line_count": 128 + "total_parts": 2, + "original_id": "libraries-mail", + "group_line_count": 305 }, "section_map": [ { "section_id": "s1", - "heading": "問題点", + "heading": "クラス図", "rst_labels": [] }, { "section_id": "s2", - "heading": "アプローチ", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s3", - "heading": "メリット", + "heading": "テーブル定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "問題点", + "heading": "メール送信要求", "rst_labels": [] }, { "section_id": "s5", - "heading": "アプローチ", + "heading": "メール送信要求実装例", "rst_labels": [] }, { "section_id": "s6", - "heading": "メリット", + "heading": "共通設定項目", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "メール送信要求API用設定項目", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "逐次メール送信バッチ用設定項目", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "nablarch.common.mail.MailRequestTableの設定", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "nablarch.common.mail.MailRecipientTableの設定(全て必須)", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", + "rst_labels": [] + }, + { + "section_id": "s12", + "heading": "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", + "rst_labels": [] + }, + { + "section_id": "s13", + "heading": "nablarch.common.mail.MailConfigの設定", + "rst_labels": [] + }, + { + "section_id": "s14", + "heading": "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "nablarch.common.mail.MailSessionConfigの設定", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/jsp_widgets.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/mail.rst", "format": "rst", - "filename": "jsp_widgets.rst", + "filename": "mail.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-jsp_widgets--s1", - "base_name": "ui-framework-jsp_widgets", - "output_path": "component/ui-framework/ui-framework-jsp_widgets--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-jsp_widgets--s1/", + "category": "libraries", + "id": "libraries-mail--s6", + "base_name": "libraries-mail", + "output_path": "component/libraries/libraries-mail--s6.json", + "assets_dir": "component/libraries/assets/libraries-mail--s6/", "section_range": { - "start_line": 0, - "end_line": 345, + "start_line": 305, + "end_line": 699, "sections": [ - "", - "概要", - "", - "構造", - "**buttonタグ**", - "**fieldタグ**", - "**linkタグ**", - "**tabタグ**", - "**tableタグ**", - "**columnタグ**", - "**boxタグ**", - "", - "ローカル動作時の挙動" + "共通設定項目", + "メール送信要求API用設定項目", + "逐次メール送信バッチ用設定項目", + "nablarch.common.mail.MailRequestTableの設定", + "nablarch.common.mail.MailRecipientTableの設定(全て必須)", + "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", + "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", + "nablarch.common.mail.MailConfigの設定", + "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", + "nablarch.common.mail.MailSessionConfigの設定" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", "s6", "s7", "s8", @@ -35905,154 +36459,122 @@ "s10", "s11", "s12", - "s13" + "s13", + "s14", + "s15" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-jsp_widgets", - "group_line_count": 345 + "part": 2, + "total_parts": 2, + "original_id": "libraries-mail", + "group_line_count": 394 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "クラス図", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "各クラスの責務", "rst_labels": [] }, { "section_id": "s3", - "heading": "", + "heading": "テーブル定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "構造", + "heading": "メール送信要求", "rst_labels": [] }, { "section_id": "s5", - "heading": "**buttonタグ**", + "heading": "メール送信要求実装例", "rst_labels": [] }, { "section_id": "s6", - "heading": "**fieldタグ**", + "heading": "共通設定項目", "rst_labels": [] }, { "section_id": "s7", - "heading": "**linkタグ**", + "heading": "メール送信要求API用設定項目", "rst_labels": [] }, { "section_id": "s8", - "heading": "**tabタグ**", + "heading": "逐次メール送信バッチ用設定項目", "rst_labels": [] }, { "section_id": "s9", - "heading": "**tableタグ**", + "heading": "nablarch.common.mail.MailRequestTableの設定", "rst_labels": [] }, { "section_id": "s10", - "heading": "**columnタグ**", + "heading": "nablarch.common.mail.MailRecipientTableの設定(全て必須)", "rst_labels": [] }, { "section_id": "s11", - "heading": "**boxタグ**", + "heading": "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", "rst_labels": [] }, { "section_id": "s12", - "heading": "", + "heading": "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", "rst_labels": [] }, { "section_id": "s13", - "heading": "ローカル動作時の挙動", + "heading": "nablarch.common.mail.MailConfigの設定", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/configuration_files.rst", - "format": "rst", - "filename": "configuration_files.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-configuration_files--s1", - "base_name": "ui-framework-configuration_files", - "output_path": "component/ui-framework/ui-framework-configuration_files--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-configuration_files--s1/", - "section_range": { - "start_line": 0, - "end_line": 74, - "sections": [ - "", - "タグ定義" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-configuration_files", - "group_line_count": 74 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s14", + "heading": "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", "rst_labels": [] }, { - "section_id": "s2", - "heading": "タグ定義", + "section_id": "s15", + "heading": "nablarch.common.mail.MailSessionConfigの設定", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/css_framework.rst", + "source_path": ".lw/nab-official/v1.4/document/tool/08_DefInfoGenerator/01_DefInfoGenerator.rst", "format": "rst", - "filename": "css_framework.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-css_framework--s1", - "base_name": "ui-framework-css_framework", - "output_path": "component/ui-framework/ui-framework-css_framework--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-css_framework--s1/", + "filename": "01_DefInfoGenerator.rst", + "type": "development-tools", + "category": "toolbox", + "id": "toolbox-01_DefInfoGenerator--s1", + "base_name": "toolbox-01_DefInfoGenerator", + "output_path": "development-tools/toolbox/toolbox-01_DefInfoGenerator--s1.json", + "assets_dir": "development-tools/toolbox/assets/toolbox-01_DefInfoGenerator--s1/", "section_range": { "start_line": 0, - "end_line": 243, + "end_line": 363, "sections": [ + "**出力ファイル毎の設定ファイル**", + "**共通の設定ファイル**", "", - "概要", - "", - "表示モード切替え", - "", - "ファイル構成", - "構成ファイル一覧", - "**ビルド済みCSSファイル**", - "**LESSファイル**", - "", - "グリッドベースレイアウト", - "グリッドレイアウトフレームワークの使用方法", + "環境設定ファイル", + "入力となる設計書に関する設定", + "ファイル生成に関する設定", "", - "アイコンの使用" + "コンポーネント定義ファイル", + "入力ファイル読み取り設定", + "メッセージ設計書の読込設定", + "テーブル定義書の読込設定", + "コード設計書の読込設定" ], "section_ids": [ "s1", @@ -36066,30 +36588,26 @@ "s9", "s10", "s11", - "s12", - "s13", - "s14" + "s12" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "ui-framework-css_framework", - "group_line_count": 243 + "total_parts": 2, + "original_id": "toolbox-01_DefInfoGenerator", + "group_line_count": 363 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "**出力ファイル毎の設定ファイル**", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", - "rst_labels": [ - "display_mode" - ] + "heading": "**共通の設定ファイル**", + "rst_labels": [] }, { "section_id": "s3", @@ -36098,133 +36616,196 @@ }, { "section_id": "s4", - "heading": "表示モード切替え", + "heading": "環境設定ファイル", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "入力となる設計書に関する設定", "rst_labels": [] }, { "section_id": "s6", - "heading": "ファイル構成", + "heading": "ファイル生成に関する設定", "rst_labels": [] }, { "section_id": "s7", - "heading": "構成ファイル一覧", + "heading": "", "rst_labels": [] }, { "section_id": "s8", - "heading": "**ビルド済みCSSファイル**", + "heading": "コンポーネント定義ファイル", "rst_labels": [] }, { "section_id": "s9", - "heading": "**LESSファイル**", + "heading": "入力ファイル読み取り設定", "rst_labels": [] }, { "section_id": "s10", - "heading": "", + "heading": "メッセージ設計書の読込設定", "rst_labels": [] }, { "section_id": "s11", - "heading": "グリッドベースレイアウト", + "heading": "テーブル定義書の読込設定", "rst_labels": [] }, { "section_id": "s12", - "heading": "グリッドレイアウトフレームワークの使用方法", + "heading": "コード設計書の読込設定", "rst_labels": [] }, { "section_id": "s13", - "heading": "", + "heading": "外部インターフェース設計書の読込設定", "rst_labels": [] }, { "section_id": "s14", - "heading": "アイコンの使用", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s15", + "heading": "出力形式", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "メッセージ設計", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "ドメイン定義", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "精査処理定義", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "データタイプ定義", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "テーブル定義", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "コード設計", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "外部インターフェース設計", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "定義データの出力仕様", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "エスケープ処理", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/inbrowser_jsp_rendering.rst", + "source_path": ".lw/nab-official/v1.4/document/tool/08_DefInfoGenerator/01_DefInfoGenerator.rst", "format": "rst", - "filename": "inbrowser_jsp_rendering.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-inbrowser_jsp_rendering--s1", - "base_name": "ui-framework-inbrowser_jsp_rendering", - "output_path": "component/ui-framework/ui-framework-inbrowser_jsp_rendering--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-inbrowser_jsp_rendering--s1/", + "filename": "01_DefInfoGenerator.rst", + "type": "development-tools", + "category": "toolbox", + "id": "toolbox-01_DefInfoGenerator--s13", + "base_name": "toolbox-01_DefInfoGenerator", + "output_path": "development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json", + "assets_dir": "development-tools/toolbox/assets/toolbox-01_DefInfoGenerator--s13/", "section_range": { - "start_line": 0, - "end_line": 275, + "start_line": 363, + "end_line": 664, "sections": [ + "外部インターフェース設計書の読込設定", "", - "概要", - "ローカルJSPレンダリング機能の有効化", - "業務画面JSPを記述する際の制約事項", - "", - "ローカル表示の仕組み", + "出力形式", + "メッセージ設計", + "ドメイン定義", + "精査処理定義", + "データタイプ定義", + "テーブル定義", + "コード設計", + "外部インターフェース設計", "", - "構造", - "構成ファイル一覧" + "定義データの出力仕様", + "エスケープ処理" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9" + "s13", + "s14", + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21", + "s22", + "s23", + "s24", + "s25" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-inbrowser_jsp_rendering", - "group_line_count": 275 + "part": 2, + "total_parts": 2, + "original_id": "toolbox-01_DefInfoGenerator", + "group_line_count": 301 }, "section_map": [ { "section_id": "s1", - "heading": "", + "heading": "**出力ファイル毎の設定ファイル**", "rst_labels": [] }, { "section_id": "s2", - "heading": "概要", + "heading": "**共通の設定ファイル**", "rst_labels": [] }, { "section_id": "s3", - "heading": "ローカルJSPレンダリング機能の有効化", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "業務画面JSPを記述する際の制約事項", + "heading": "環境設定ファイル", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "入力となる設計書に関する設定", "rst_labels": [] }, { "section_id": "s6", - "heading": "ローカル表示の仕組み", + "heading": "ファイル生成に関する設定", "rst_labels": [] }, { @@ -36234,227 +36815,119 @@ }, { "section_id": "s8", - "heading": "構造", + "heading": "コンポーネント定義ファイル", "rst_labels": [] }, { "section_id": "s9", - "heading": "構成ファイル一覧", + "heading": "入力ファイル読み取り設定", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/multicol_css_framework.rst", - "format": "rst", - "filename": "multicol_css_framework.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-multicol_css_framework--s1", - "base_name": "ui-framework-multicol_css_framework", - "output_path": "component/ui-framework/ui-framework-multicol_css_framework--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-multicol_css_framework--s1/", - "section_range": { - "start_line": 0, - "end_line": 274, - "sections": [ - "", - "概要", - "", - "制約事項", - "", - "マルチレイアウトモードの適用方法", - "", - "レイアウトの調整方法", - "" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "ui-framework-multicol_css_framework", - "group_line_count": 274 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "multicol_mode" - ] }, { - "section_id": "s2", - "heading": "概要", + "section_id": "s10", + "heading": "メッセージ設計書の読込設定", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s11", + "heading": "テーブル定義書の読込設定", "rst_labels": [] }, { - "section_id": "s4", - "heading": "制約事項", - "rst_labels": [ - "apply-multicol-layout" - ] - }, - { - "section_id": "s5", - "heading": "", + "section_id": "s12", + "heading": "コード設計書の読込設定", "rst_labels": [] }, { - "section_id": "s6", - "heading": "マルチレイアウトモードの適用方法", + "section_id": "s13", + "heading": "外部インターフェース設計書の読込設定", "rst_labels": [] }, { - "section_id": "s7", + "section_id": "s14", "heading": "", "rst_labels": [] }, { - "section_id": "s8", - "heading": "レイアウトの調整方法", + "section_id": "s15", + "heading": "出力形式", "rst_labels": [] }, { - "section_id": "s9", - "heading": "", + "section_id": "s16", + "heading": "メッセージ設計", "rst_labels": [] }, { - "section_id": "s10", - "heading": "使用例", + "section_id": "s17", + "heading": "ドメイン定義", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/multicol_css_framework.rst", - "format": "rst", - "filename": "multicol_css_framework.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-multicol_css_framework--s10", - "base_name": "ui-framework-multicol_css_framework", - "output_path": "component/ui-framework/ui-framework-multicol_css_framework--s10.json", - "assets_dir": "component/ui-framework/assets/ui-framework-multicol_css_framework--s10/", - "section_range": { - "start_line": 274, - "end_line": 489, - "sections": [ - "使用例" - ], - "section_ids": [ - "s10" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "ui-framework-multicol_css_framework", - "group_line_count": 215 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "multicol_mode" - ] }, { - "section_id": "s2", - "heading": "概要", + "section_id": "s18", + "heading": "精査処理定義", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s19", + "heading": "データタイプ定義", "rst_labels": [] }, { - "section_id": "s4", - "heading": "制約事項", - "rst_labels": [ - "apply-multicol-layout" - ] - }, - { - "section_id": "s5", - "heading": "", + "section_id": "s20", + "heading": "テーブル定義", "rst_labels": [] }, { - "section_id": "s6", - "heading": "マルチレイアウトモードの適用方法", + "section_id": "s21", + "heading": "コード設計", "rst_labels": [] }, { - "section_id": "s7", - "heading": "", + "section_id": "s22", + "heading": "外部インターフェース設計", "rst_labels": [] }, { - "section_id": "s8", - "heading": "レイアウトの調整方法", + "section_id": "s23", + "heading": "", "rst_labels": [] }, { - "section_id": "s9", - "heading": "", + "section_id": "s24", + "heading": "定義データの出力仕様", "rst_labels": [] }, { - "section_id": "s10", - "heading": "使用例", + "section_id": "s25", + "heading": "エスケープ処理", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/jsp_page_templates.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/04_Permission.rst", "format": "rst", - "filename": "jsp_page_templates.rst", + "filename": "04_Permission.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-jsp_page_templates--s1", - "base_name": "ui-framework-jsp_page_templates", - "output_path": "component/ui-framework/ui-framework-jsp_page_templates--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-jsp_page_templates--s1/", + "category": "libraries", + "id": "libraries-04_Permission--s1", + "base_name": "libraries-04_Permission", + "output_path": "component/libraries/libraries-04_Permission--s1.json", + "assets_dir": "component/libraries/assets/libraries-04_Permission--s1/", "section_range": { "start_line": 0, - "end_line": 322, + "end_line": 265, "sections": [ "", "概要", "", - "ファイル構成", - "概要", - "構成ファイル一覧", + "特徴", "", - "業務画面テンプレートの詳細仕様", - "業務画面ベースレイアウト", - "業務画面標準テンプレート", - "エラー画面テンプレート", + "要求", "", - "ローカル動作時の挙動" + "構成", + "" ], "section_ids": [ "s1", @@ -36465,25 +36938,23 @@ "s6", "s7", "s8", - "s9", - "s10", - "s11", - "s12", - "s13" + "s9" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 1, - "original_id": "ui-framework-jsp_page_templates", - "group_line_count": 322 + "total_parts": 2, + "original_id": "libraries-04_Permission", + "group_line_count": 265 }, "section_map": [ { "section_id": "s1", "heading": "", - "rst_labels": [] + "rst_labels": [ + "permission" + ] }, { "section_id": "s2", @@ -36497,17 +36968,17 @@ }, { "section_id": "s4", - "heading": "ファイル構成", + "heading": "特徴", "rst_labels": [] }, { "section_id": "s5", - "heading": "概要", + "heading": "", "rst_labels": [] }, { "section_id": "s6", - "heading": "構成ファイル一覧", + "heading": "要求", "rst_labels": [] }, { @@ -36517,175 +36988,127 @@ }, { "section_id": "s8", - "heading": "業務画面テンプレートの詳細仕様", - "rst_labels": [ - "base_layout_tag" - ] - }, - { - "section_id": "s9", - "heading": "業務画面ベースレイアウト", - "rst_labels": [ - "page_template_tag" - ] - }, - { - "section_id": "s10", - "heading": "業務画面標準テンプレート", - "rst_labels": [ - "errorpage_template_tag" - ] - }, - { - "section_id": "s11", - "heading": "エラー画面テンプレート", + "heading": "構成", "rst_labels": [] }, { - "section_id": "s12", + "section_id": "s9", "heading": "", "rst_labels": [] }, { - "section_id": "s13", - "heading": "ローカル動作時の挙動", + "section_id": "s10", + "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/generating_form_class.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/04_Permission.rst", "format": "rst", - "filename": "generating_form_class.rst", + "filename": "04_Permission.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-generating_form_class-internals--s1", - "base_name": "ui-framework-generating_form_class-internals", - "output_path": "component/ui-framework/ui-framework-generating_form_class-internals--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-generating_form_class-internals--s1/", + "category": "libraries", + "id": "libraries-04_Permission--s10", + "base_name": "libraries-04_Permission", + "output_path": "component/libraries/libraries-04_Permission--s10.json", + "assets_dir": "component/libraries/assets/libraries-04_Permission--s10/", "section_range": { - "start_line": 0, - "end_line": 387, + "start_line": 265, + "end_line": 563, "sections": [ - "概要", - "使用方法", - "関連ファイル", - "出力仕様" + "使用方法" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4" + "s10" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-generating_form_class-internals", - "group_line_count": 387 + "part": 2, + "total_parts": 2, + "original_id": "libraries-04_Permission", + "group_line_count": 298 }, "section_map": [ { "section_id": "s1", - "heading": "概要", - "rst_labels": [] + "heading": "", + "rst_labels": [ + "permission" + ] }, { "section_id": "s2", - "heading": "使用方法", + "heading": "概要", "rst_labels": [] }, { "section_id": "s3", - "heading": "関連ファイル", + "heading": "", "rst_labels": [] }, { "section_id": "s4", - "heading": "出力仕様", + "heading": "特徴", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/showing_specsheet_view.rst", - "format": "rst", - "filename": "showing_specsheet_view.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-showing_specsheet_view--s1", - "base_name": "ui-framework-showing_specsheet_view", - "output_path": "component/ui-framework/ui-framework-showing_specsheet_view--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-showing_specsheet_view--s1/", - "section_range": { - "start_line": 0, - "end_line": 84, - "sections": [ - "概要", - "使用方法", - "関連ファイル" - ], - "section_ids": [ - "s1", - "s2", - "s3" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-showing_specsheet_view", - "group_line_count": 84 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "概要", + "section_id": "s5", + "heading": "", "rst_labels": [] }, { - "section_id": "s2", - "heading": "使用方法", + "section_id": "s6", + "heading": "要求", "rst_labels": [] }, { - "section_id": "s3", - "heading": "関連ファイル", + "section_id": "s7", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "構成", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "使用方法", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/js_framework.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", "format": "rst", - "filename": "js_framework.rst", + "filename": "07_TagReference.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-js_framework--s1", - "base_name": "ui-framework-js_framework", - "output_path": "component/ui-framework/ui-framework-js_framework--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-js_framework--s1/", + "category": "libraries", + "id": "libraries-07_TagReference--s1", + "base_name": "libraries-07_TagReference", + "output_path": "component/libraries/libraries-07_TagReference--s1.json", + "assets_dir": "component/libraries/assets/libraries-07_TagReference--s1/", "section_range": { "start_line": 0, - "end_line": 254, + "end_line": 400, "sections": [ "", - "概要", - "使用例", - "依存ライブラリ", - "", - "初期処理", - "スクリプトロード時の挙動", - "ドキュメントロード時の挙動", - "UI部品の再初期化", - "", - "ファイル構成", - "", - "新規 JavaScript UI部品の作成方法", - "作成するファイル" + "カスタムタグ一覧", + "全てのHTMLタグ", + "フォーカスを取得可能なHTMLタグ", + "formタグ", + "textタグ", + "textareaタグ", + "passwordタグ", + "radioButtonタグ", + "checkboxタグ" ], "section_ids": [ "s1", @@ -36697,19 +37120,15 @@ "s7", "s8", "s9", - "s10", - "s11", - "s12", - "s13", - "s14" + "s10" ] }, "split_info": { "is_split": true, "part": 1, - "total_parts": 2, - "original_id": "ui-framework-js_framework", - "group_line_count": 254 + "total_parts": 4, + "original_id": "libraries-07_TagReference", + "group_line_count": 400 }, "section_map": [ { @@ -36719,1259 +37138,928 @@ }, { "section_id": "s2", - "heading": "概要", + "heading": "カスタムタグ一覧", "rst_labels": [] }, { "section_id": "s3", - "heading": "使用例", + "heading": "全てのHTMLタグ", "rst_labels": [] }, { "section_id": "s4", - "heading": "依存ライブラリ", + "heading": "フォーカスを取得可能なHTMLタグ", "rst_labels": [] }, { "section_id": "s5", - "heading": "", + "heading": "formタグ", "rst_labels": [] }, { "section_id": "s6", - "heading": "初期処理", + "heading": "textタグ", "rst_labels": [] }, { "section_id": "s7", - "heading": "スクリプトロード時の挙動", + "heading": "textareaタグ", "rst_labels": [] }, { "section_id": "s8", - "heading": "ドキュメントロード時の挙動", + "heading": "passwordタグ", "rst_labels": [] }, { "section_id": "s9", - "heading": "UI部品の再初期化", + "heading": "radioButtonタグ", "rst_labels": [] }, { "section_id": "s10", - "heading": "", + "heading": "checkboxタグ", "rst_labels": [] }, { "section_id": "s11", - "heading": "ファイル構成", + "heading": "compositeKeyCheckboxタグ", "rst_labels": [] }, { "section_id": "s12", - "heading": "", + "heading": "compositeKeyRadioButtonタグ", "rst_labels": [] }, { "section_id": "s13", - "heading": "新規 JavaScript UI部品の作成方法", + "heading": "fileタグ", "rst_labels": [] }, { "section_id": "s14", - "heading": "作成するファイル", + "heading": "hiddenタグ", "rst_labels": [] }, { "section_id": "s15", - "heading": "ウィジェットの実装例", + "heading": "plainHiddenタグ", + "rst_labels": [] + }, + { + "section_id": "s16", + "heading": "selectタグ", + "rst_labels": [] + }, + { + "section_id": "s17", + "heading": "radioButtonsタグ", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "checkboxesタグ", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "submitタグ", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "buttonタグ", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "submitLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "popupSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "popupButtonタグ", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "popupLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "downloadSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "downloadButtonタグ", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "downloadLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "paramタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/js_framework.rst", - "format": "rst", - "filename": "js_framework.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-js_framework--s15", - "base_name": "ui-framework-js_framework", - "output_path": "component/ui-framework/ui-framework-js_framework--s15.json", - "assets_dir": "component/ui-framework/assets/ui-framework-js_framework--s15/", - "section_range": { - "start_line": 254, - "end_line": 423, - "sections": [ - "ウィジェットの実装例" - ], - "section_ids": [ - "s15" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "ui-framework-js_framework", - "group_line_count": 169 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s29", + "heading": "changeParamNameタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "概要", + "section_id": "s30", + "heading": "aタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "使用例", + "section_id": "s31", + "heading": "imgタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "依存ライブラリ", + "section_id": "s32", + "heading": "linkタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s33", + "heading": "scriptタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "初期処理", + "section_id": "s34", + "heading": "errorsタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "スクリプトロード時の挙動", + "section_id": "s35", + "heading": "errorタグ", "rst_labels": [] }, { - "section_id": "s8", - "heading": "ドキュメントロード時の挙動", + "section_id": "s36", + "heading": "noCacheタグ", "rst_labels": [] }, { - "section_id": "s9", - "heading": "UI部品の再初期化", + "section_id": "s37", + "heading": "codeSelectタグ", "rst_labels": [] }, { - "section_id": "s10", - "heading": "", + "section_id": "s38", + "heading": "codeRadioButtonsタグ", "rst_labels": [] }, { - "section_id": "s11", - "heading": "ファイル構成", + "section_id": "s39", + "heading": "codeCheckboxesタグ", "rst_labels": [] }, { - "section_id": "s12", - "heading": "", + "section_id": "s40", + "heading": "codeCheckboxタグ", "rst_labels": [] }, { - "section_id": "s13", - "heading": "新規 JavaScript UI部品の作成方法", + "section_id": "s41", + "heading": "codeタグ", "rst_labels": [] }, { - "section_id": "s14", - "heading": "作成するファイル", + "section_id": "s42", + "heading": "messageタグ", "rst_labels": [] }, { - "section_id": "s15", - "heading": "ウィジェットの実装例", + "section_id": "s43", + "heading": "writeタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/internals/architecture_overview.rst", - "format": "rst", - "filename": "architecture_overview.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-architecture_overview--s1", - "base_name": "ui-framework-architecture_overview", - "output_path": "component/ui-framework/ui-framework-architecture_overview--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-architecture_overview--s1/", - "section_range": { - "start_line": 0, - "end_line": 120, - "sections": [ - "本番環境での外部ライブラリへの依存", - "サーバ動作時の構成", - "ローカル動作時の構成" - ], - "section_ids": [ - "s1", - "s2", - "s3" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-architecture_overview", - "group_line_count": 120 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "本番環境での外部ライブラリへの依存", + "section_id": "s44", + "heading": "prettyPrintタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "サーバ動作時の構成", + "section_id": "s45", + "heading": "rawWriteタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "ローカル動作時の構成", + "section_id": "s46", + "heading": "includeタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/modifying_code_and_testing.rst", - "format": "rst", - "filename": "modifying_code_and_testing.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-modifying_code_and_testing--s1", - "base_name": "ui-framework-modifying_code_and_testing", - "output_path": "component/ui-framework/ui-framework-modifying_code_and_testing--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-modifying_code_and_testing--s1/", - "section_range": { - "start_line": 0, - "end_line": 209, - "sections": [ - "1. 修正要件の確認", - "2. 修正箇所の特定", - "3. プラグインの追加", - "4. ビルドと修正確認", - "5. リポジトリへの反映" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-modifying_code_and_testing", - "group_line_count": 209 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "1. 修正要件の確認", + "section_id": "s47", + "heading": "includeParamタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "2. 修正箇所の特定", - "rst_labels": [ - "add_plugin" - ] + "section_id": "s48", + "heading": "confirmationPageタグ", + "rst_labels": [] }, { - "section_id": "s3", - "heading": "3. プラグインの追加", + "section_id": "s49", + "heading": "ignoreConfirmationタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "4. ビルドと修正確認", + "section_id": "s50", + "heading": "forInputPageタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "5. リポジトリへの反映", + "section_id": "s51", + "heading": "forConfirmationPageタグ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/initial_setup.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", "format": "rst", - "filename": "initial_setup.rst", + "filename": "07_TagReference.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-initial_setup--s1", - "base_name": "ui-framework-initial_setup", - "output_path": "component/ui-framework/ui-framework-initial_setup--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-initial_setup--s1/", + "category": "libraries", + "id": "libraries-07_TagReference--s11", + "base_name": "libraries-07_TagReference", + "output_path": "component/libraries/libraries-07_TagReference--s11.json", + "assets_dir": "component/libraries/assets/libraries-07_TagReference--s11/", "section_range": { - "start_line": 0, - "end_line": 378, + "start_line": 400, + "end_line": 794, "sections": [ - "1. サードパーティライブラリの取得(要オンライン)", - "2. プロジェクトで使用するプラグインの選定", - "3. プロジェクトへのプラグインインストール", - "4. UI部品のビルドと配置", - "5. UIローカルデモ用プロジェクトの動作確認", - "6. UI開発基盤テスト用プロジェクトの動作確認" + "compositeKeyCheckboxタグ", + "compositeKeyRadioButtonタグ", + "fileタグ", + "hiddenタグ", + "plainHiddenタグ", + "selectタグ", + "radioButtonsタグ", + "checkboxesタグ", + "submitタグ", + "buttonタグ", + "submitLinkタグ", + "popupSubmitタグ", + "popupButtonタグ" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" + "s11", + "s12", + "s13", + "s14", + "s15", + "s16", + "s17", + "s18", + "s19", + "s20", + "s21", + "s22", + "s23" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "ui-framework-initial_setup", - "group_line_count": 378 + "part": 2, + "total_parts": 4, + "original_id": "libraries-07_TagReference", + "group_line_count": 394 }, "section_map": [ { "section_id": "s1", - "heading": "1. サードパーティライブラリの取得(要オンライン)", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "2. プロジェクトで使用するプラグインの選定", + "heading": "カスタムタグ一覧", "rst_labels": [] }, { "section_id": "s3", - "heading": "3. プロジェクトへのプラグインインストール", - "rst_labels": [ - "executing_ui_build" - ] + "heading": "全てのHTMLタグ", + "rst_labels": [] }, { "section_id": "s4", - "heading": "4. UI部品のビルドと配置", + "heading": "フォーカスを取得可能なHTMLタグ", "rst_labels": [] }, { "section_id": "s5", - "heading": "5. UIローカルデモ用プロジェクトの動作確認", + "heading": "formタグ", "rst_labels": [] }, { "section_id": "s6", - "heading": "6. UI開発基盤テスト用プロジェクトの動作確認", + "heading": "textタグ", "rst_labels": [] }, { "section_id": "s7", - "heading": "7. 開発リポジトリへの登録", + "heading": "textareaタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/initial_setup.rst", - "format": "rst", - "filename": "initial_setup.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-initial_setup--s7", - "base_name": "ui-framework-initial_setup", - "output_path": "component/ui-framework/ui-framework-initial_setup--s7.json", - "assets_dir": "component/ui-framework/assets/ui-framework-initial_setup--s7/", - "section_range": { - "start_line": 378, - "end_line": 438, - "sections": [ - "7. 開発リポジトリへの登録" - ], - "section_ids": [ - "s7" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "ui-framework-initial_setup", - "group_line_count": 60 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "1. サードパーティライブラリの取得(要オンライン)", + "section_id": "s8", + "heading": "passwordタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "2. プロジェクトで使用するプラグインの選定", + "section_id": "s9", + "heading": "radioButtonタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "3. プロジェクトへのプラグインインストール", - "rst_labels": [ - "executing_ui_build" - ] + "section_id": "s10", + "heading": "checkboxタグ", + "rst_labels": [] }, { - "section_id": "s4", - "heading": "4. UI部品のビルドと配置", + "section_id": "s11", + "heading": "compositeKeyCheckboxタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "5. UIローカルデモ用プロジェクトの動作確認", + "section_id": "s12", + "heading": "compositeKeyRadioButtonタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "6. UI開発基盤テスト用プロジェクトの動作確認", + "section_id": "s13", + "heading": "fileタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "7. 開発リポジトリへの登録", + "section_id": "s14", + "heading": "hiddenタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/update_bundle_plugin.rst", - "format": "rst", - "filename": "update_bundle_plugin.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-update_bundle_plugin--s1", - "base_name": "ui-framework-update_bundle_plugin", - "output_path": "component/ui-framework/ui-framework-update_bundle_plugin--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-update_bundle_plugin--s1/", - "section_range": { - "start_line": 0, - "end_line": 200, - "sections": [ - "1. 現在のプラグインのバージョンの確認", - "2. プラグインのマージ" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-update_bundle_plugin", - "group_line_count": 200 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "1. 現在のプラグインのバージョンの確認", + "section_id": "s15", + "heading": "plainHiddenタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "2. プラグインのマージ", + "section_id": "s16", + "heading": "selectタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/doc/development_environment/redistribution.rst", - "format": "rst", - "filename": "redistribution.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-redistribution--s1", - "base_name": "ui-framework-redistribution", - "output_path": "component/ui-framework/ui-framework-redistribution--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-redistribution--s1/", - "section_range": { - "start_line": 0, - "end_line": 125, - "sections": [ - "作成手順", - "確認手順" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-redistribution", - "group_line_count": 125 - }, - "section_map": [ + }, + { + "section_id": "s17", + "heading": "radioButtonsタグ", + "rst_labels": [] + }, + { + "section_id": "s18", + "heading": "checkboxesタグ", + "rst_labels": [] + }, + { + "section_id": "s19", + "heading": "submitタグ", + "rst_labels": [] + }, + { + "section_id": "s20", + "heading": "buttonタグ", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "submitLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "popupSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "popupButtonタグ", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "popupLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "downloadSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "downloadButtonタグ", + "rst_labels": [] + }, + { + "section_id": "s27", + "heading": "downloadLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s28", + "heading": "paramタグ", + "rst_labels": [] + }, + { + "section_id": "s29", + "heading": "changeParamNameタグ", + "rst_labels": [] + }, + { + "section_id": "s30", + "heading": "aタグ", + "rst_labels": [] + }, + { + "section_id": "s31", + "heading": "imgタグ", + "rst_labels": [] + }, + { + "section_id": "s32", + "heading": "linkタグ", + "rst_labels": [] + }, + { + "section_id": "s33", + "heading": "scriptタグ", + "rst_labels": [] + }, { - "section_id": "s1", - "heading": "作成手順", + "section_id": "s34", + "heading": "errorsタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "確認手順", + "section_id": "s35", + "heading": "errorタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-guide--s1", - "base_name": "ui-framework-guide", - "output_path": "component/ui-framework/ui-framework-guide--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-guide--s1/", - "section_range": { - "start_line": 0, - "end_line": 82, - "sections": [ - "業務画面JSP作成フロー", - "業務画面JSP作成に利用する開発環境", - "業務画面JSPの作成方法", - "画面項目定義一覧の作成方法", - "フォームクラスの自動生成方法" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-guide", - "group_line_count": 82 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "業務画面JSP作成フロー", + "section_id": "s36", + "heading": "noCacheタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "業務画面JSP作成に利用する開発環境", + "section_id": "s37", + "heading": "codeSelectタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "業務画面JSPの作成方法", + "section_id": "s38", + "heading": "codeRadioButtonsタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "画面項目定義一覧の作成方法", + "section_id": "s39", + "heading": "codeCheckboxesタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "フォームクラスの自動生成方法", + "section_id": "s40", + "heading": "codeCheckboxタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/template_list.rst", - "format": "rst", - "filename": "template_list.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-template_list--s1", - "base_name": "ui-framework-template_list", - "output_path": "component/ui-framework/ui-framework-template_list--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-template_list--s1/", - "section_range": { - "start_line": 0, - "end_line": 215, - "sections": [ - "Eclipse補完テンプレートの導入方法", - "Eclipse補完テンプレートの一覧" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-template_list", - "group_line_count": 215 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "Eclipse補完テンプレートの導入方法", - "rst_labels": [ - "eclipse-template" - ] + "section_id": "s41", + "heading": "codeタグ", + "rst_labels": [] }, { - "section_id": "s2", - "heading": "Eclipse補完テンプレートの一覧", + "section_id": "s42", + "heading": "messageタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/develop_environment.rst", - "format": "rst", - "filename": "develop_environment.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-develop_environment--s1", - "base_name": "ui-framework-develop_environment", - "output_path": "component/ui-framework/ui-framework-develop_environment--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-develop_environment--s1/", - "section_range": { - "start_line": 0, - "end_line": 34, - "sections": [ - "統合開発環境の補完機能を利用する", - "統合開発環境のドキュメント参照機能を利用する" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-develop_environment", - "group_line_count": 34 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "統合開発環境の補完機能を利用する", + "section_id": "s43", + "heading": "writeタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "統合開発環境のドキュメント参照機能を利用する", + "section_id": "s44", + "heading": "prettyPrintタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/widget_list.rst", - "format": "rst", - "filename": "widget_list.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-widget_list", - "base_name": "ui-framework-widget_list", - "output_path": "component/ui-framework/ui-framework-widget_list.json", - "assets_dir": "component/ui-framework/assets/ui-framework-widget_list/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/project_structure.rst", - "format": "rst", - "filename": "project_structure.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-project_structure", - "base_name": "ui-framework-project_structure", - "output_path": "component/ui-framework/ui-framework-project_structure.json", - "assets_dir": "component/ui-framework/assets/ui-framework-project_structure/", - "section_map": [] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/create_screen_item_list.rst", - "format": "rst", - "filename": "create_screen_item_list.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-create_screen_item_list", - "base_name": "ui-framework-create_screen_item_list", - "output_path": "component/ui-framework/ui-framework-create_screen_item_list.json", - "assets_dir": "component/ui-framework/assets/ui-framework-create_screen_item_list/", - "section_map": [ + }, { - "section_id": "s1", - "heading": "業務画面JSPから画面項目定義を作成する", + "section_id": "s45", + "heading": "rawWriteタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/generating_form_class.rst", - "format": "rst", - "filename": "generating_form_class.rst", - "type": "component", - "category": "ui-framework", - "id": "ui-framework-generating_form_class-widget_usage--s1", - "base_name": "ui-framework-generating_form_class-widget_usage", - "output_path": "component/ui-framework/ui-framework-generating_form_class-widget_usage--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-generating_form_class-widget_usage--s1/", - "section_range": { - "start_line": 0, - "end_line": 38, - "sections": [ - "概要", - "使用方法" - ], - "section_ids": [ - "s1", - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-generating_form_class-widget_usage", - "group_line_count": 38 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "概要", + "section_id": "s46", + "heading": "includeタグ", + "rst_labels": [] + }, + { + "section_id": "s47", + "heading": "includeParamタグ", + "rst_labels": [] + }, + { + "section_id": "s48", + "heading": "confirmationPageタグ", + "rst_labels": [] + }, + { + "section_id": "s49", + "heading": "ignoreConfirmationタグ", + "rst_labels": [] + }, + { + "section_id": "s50", + "heading": "forInputPageタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "使用方法", + "section_id": "s51", + "heading": "forConfirmationPageタグ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/ui_dev/guide/widget_usage/create_with_widget.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", "format": "rst", - "filename": "create_with_widget.rst", + "filename": "07_TagReference.rst", "type": "component", - "category": "ui-framework", - "id": "ui-framework-create_with_widget--s1", - "base_name": "ui-framework-create_with_widget", - "output_path": "component/ui-framework/ui-framework-create_with_widget--s1.json", - "assets_dir": "component/ui-framework/assets/ui-framework-create_with_widget--s1/", + "category": "libraries", + "id": "libraries-07_TagReference--s24", + "base_name": "libraries-07_TagReference", + "output_path": "component/libraries/libraries-07_TagReference--s24.json", + "assets_dir": "component/libraries/assets/libraries-07_TagReference--s24/", "section_range": { - "start_line": 0, - "end_line": 326, + "start_line": 794, + "end_line": 1175, "sections": [ - "画面のテンプレートを用意する", - "画面をブラウザで表示する", - "UI部品(ウィジェット)を配置していく", - "ウィジェットに定義されている属性について", - "画面遷移について", - "ウィジェットの作成について", - "入力画面と確認画面の共用", - "業務画面JSPの例", - "", - "", - "", - "" + "popupLinkタグ", + "downloadSubmitタグ", + "downloadButtonタグ", + "downloadLinkタグ", + "paramタグ", + "changeParamNameタグ", + "aタグ", + "imgタグ", + "linkタグ", + "scriptタグ", + "errorsタグ", + "errorタグ", + "noCacheタグ", + "codeSelectタグ", + "codeRadioButtonsタグ" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12" + "s24", + "s25", + "s26", + "s27", + "s28", + "s29", + "s30", + "s31", + "s32", + "s33", + "s34", + "s35", + "s36", + "s37", + "s38" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "ui-framework-create_with_widget", - "group_line_count": 326 + "part": 3, + "total_parts": 4, + "original_id": "libraries-07_TagReference", + "group_line_count": 381 }, "section_map": [ { "section_id": "s1", - "heading": "画面のテンプレートを用意する", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "画面をブラウザで表示する", + "heading": "カスタムタグ一覧", "rst_labels": [] }, { "section_id": "s3", - "heading": "UI部品(ウィジェット)を配置していく", + "heading": "全てのHTMLタグ", "rst_labels": [] }, { "section_id": "s4", - "heading": "ウィジェットに定義されている属性について", + "heading": "フォーカスを取得可能なHTMLタグ", "rst_labels": [] }, { "section_id": "s5", - "heading": "画面遷移について", + "heading": "formタグ", "rst_labels": [] }, { "section_id": "s6", - "heading": "ウィジェットの作成について", + "heading": "textタグ", "rst_labels": [] }, { "section_id": "s7", - "heading": "入力画面と確認画面の共用", - "rst_labels": [ - "example" - ] + "heading": "textareaタグ", + "rst_labels": [] }, { "section_id": "s8", - "heading": "業務画面JSPの例", + "heading": "passwordタグ", "rst_labels": [] }, { "section_id": "s9", - "heading": "", - "rst_labels": [ - "input" - ] + "heading": "radioButtonタグ", + "rst_labels": [] }, { "section_id": "s10", - "heading": "", - "rst_labels": [ - "confirm" - ] + "heading": "checkboxタグ", + "rst_labels": [] }, { "section_id": "s11", - "heading": "", - "rst_labels": [ - "list_search" - ] + "heading": "compositeKeyCheckboxタグ", + "rst_labels": [] }, { "section_id": "s12", - "heading": "", - "rst_labels": [ - "detail" - ] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/MessagingSimu/doc/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "guide", - "category": "biz-samples", - "id": "biz-samples-doc--s1", - "base_name": "biz-samples-doc", - "output_path": "guide/biz-samples/biz-samples-doc--s1.json", - "assets_dir": "guide/biz-samples/assets/biz-samples-doc--s1/", - "section_range": { - "start_line": 0, - "end_line": 209, - "sections": [ - "疎通テスト", - "結合テスト", - "負荷テスト", - "シミュレータがMOM同期応答メッセージ受信を行う場合", - "シミュレータがMOM同期応答メッセージ送信を行う場合", - "シミュレータがMOM応答不要メッセージ送信を行う場合", - "シミュレータがHTTPメッセージ受信を行う場合", - "シミュレータがHTTPメッセージ送信を行う場合", - "シミュレータがメッセージ受信する場合", - "シミュレータがメッセージ送信する場合", - "シミュレータがメッセージ受信する場合", - "シミュレータがメッセージ受信する場合", - "シミュレータがメッセージ送信する場合", - "", - "動作イメージ", - "", - "利用手順" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8", - "s9", - "s10", - "s11", - "s12", - "s13", - "s14", - "s15", - "s16", - "s17" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 1, - "original_id": "biz-samples-doc", - "group_line_count": 209 - }, - "section_map": [ + "heading": "compositeKeyRadioButtonタグ", + "rst_labels": [] + }, { - "section_id": "s1", - "heading": "疎通テスト", + "section_id": "s13", + "heading": "fileタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "結合テスト", + "section_id": "s14", + "heading": "hiddenタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "負荷テスト", + "section_id": "s15", + "heading": "plainHiddenタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "シミュレータがMOM同期応答メッセージ受信を行う場合", + "section_id": "s16", + "heading": "selectタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "シミュレータがMOM同期応答メッセージ送信を行う場合", + "section_id": "s17", + "heading": "radioButtonsタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "シミュレータがMOM応答不要メッセージ送信を行う場合", + "section_id": "s18", + "heading": "checkboxesタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "シミュレータがHTTPメッセージ受信を行う場合", + "section_id": "s19", + "heading": "submitタグ", "rst_labels": [] }, { - "section_id": "s8", - "heading": "シミュレータがHTTPメッセージ送信を行う場合", + "section_id": "s20", + "heading": "buttonタグ", + "rst_labels": [] + }, + { + "section_id": "s21", + "heading": "submitLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s22", + "heading": "popupSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s23", + "heading": "popupButtonタグ", + "rst_labels": [] + }, + { + "section_id": "s24", + "heading": "popupLinkタグ", + "rst_labels": [] + }, + { + "section_id": "s25", + "heading": "downloadSubmitタグ", + "rst_labels": [] + }, + { + "section_id": "s26", + "heading": "downloadButtonタグ", "rst_labels": [] }, { - "section_id": "s9", - "heading": "シミュレータがメッセージ受信する場合", + "section_id": "s27", + "heading": "downloadLinkタグ", "rst_labels": [] }, { - "section_id": "s10", - "heading": "シミュレータがメッセージ送信する場合", + "section_id": "s28", + "heading": "paramタグ", "rst_labels": [] }, { - "section_id": "s11", - "heading": "シミュレータがメッセージ受信する場合", + "section_id": "s29", + "heading": "changeParamNameタグ", "rst_labels": [] }, { - "section_id": "s12", - "heading": "シミュレータがメッセージ受信する場合", + "section_id": "s30", + "heading": "aタグ", "rst_labels": [] }, { - "section_id": "s13", - "heading": "シミュレータがメッセージ送信する場合", + "section_id": "s31", + "heading": "imgタグ", "rst_labels": [] }, { - "section_id": "s14", - "heading": "", + "section_id": "s32", + "heading": "linkタグ", "rst_labels": [] }, { - "section_id": "s15", - "heading": "動作イメージ", + "section_id": "s33", + "heading": "scriptタグ", "rst_labels": [] }, { - "section_id": "s16", - "heading": "", + "section_id": "s34", + "heading": "errorsタグ", "rst_labels": [] }, { - "section_id": "s17", - "heading": "利用手順", + "section_id": "s35", + "heading": "errorタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-top-nablarch--s1", - "base_name": "about-nablarch-top-nablarch", - "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s1.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s1/", - "section_range": { - "start_line": 0, - "end_line": 11, - "sections": [ - "" - ], - "section_ids": [ - "s1" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 3, - "original_id": "about-nablarch-top-nablarch", - "group_line_count": 11 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s36", + "heading": "noCacheタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "フォルダ構成", + "section_id": "s37", + "heading": "codeSelectタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s38", + "heading": "codeRadioButtonsタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "コンテンツの見方", + "section_id": "s39", + "heading": "codeCheckboxesタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-top-nablarch--s2", - "base_name": "about-nablarch-top-nablarch", - "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s2.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s2/", - "section_range": { - "start_line": 11, - "end_line": 858, - "sections": [ - "フォルダ構成" - ], - "section_ids": [ - "s2" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 3, - "original_id": "about-nablarch-top-nablarch", - "group_line_count": 847 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s40", + "heading": "codeCheckboxタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "フォルダ構成", + "section_id": "s41", + "heading": "codeタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s42", + "heading": "messageタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "コンテンツの見方", + "section_id": "s43", + "heading": "writeタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/TOP/top/nablarch/index.rst", - "format": "rst", - "filename": "index.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-top-nablarch--s3", - "base_name": "about-nablarch-top-nablarch", - "output_path": "about/about-nablarch/about-nablarch-top-nablarch--s3.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-top-nablarch--s3/", - "section_range": { - "start_line": 858, - "end_line": 906, - "sections": [ - "", - "コンテンツの見方" - ], - "section_ids": [ - "s3", - "s4" - ] - }, - "split_info": { - "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "about-nablarch-top-nablarch", - "group_line_count": 48 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s44", + "heading": "prettyPrintタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "フォルダ構成", + "section_id": "s45", + "heading": "rawWriteタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s46", + "heading": "includeタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "コンテンツの見方", + "section_id": "s47", + "heading": "includeParamタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/guide/03_DevelopmentStep/09_confirm_operation.rst", - "format": "rst", - "filename": "09_confirm_operation.rst", - "type": "guide", - "category": "web-application", - "id": "web-application-09_confirm_operation", - "base_name": "web-application-09_confirm_operation", - "output_path": "guide/web-application/web-application-09_confirm_operation.json", - "assets_dir": "guide/web-application/assets/web-application-09_confirm_operation/", - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s48", + "heading": "confirmationPageタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "動作確認の実施", + "section_id": "s49", + "heading": "ignoreConfirmationタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/guide/03_DevelopmentStep/02_flow.rst", - "format": "rst", - "filename": "02_flow.rst", - "type": "guide", - "category": "web-application", - "id": "web-application-02_flow", - "base_name": "web-application-02_flow", - "output_path": "guide/web-application/web-application-02_flow.json", - "assets_dir": "guide/web-application/assets/web-application-02_flow/", - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s50", + "heading": "forInputPageタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "開発フロー", + "section_id": "s51", + "heading": "forConfirmationPageタグ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/07/07_TagReference.rst", "format": "rst", - "filename": "01_FailureLog.rst", + "filename": "07_TagReference.rst", "type": "component", "category": "libraries", - "id": "libraries-01_FailureLog--s1", - "base_name": "libraries-01_FailureLog", - "output_path": "component/libraries/libraries-01_FailureLog--s1.json", - "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s1/", + "id": "libraries-07_TagReference--s39", + "base_name": "libraries-07_TagReference", + "output_path": "component/libraries/libraries-07_TagReference--s39.json", + "assets_dir": "component/libraries/assets/libraries-07_TagReference--s39/", "section_range": { - "start_line": 0, - "end_line": 389, + "start_line": 1175, + "end_line": 1505, "sections": [ - "", - "障害ログの出力方針", - "障害ログの出力項目", - "障害ログの出力方法", - "障害ログの設定方法", - "障害ログの出力例" + "codeCheckboxesタグ", + "codeCheckboxタグ", + "codeタグ", + "messageタグ", + "writeタグ", + "prettyPrintタグ", + "rawWriteタグ", + "includeタグ", + "includeParamタグ", + "confirmationPageタグ", + "ignoreConfirmationタグ", + "forInputPageタグ", + "forConfirmationPageタグ" ], "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6" + "s39", + "s40", + "s41", + "s42", + "s43", + "s44", + "s45", + "s46", + "s47", + "s48", + "s49", + "s50", + "s51" ] }, "split_info": { "is_split": true, - "part": 1, - "total_parts": 3, - "original_id": "libraries-01_FailureLog", - "group_line_count": 389 + "part": 4, + "total_parts": 4, + "original_id": "libraries-07_TagReference", + "group_line_count": 330 }, "section_map": [ { @@ -37981,602 +38069,487 @@ }, { "section_id": "s2", - "heading": "障害ログの出力方針", + "heading": "カスタムタグ一覧", "rst_labels": [] }, { "section_id": "s3", - "heading": "障害ログの出力項目", + "heading": "全てのHTMLタグ", "rst_labels": [] }, { "section_id": "s4", - "heading": "障害ログの出力方法", + "heading": "フォーカスを取得可能なHTMLタグ", "rst_labels": [] }, { "section_id": "s5", - "heading": "障害ログの設定方法", + "heading": "formタグ", "rst_labels": [] }, { "section_id": "s6", - "heading": "障害ログの出力例", + "heading": "textタグ", "rst_labels": [] }, { "section_id": "s7", - "heading": "障害の連絡先情報の追加方法", + "heading": "textareaタグ", "rst_labels": [] }, { "section_id": "s8", - "heading": "アプリケーションの障害コードの変更方法", + "heading": "passwordタグ", "rst_labels": [] }, { "section_id": "s9", - "heading": "フレームワークの障害コードの変更方法", + "heading": "radioButtonタグ", "rst_labels": [] }, { "section_id": "s10", - "heading": "派生元実行時情報の出力方法", + "heading": "checkboxタグ", "rst_labels": [] }, { "section_id": "s11", - "heading": "プレースホルダのカスタマイズ方法", + "heading": "compositeKeyCheckboxタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", - "format": "rst", - "filename": "01_FailureLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-01_FailureLog--s7", - "base_name": "libraries-01_FailureLog", - "output_path": "component/libraries/libraries-01_FailureLog--s7.json", - "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s7/", - "section_range": { - "start_line": 389, - "end_line": 700, - "sections": [ - "障害の連絡先情報の追加方法", - "アプリケーションの障害コードの変更方法", - "フレームワークの障害コードの変更方法", - "派生元実行時情報の出力方法" - ], - "section_ids": [ - "s7", - "s8", - "s9", - "s10" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 3, - "original_id": "libraries-01_FailureLog", - "group_line_count": 311 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s12", + "heading": "compositeKeyRadioButtonタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "障害ログの出力方針", + "section_id": "s13", + "heading": "fileタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "障害ログの出力項目", + "section_id": "s14", + "heading": "hiddenタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "障害ログの出力方法", + "section_id": "s15", + "heading": "plainHiddenタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "障害ログの設定方法", + "section_id": "s16", + "heading": "selectタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "障害ログの出力例", + "section_id": "s17", + "heading": "radioButtonsタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "障害の連絡先情報の追加方法", + "section_id": "s18", + "heading": "checkboxesタグ", "rst_labels": [] }, { - "section_id": "s8", - "heading": "アプリケーションの障害コードの変更方法", + "section_id": "s19", + "heading": "submitタグ", "rst_labels": [] }, { - "section_id": "s9", - "heading": "フレームワークの障害コードの変更方法", + "section_id": "s20", + "heading": "buttonタグ", "rst_labels": [] }, { - "section_id": "s10", - "heading": "派生元実行時情報の出力方法", + "section_id": "s21", + "heading": "submitLinkタグ", "rst_labels": [] }, { - "section_id": "s11", - "heading": "プレースホルダのカスタマイズ方法", + "section_id": "s22", + "heading": "popupSubmitタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/01_FailureLog.rst", - "format": "rst", - "filename": "01_FailureLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-01_FailureLog--s11", - "base_name": "libraries-01_FailureLog", - "output_path": "component/libraries/libraries-01_FailureLog--s11.json", - "assets_dir": "component/libraries/assets/libraries-01_FailureLog--s11/", - "section_range": { - "start_line": 700, - "end_line": 810, - "sections": [ - "プレースホルダのカスタマイズ方法" - ], - "section_ids": [ - "s11" - ] - }, - "split_info": { - "is_split": true, - "part": 3, - "total_parts": 3, - "original_id": "libraries-01_FailureLog", - "group_line_count": 110 - }, - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s23", + "heading": "popupButtonタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "障害ログの出力方針", + "section_id": "s24", + "heading": "popupLinkタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "障害ログの出力項目", + "section_id": "s25", + "heading": "downloadSubmitタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "障害ログの出力方法", + "section_id": "s26", + "heading": "downloadButtonタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "障害ログの設定方法", + "section_id": "s27", + "heading": "downloadLinkタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "障害ログの出力例", + "section_id": "s28", + "heading": "paramタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "障害の連絡先情報の追加方法", + "section_id": "s29", + "heading": "changeParamNameタグ", "rst_labels": [] }, { - "section_id": "s8", - "heading": "アプリケーションの障害コードの変更方法", + "section_id": "s30", + "heading": "aタグ", "rst_labels": [] }, { - "section_id": "s9", - "heading": "フレームワークの障害コードの変更方法", + "section_id": "s31", + "heading": "imgタグ", "rst_labels": [] }, { - "section_id": "s10", - "heading": "派生元実行時情報の出力方法", + "section_id": "s32", + "heading": "linkタグ", "rst_labels": [] }, { - "section_id": "s11", - "heading": "プレースホルダのカスタマイズ方法", + "section_id": "s33", + "heading": "scriptタグ", "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/01_SystemConstitution/02_I18N.rst", - "format": "rst", - "filename": "02_I18N.rst", - "type": "about", - "category": "about-nablarch", - "id": "about-nablarch-02_I18N", - "base_name": "about-nablarch-02_I18N", - "output_path": "about/about-nablarch/about-nablarch-02_I18N.json", - "assets_dir": "about/about-nablarch/assets/about-nablarch-02_I18N/", - "section_map": [ + }, { - "section_id": "s1", - "heading": "", + "section_id": "s34", + "heading": "errorsタグ", + "rst_labels": [] + }, + { + "section_id": "s35", + "heading": "errorタグ", + "rst_labels": [] + }, + { + "section_id": "s36", + "heading": "noCacheタグ", + "rst_labels": [] + }, + { + "section_id": "s37", + "heading": "codeSelectタグ", + "rst_labels": [] + }, + { + "section_id": "s38", + "heading": "codeRadioButtonsタグ", + "rst_labels": [] + }, + { + "section_id": "s39", + "heading": "codeCheckboxesタグ", "rst_labels": [] }, { - "section_id": "s2", - "heading": "RDBMS上データの保持方法", + "section_id": "s40", + "heading": "codeCheckboxタグ", "rst_labels": [] }, { - "section_id": "s3", - "heading": "", + "section_id": "s41", + "heading": "codeタグ", "rst_labels": [] }, { - "section_id": "s4", - "heading": "言語を指定した取得方法", + "section_id": "s42", + "heading": "messageタグ", "rst_labels": [] }, { - "section_id": "s5", - "heading": "", + "section_id": "s43", + "heading": "writeタグ", "rst_labels": [] }, { - "section_id": "s6", - "heading": "フレームワーク内で作成するログ出力メッセージの使用言語", + "section_id": "s44", + "heading": "prettyPrintタグ", "rst_labels": [] }, { - "section_id": "s7", - "heading": "", + "section_id": "s45", + "heading": "rawWriteタグ", "rst_labels": [] }, { - "section_id": "s8", - "heading": "ファイル入出力の文字コード", - "rst_labels": [ - "i18n_lang_select_keep" - ] - }, - { - "section_id": "s9", - "heading": "", + "section_id": "s46", + "heading": "includeタグ", "rst_labels": [] }, { - "section_id": "s10", - "heading": "言語の選択と保持", + "section_id": "s47", + "heading": "includeParamタグ", "rst_labels": [] }, { - "section_id": "s11", - "heading": "", + "section_id": "s48", + "heading": "confirmationPageタグ", "rst_labels": [] }, { - "section_id": "s12", - "heading": "タイムゾーンの選択と保持", + "section_id": "s49", + "heading": "ignoreConfirmationタグ", "rst_labels": [] }, { - "section_id": "s13", - "heading": "", + "section_id": "s50", + "heading": "forInputPageタグ", "rst_labels": [] }, { - "section_id": "s14", - "heading": "JSPファイルおよび静的ファイルのパス", + "section_id": "s51", + "heading": "forConfirmationPageタグ", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/common_library/file_upload_utility.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/05_MessagingLog.rst", "format": "rst", - "filename": "file_upload_utility.rst", + "filename": "05_MessagingLog.rst", "type": "component", "category": "libraries", - "id": "libraries-file_upload_utility", - "base_name": "libraries-file_upload_utility", - "output_path": "component/libraries/libraries-file_upload_utility.json", - "assets_dir": "component/libraries/assets/libraries-file_upload_utility/", + "id": "libraries-05_MessagingLog", + "base_name": "libraries-05_MessagingLog", + "output_path": "component/libraries/libraries-05_MessagingLog.json", + "assets_dir": "component/libraries/assets/libraries-05_MessagingLog/", "section_map": [ { "section_id": "s1", - "heading": "クラス定義", + "heading": "", "rst_labels": [] }, { "section_id": "s2", - "heading": "", + "heading": "メッセージングログの出力", "rst_labels": [] }, { "section_id": "s3", - "heading": "使用方法", + "heading": "MOM送信メッセージのログ出力に使用するフォーマット", "rst_labels": [] }, { "section_id": "s4", - "heading": "フォーマット定義ファイルパスの指定", + "heading": "MOM受信メッセージのログ出力に使用するフォーマット", "rst_labels": [] }, { "section_id": "s5", - "heading": "精査エラー発生時のメッセージID指定", + "heading": "HTTP送信メッセージのログ出力に使用するフォーマット", "rst_labels": [] }, { "section_id": "s6", - "heading": "精査処理を実装したクラス、メソッドの指定", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "データベース一括登録", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "データベース一括登録(独自実装)", + "heading": "HTTP受信メッセージのログ出力に使用するフォーマット", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/mail.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", "format": "rst", - "filename": "mail.rst", + "filename": "thread_context.rst", "type": "component", "category": "libraries", - "id": "libraries-mail--s1", - "base_name": "libraries-mail", - "output_path": "component/libraries/libraries-mail--s1.json", - "assets_dir": "component/libraries/assets/libraries-mail--s1/", + "id": "libraries-thread_context--s1", + "base_name": "libraries-thread_context", + "output_path": "component/libraries/libraries-thread_context--s1.json", + "assets_dir": "component/libraries/assets/libraries-thread_context--s1/", "section_range": { "start_line": 0, - "end_line": 305, + "end_line": 345, "sections": [ - "クラス図", - "各クラスの責務", - "テーブル定義", - "メール送信要求", - "メール送信要求実装例" + "", + "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "インタフェース定義", + "クラス定義", + "ThreadContextHandlerの設定", + "UserIdAttributeの設定", + "RequestIdAttributeの設定", + "InternalRequestIdAttributeの設定" ], "section_ids": [ "s1", "s2", "s3", "s4", - "s5" + "s5", + "s6", + "s7", + "s8" ] }, "split_info": { "is_split": true, "part": 1, "total_parts": 2, - "original_id": "libraries-mail", - "group_line_count": 305 + "original_id": "libraries-thread_context", + "group_line_count": 345 }, "section_map": [ { "section_id": "s1", - "heading": "クラス図", - "rst_labels": [] + "heading": "", + "rst_labels": [ + "thread-context-label" + ] }, { "section_id": "s2", - "heading": "各クラスの責務", + "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", "rst_labels": [] }, { "section_id": "s3", - "heading": "テーブル定義", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "メール送信要求", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s5", - "heading": "メール送信要求実装例", + "heading": "ThreadContextHandlerの設定", "rst_labels": [] }, { "section_id": "s6", - "heading": "共通設定項目", + "heading": "UserIdAttributeの設定", "rst_labels": [] }, { "section_id": "s7", - "heading": "メール送信要求API用設定項目", + "heading": "RequestIdAttributeの設定", "rst_labels": [] }, { "section_id": "s8", - "heading": "逐次メール送信バッチ用設定項目", + "heading": "InternalRequestIdAttributeの設定", "rst_labels": [] }, { "section_id": "s9", - "heading": "nablarch.common.mail.MailRequestTableの設定", + "heading": "LanguageAttributeの設定", "rst_labels": [] }, { "section_id": "s10", - "heading": "nablarch.common.mail.MailRecipientTableの設定(全て必須)", + "heading": "TimeZoneAttributeの設定", "rst_labels": [] }, { "section_id": "s11", - "heading": "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "nablarch.common.mail.MailConfigの設定", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "nablarch.common.mail.MailSessionConfigの設定", + "heading": "ExecutionIdAttributeの設定", "rst_labels": [] } ] }, { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/mail.rst", + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", "format": "rst", - "filename": "mail.rst", + "filename": "thread_context.rst", "type": "component", "category": "libraries", - "id": "libraries-mail--s6", - "base_name": "libraries-mail", - "output_path": "component/libraries/libraries-mail--s6.json", - "assets_dir": "component/libraries/assets/libraries-mail--s6/", + "id": "libraries-thread_context--s9", + "base_name": "libraries-thread_context", + "output_path": "component/libraries/libraries-thread_context--s9.json", + "assets_dir": "component/libraries/assets/libraries-thread_context--s9/", "section_range": { - "start_line": 305, - "end_line": 699, + "start_line": 345, + "end_line": 707, "sections": [ - "共通設定項目", - "メール送信要求API用設定項目", - "逐次メール送信バッチ用設定項目", - "nablarch.common.mail.MailRequestTableの設定", - "nablarch.common.mail.MailRecipientTableの設定(全て必須)", - "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", - "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", - "nablarch.common.mail.MailConfigの設定", - "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", - "nablarch.common.mail.MailSessionConfigの設定" + "LanguageAttributeの設定", + "TimeZoneAttributeの設定", + "ExecutionIdAttributeの設定" ], "section_ids": [ - "s6", - "s7", - "s8", "s9", "s10", - "s11", - "s12", - "s13", - "s14", - "s15" + "s11" ] }, "split_info": { "is_split": true, "part": 2, "total_parts": 2, - "original_id": "libraries-mail", - "group_line_count": 394 + "original_id": "libraries-thread_context", + "group_line_count": 362 }, "section_map": [ { "section_id": "s1", - "heading": "クラス図", - "rst_labels": [] + "heading": "", + "rst_labels": [ + "thread-context-label" + ] }, { "section_id": "s2", - "heading": "各クラスの責務", + "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", "rst_labels": [] }, { "section_id": "s3", - "heading": "テーブル定義", + "heading": "インタフェース定義", "rst_labels": [] }, { "section_id": "s4", - "heading": "メール送信要求", + "heading": "クラス定義", "rst_labels": [] }, { "section_id": "s5", - "heading": "メール送信要求実装例", + "heading": "ThreadContextHandlerの設定", "rst_labels": [] }, { "section_id": "s6", - "heading": "共通設定項目", + "heading": "UserIdAttributeの設定", "rst_labels": [] }, { "section_id": "s7", - "heading": "メール送信要求API用設定項目", + "heading": "RequestIdAttributeの設定", "rst_labels": [] }, { "section_id": "s8", - "heading": "逐次メール送信バッチ用設定項目", + "heading": "InternalRequestIdAttributeの設定", "rst_labels": [] }, { "section_id": "s9", - "heading": "nablarch.common.mail.MailRequestTableの設定", + "heading": "LanguageAttributeの設定", "rst_labels": [] }, { "section_id": "s10", - "heading": "nablarch.common.mail.MailRecipientTableの設定(全て必須)", + "heading": "TimeZoneAttributeの設定", "rst_labels": [] }, { "section_id": "s11", - "heading": "nablarch.common.mail.MailAttachedFileTableの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s12", - "heading": "nablarch.common.mail.MailTemplateTableの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s13", - "heading": "nablarch.common.mail.MailConfigの設定", - "rst_labels": [] - }, - { - "section_id": "s14", - "heading": "nablarch.common.mail.MailRequestConfigの設定(すべて必須)", - "rst_labels": [] - }, - { - "section_id": "s15", - "heading": "nablarch.common.mail.MailSessionConfigの設定", + "heading": "ExecutionIdAttributeの設定", "rst_labels": [] } ] diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json index d6be750c5..29a53c285 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json @@ -83,6 +83,7 @@ "システムアカウント", "ユーザID", "ユーザIDロック", + "有効日", "グループシステムアカウント", "認可単位", "認可単位ID", @@ -99,7 +100,7 @@ "s2": "### グループ単位とユーザ単位を併用した権限設定\n\nグループに権限を設定し、ユーザにグループを割り当てることでグループ単位の権限管理が可能。さらにユーザに直接権限を設定することでイレギュラーな権限付与にも対応可能。\n\n### 自由度の高いテーブル定義\n\nテーブル名・カラム名を自由に設定可能。カラムのデータ型もJavaの型に変換可能であれば任意のデータ型を使用できる。プロジェクトの命名規約に従ったテーブル定義が作成できる。", "s3": "### 実装済み\n\n- 機能(任意のリクエストのかたまり)単位で認可判定の設定を行うことができる\n- ユーザに対してグループを設定でき、グループ単位で認可判定の設定を行うことができる\n- リクエストIDを設定し、特定のリクエストIDを認可判定の対象から除外できる\n- ユーザに有効日(From/To)を設定できる\n- ユーザとグループの関連に有効日(From/To)を設定できる\n- 認可判定の結果に応じて画面項目(メニューやボタンなど)の表示・非表示を切り替えることができる\n\n### 未実装\n\n- 本機能で使用するマスタデータをメンテナンスできる\n- 本機能で使用するマスタの初期データを一括登録できる\n- 認証機能によりユーザIDがロックされているユーザの認可判定を失敗にできる\n\n### 未検討\n\n- データへのアクセスを制限できる\n- 機能単位の権限に有効日(From/To)を設定できる", "s4": "リクエストIDを使用して認可判定を行う。リクエストIDの体系はアプリケーション毎に設計する。\n\n**認可単位**: ユーザが機能として認識する最小単位の概念。認可単位には認可を実現するために必要なリクエスト(Webアプリであれば画面のイベント)が複数紐付く。\n\n- グループに認可単位を紐付け → グループ権限\n- ユーザに認可単位を直接紐付け → ユーザ権限\n\n> **注意**: グループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。\n\n> **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。", - "s5": "**インタフェース**:\n\n| インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する |\n| `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する |\n\n**実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス |\n| `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する |\n| `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ |\n| `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ |", + "s5": "**インタフェース**:\n\n| インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する |\n| `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する |\n\n**Permissionの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス |\n\n**PermissionFactoryの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する |\n\n**その他のクラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ |\n| `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ |", "s6": "1. PermissionCheckHandlerは、リクエスト毎にユーザに紐付くPermissionを取得し、認可判定後にPermissionをスレッドローカルに格納する\n2. 個別アプリケーションで認可判定が必要な場合は、PermissionUtilからPermissionを取得して認可判定を行う\n3. 認証機能によりユーザIDがロックされている場合は認可失敗となる\n4. 認可判定の対象リクエストのチェックには、設定で指定されたリクエストIDを使用して行う(:ref:`ignoreRequestIdsSetting` 参照)\n5. ユーザIDとリクエストIDはPermissionCheckHandlerより先に処理するハンドラでThreadContextに設定する(:ref:`ThreadContextHandler` が行う)", "s7": "テーブル名・カラム名はBasicPermissionFactoryの設定で指定するため任意の名前を使用できる。DBの型もJavaの型に変換可能であれば任意の型を使用できる。\n\n> **注意**: システムアカウントテーブルは認証機能と同じテーブルを使用することを想定しているため、認証機能で使用するデータ項目(パスワード等)が含まれる。\n\n**グループ**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n\n**システムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| ユーザIDロック | boolean | |\n| 有効日(From) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**グループシステムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| ユーザID | java.lang.String | ユニークキー |\n| 有効日(From) | java.lang.String | ユニークキー。書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**認可単位**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**認可単位リクエスト**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n| リクエストID | java.lang.String | ユニークキー |\n\n**グループ権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**システムアカウント権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |" } diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json index 443b34a7b..ac0f73b04 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json @@ -75,6 +75,6 @@ "sections": { "s1": "**クラス**: `nablarch.common.handler.PermissionCheckHandler`, `nablarch.common.permission.BasicPermissionFactory`\n\nDIコンテナの機能を使用して、PermissionCheckHandlerとBasicPermissionFactoryの設定を行い使用する。\n\n### PermissionCheckHandlerの設定\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| permissionFactory | ○ | Permissionを生成するPermissionFactory |\n| ignoreRequestIds | | 認可判定を行わないリクエストID(カンマ区切りで複数指定可) |\n\n### BasicPermissionFactoryの設定\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| dbManager | ○ | DBトランザクション制御。`nablarch.core.db.transaction.SimpleDbTransactionManager`インスタンスを指定。詳細は :doc:`../01_Core/04_DbAccessSpec` 参照 |\n| groupTableSchema | ○ | グループテーブルのスキーマ情報。GroupTableSchemaクラスのインスタンス |\n| systemAccountTableSchema | ○ | システムアカウントテーブルのスキーマ情報。SystemAccountTableSchemaクラスのインスタンス |\n| groupSystemAccountTableSchema | ○ | グループシステムアカウントテーブルのスキーマ情報。GroupSystemAccountTableSchemaクラスのインスタンス |\n| permissionUnitTableSchema | ○ | 認可単位テーブルのスキーマ情報。PermissionUnitTableSchemaクラスのインスタンス |\n| permissionUnitRequestTableSchema | ○ | 認可単位リクエストテーブルのスキーマ情報。PermissionUnitRequestTableSchemaクラスのインスタンス |\n| groupAuthorityTableSchema | ○ | グループ権限テーブルのスキーマ情報。GroupAuthorityTableSchemaクラスのインスタンス |\n| systemAccountAuthorityTableSchema | ○ | システムアカウント権限テーブルのスキーマ情報。SystemAccountAuthorityTableSchemaクラスのインスタンス |\n| businessDateProvider | ○ | 業務日付取得(有効日From/Toチェックに使用)。`nablarch.core.date.BusinessDateProvider`実装クラスを指定。詳細は :ref:`BusinessDateProvider-label` 参照 |\n\nXML設定例:\n\n```xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n```\n\n### スキーマクラスのプロパティ\n\n**GroupTableSchema** (`nablarch.common.permission.schema.GroupTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n\n**SystemAccountTableSchema** (`nablarch.common.permission.schema.SystemAccountTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| userIdLockedColumnName | ○ | ユーザIDロックカラムの名前 |\n| failedCountColumnName | ○ | 認証失敗回数カラムの名前 |\n| effectiveDateFromColumnName | ○ | 有効日(From)カラムの名前 |\n| effectiveDateToColumnName | ○ | 有効日(To)カラムの名前 |\n\n**GroupSystemAccountTableSchema** (`nablarch.common.permission.schema.GroupSystemAccountTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| effectiveDateFromColumnName | ○ | 有効日(From)カラムの名前 |\n| effectiveDateToColumnName | ○ | 有効日(To)カラムの名前 |\n\n**PermissionUnitTableSchema** (`nablarch.common.permission.schema.PermissionUnitTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n**PermissionUnitRequestTableSchema** (`nablarch.common.permission.schema.PermissionUnitRequestTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n| requestIdColumnName | ○ | リクエストIDカラムの名前 |\n\n**GroupAuthorityTableSchema** (`nablarch.common.permission.schema.GroupAuthorityTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n**SystemAccountAuthorityTableSchema** (`nablarch.common.permission.schema.SystemAccountAuthorityTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n### 初期化設定\n\nBasicPermissionFactoryクラスは初期化が必要なため :ref:`repository_initialize` に従いInitializableインタフェースを実装している。permissionFactoryが初期化されるよう下記の設定を行うこと。\n\n```xml\n\n \n \n \n \n \n\n```", "s2": "ログイン処理など、一部の処理のみ認可判定の対象から除外したい場合は、PermissionCheckHandlerの設定でignoreRequestIdsプロパティを指定する。\n\nリクエストIDがRW11AA0101とRW11AA0102を認可判定の対象から除外する場合の設定例:\n\n```xml\n\n\n \n \n\n```", - "s3": "> **注意**: 下記のコードはフレームワークが行う処理であり、通常のアプリケーションでは実装する必要がない。\n\nPermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。`nablarch.common.permission.PermissionUtil`からPermissionを取得し、リクエストIDを指定して認可判定を行う。\n\n```java\n// PermissionUtilからPermissionを取得する\nPermission permission = PermissionUtil.getPermission();\n\n// リクエストIDを指定して認可判定を行う。\nif (permission.permit(\"リクエストID\")) {\n\n // 認可に成功した場合の処理\n\n} else {\n\n // 認可に失敗した場合の処理\n\n}\n```" + "s3": "> **注意**: 下記のコードはフレームワークが行う処理であり、通常のアプリケーションでは実装する必要がない。\n\nPermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。PermissionUtilからPermissionを取得し、リクエストIDを指定して認可判定を行う。\n\n```java\n// PermissionUtilからPermissionを取得する\nPermission permission = PermissionUtil.getPermission();\n\n// リクエストIDを指定して認可判定を行う。\nif (permission.permit(\"リクエストID\")) {\n\n // 認可に成功した場合の処理\n\n} else {\n\n // 認可に失敗した場合の処理\n\n}\n```" } } \ No newline at end of file diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-05_MessagingLog--s1.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-05_MessagingLog--s1.json deleted file mode 100644 index a9f849ebd..000000000 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-05_MessagingLog--s1.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "id": "libraries-05_MessagingLog--s1", - "title": "メッセージングログの出力", - "no_knowledge_content": false, - "official_doc_urls": [], - "index": [ - { - "id": "s1", - "title": "メッセージングログの出力", - "hints": [ - "MessagingLogUtil", - "MessagingLogFormatter", - "MessagingContext", - "HttpMessagingRequestParsingHandler", - "HttpMessagingResponseBuildingHandler", - "HttpMessagingClient", - "messagingLogFormatter.maskingPatterns", - "messagingLogFormatter.maskingChar", - "messagingLogFormatter.sentMessageFormat", - "messagingLogFormatter.receivedMessageFormat", - "messagingLogFormatter.httpSentMessageFormat", - "messagingLogFormatter.httpReceivedMessageFormat", - "messagingLogFormatter.className", - "メッセージングログ設定", - "メッセージボディマスク", - "MOMメッセージング", - "HTTPメッセージング", - "個人情報マスク", - "MOM応答不要" - ] - }, - { - "id": "s2", - "title": "MOM送信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$replyTo$", - "$timeToLive$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "MOM送信メッセージフォーマット", - "sentMessageFormat", - "SENT MESSAGE" - ] - }, - { - "id": "s3", - "title": "MOM受信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$replyTo$", - "$timeToLive$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "MOM受信メッセージフォーマット", - "receivedMessageFormat", - "RECEIVED MESSAGE" - ] - }, - { - "id": "s4", - "title": "HTTP送信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "$messageHeader$", - "HTTP送信メッセージフォーマット", - "httpSentMessageFormat", - "HTTP SENT MESSAGE" - ] - }, - { - "id": "s5", - "title": "HTTP受信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "$messageHeader$", - "HTTP受信メッセージフォーマット", - "httpReceivedMessageFormat", - "HTTP RECEIVED MESSAGE" - ] - } - ], - "sections": { - "s1": "## 出力方針\n\nログレベル: INFO、ロガー名: MESSAGINGとしてアプリケーションログへ出力する。\n\nlog.propertiesの設定例:\n```bash\nwriterNames=appFile\n\nwriter.appFile.className=nablarch.core.log.basic.FileLogWriter\nwriter.appFile.filePath=/var/log/app/app.log\nwriter.appFile.encoding=UTF-8\nwriter.appFile.maxFileSize=10000\nwriter.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter\nwriter.appFile.formatter.format=<アプリケーションログ用のフォーマット>\n\navailableLoggersNamesOrder=MESSAGING,ROO\n\nloggers.ROO.nameRegex=.*\nloggers.ROO.level=INFO\nloggers.ROO.writerNames=appFile\n\nloggers.MESSAGING.nameRegex=MESSAGING\nloggers.MESSAGING.level=INFO\nloggers.MESSAGING.writerNames=appFile\n```\n\n## 出力項目\n\n| 項目名 | 説明 |\n|---|---|\n| 出力日時 | ログ出力時のシステム日時 |\n| 起動プロセスID | アプリケーションを起動したプロセス名。実行環境の特定に使用する |\n| 処理方式区分 | 処理方式の特定に使用する |\n| リクエストID | 処理を一意に識別するID |\n| 実行時ID | 処理の実行を一意に識別するID |\n| ユーザID | ログインユーザのユーザID |\n| スレッド名 | 処理を実行したスレッド名 |\n| メッセージID | メッセージに設定されているメッセージID |\n| 送信宛先 | メッセージに設定されている送信宛先 |\n| 関連メッセージID | メッセージに設定されている関連メッセージID |\n| 応答宛先 | メッセージに設定されている応答宛先 |\n| 有効期間 | メッセージに設定されている有効期間 |\n| メッセージヘッダ | メッセージに設定されているヘッダ |\n| メッセージボディ | メッセージボディ部のダンプ。個人情報・機密情報はマスクして出力(マスク設定が必要) |\n| メッセージボディのヘキサダンプ | メッセージボディ部のヘキサダンプ。マスク対象部分はマスク文字列のヘキサダンプを出力(マスク設定が必要) |\n| メッセージボディのバイト長 | メッセージボディ部のバイト長 |\n\n個別項目(スレッド名〜メッセージボディのバイト長)以外の共通項目は :ref:`Log_BasicLogFormatter` で指定する。共通項目と個別項目を組み合わせたフォーマットは :ref:`AppLog_Format` を参照。\n\n## 出力に使用するクラス\n\n![メッセージングログクラス図](assets/libraries-05_MessagingLog--s1/Log_MessagingLog_ClassDiagram.jpg)\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.fw.messaging.MessagingContext` | MOMメッセージ送受信処理で要求/応答メッセージの相互変換と送受信を行う。実際の送受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.handler.HttpMessagingRequestParsingHandler` | HTTPリクエストを解析して要求メッセージへ変換するハンドラ。受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.handler.HttpMessagingResponseBuildingHandler` | 応答メッセージをHTTPレスポンスへ変換するハンドラ。送信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.realtime.http.client.HttpMessagingClient` | 要求メッセージからHTTPリクエストへの変換およびHTTPレスポンスの応答メッセージへの変換を行う。送受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.logging.MessagingLogUtil` | メッセージング処理中のログ出力内容に関連した処理を行う |\n| `nablarch.fw.messaging.logging.MessagingLogFormatter` | メッセージングログの個別項目をフォーマットする |\n\n各クラスはMessagingLogUtilを使用してメッセージングログを整形し、Loggerを使用してログ出力を行う。\n\n処理シーケンス:\n- MOM同期応答メッセージ受信: ![MOM受信シーケンス図](assets/libraries-05_MessagingLog--s1/Log_MessagingLog_SequenceDiagram_mom_incoming.jpg)\n - MOM応答不要メッセージ受信処理では、MOM受信ログの出力および業務アクションの呼び出しまでの処理が行われる(シーケンス図省略)\n- MOM同期応答メッセージ送信: ![MOM送信シーケンス図](assets/libraries-05_MessagingLog--s1/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg)\n - MOM応答不要メッセージ送信処理では、MOM送信ログの出力および要求キューメッセージの送信までの処理が行われる(シーケンス図省略)\n- HTTPメッセージ受信: ![HTTP受信シーケンス図](assets/libraries-05_MessagingLog--s1/Log_MessagingLog_SequenceDiagram_http_incoming.jpg)\n- HTTPメッセージ送信: ![HTTP送信シーケンス図](assets/libraries-05_MessagingLog--s1/Log_MessagingLog_SequenceDiagram_http_outgoing.jpg)\n\n## 設定方法\n\nMessagingLogUtilはapp-log.propertiesを読み込みMessagingLogFormatterオブジェクトを生成して個別項目のフォーマット処理を委譲する。プロパティファイルのパス指定や実行時設定変更は :ref:`AppLog_Config` を参照。\n\napp-log.propertiesの設定例:\n```bash\nmessagingLogFormatter.className=nablarch.fw.messaging.logging.MessagingLogFormatter\nmessagingLogFormatter.maskingChar=#\nmessagingLogFormatter.maskingPatterns=(.+?),(.+?)\n\nmessagingLogFormatter.sentMessageFormat=@@@@ SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\treply_to = [$replyTo$]\\n\\ttime_to_live = [$timeToLive$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.receivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\treply_to = [$replyTo$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.httpSentMessageFormat=@@@@ HTTP SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.httpReceivedMessageFormat=@@@@ HTTP RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_body = [$messageBody$]\n```\n\n| プロパティ名 | 説明 |\n|---|---|\n| messagingLogFormatter.className | MessagingLogFormatterのクラス名。差し替える場合に指定 |\n| messagingLogFormatter.maskingPatterns | メッセージ本文のマスク対象文字列を正規表現で指定。最初のキャプチャ部分(括弧で囲まれた部分)がマスク対象。複数指定はカンマ区切り。Pattern.CASE_INSENSITIVEでコンパイルされる |\n| messagingLogFormatter.maskingChar | マスクに使用する文字。デフォルトは'*' |\n| messagingLogFormatter.sentMessageFormat | MOM送信メッセージのログ出力フォーマット |\n| messagingLogFormatter.receivedMessageFormat | MOM受信メッセージのログ出力フォーマット |\n| messagingLogFormatter.httpSentMessageFormat | HTTP送信メッセージのログ出力フォーマット |\n| messagingLogFormatter.httpReceivedMessageFormat | HTTP受信メッセージのログ出力フォーマット |\n\n## 出力例\n\ncnoタグ内容をマスクするHTTPメッセージ受信処理の例。\n\napp-log.propertiesの設定例:\n```bash\nmessagingLogFormatter.maskingChar=#\nmessagingLogFormatter.maskingPatterns=(.*?)\nmessagingLogFormatter.httpSentMessageFormat=@@@@ SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_length = [$messageBodyLength$]\\n\\tmessage_body = [$messageBody$]\\n\\tmessage_bodyhex= [$messageBodyHex$]\nmessagingLogFormatter.httpReceivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_length = [$messageBodyLength$]\\n\\tmessage_body = [$messageBody$]\\n\\tmessage_bodyhex= [$messageBodyHex$]\n```\n\nlog.propertiesの設定例:\n```bash\nwriterNames=appFile\n\nwriter.appFile.className=nablarch.core.log.basic.FileLogWriter\nwriter.appFile.filePath=./app.log\nwriter.appFile.encoding=UTF-8\nwriter.appFile.maxFileSize=10000\nwriter.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter\nwriter.appFile.formatter.format=$date$ -$logLevel$- $loggerName$ [$executionId$] boot_proc = [$bootProcess$] proc_sys = [$processingSystem$] req_id = [$requestId$] usr_id = [$userId$] $message$$information$$stackTrace$\n\navailableLoggersNamesOrder=MESSAGING\n\nloggers.MESSAGING.nameRegex=MESSAGING\nloggers.MESSAGING.level=INFO\nloggers.MESSAGING.writerNames=appFile\n```\n\n出力例(cnoタグの内容はmaskingCharで指定した文字にマスクされ、ヘキサダンプ部分もマスク文字列のヘキサダンプが出力される):\n```\n2014-06-27 11:07:51.314 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP RECEIVED MESSAGE @@@@\n thread_name = [main]\n message_id = [1403834871251]\n destination = [null]\n correlation_id = [null]\n message_header = [{x-message-id=1403834871251, MessageId=1403834871251, ReplyTo=/action/RM11AC0102}]\n message_length = [216]\n message_body = [<_nbctlhdr>unitTest0nablarchナブラーク****************]\n message_bodyhex= [3C3F786D6C...(マスク文字列のヘキサダンプ)]\n2014-06-27 11:07:51.329 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP SENT MESSAGE @@@@\n thread_name = [main]\n message_id = [null]\n destination = [/action/RM11AC0102]\n correlation_id = [1403834871251]\n message_header = [{CorrelationId=1403834871251, Destination=/action/RM11AC0102}]\n message_length = [145]\n message_body = [<_nbctlhdr>200success]\n message_bodyhex= [3C3F786D6C...(ヘキサダンプ)]\n```", - "s2": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信宛先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| 応答宛先 | $replyTo$ |\n| 有効期間 | $timeToLive$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ SENT MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\treply_to = [$replyTo$]\n \\n\\ttime_to_live = [$timeToLive$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s3": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信宛先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| 応答宛先 | $replyTo$ |\n| 有効期間 | $timeToLive$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ RECEIVED MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\treply_to = [$replyTo$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s4": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n| メッセージのヘッダ | $messageHeader$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ HTTP SENT MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\tmessage_header = [$messageHeader$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s5": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n| メッセージのヘッダ | $messageHeader$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ HTTP RECEIVED MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\tmessage_header = [$messageHeader$]\n \\n\\tmessage_body = [$messageBody$]\n```" - } -} \ No newline at end of file diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json index 893654152..f59268c25 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json @@ -14,7 +14,10 @@ "popupOption", "displayMethod", "secure", - "uri" + "uri", + "name", + "shape", + "coords" ] }, { @@ -27,7 +30,16 @@ "二重サブミット", "displayMethod", "secure", - "uri" + "uri", + "name", + "type", + "disabled", + "value", + "src", + "alt", + "usemap", + "align", + "autofocus" ] }, { @@ -40,7 +52,12 @@ "二重サブミット", "displayMethod", "secure", - "uri" + "uri", + "name", + "value", + "type", + "disabled", + "autofocus" ] }, { @@ -53,7 +70,10 @@ "二重サブミット", "displayMethod", "secure", - "uri" + "uri", + "name", + "shape", + "coords" ] }, { @@ -63,7 +83,9 @@ "param", "paramName", "サブミットパラメータ", - "パラメータ名" + "パラメータ名", + "name", + "value" ] }, { @@ -85,7 +107,14 @@ "href", "hreflang", "secure", - "target" + "target", + "charset", + "type", + "name", + "rel", + "rev", + "shape", + "coords" ] }, { @@ -97,7 +126,16 @@ "src", "alt", "secure", - "usemap" + "usemap", + "name", + "longdesc", + "height", + "width", + "ismap", + "align", + "border", + "hspace", + "vspace" ] }, { @@ -109,7 +147,12 @@ "href", "media", "secure", - "rel" + "rel", + "charset", + "hreflang", + "type", + "rev", + "target" ] }, { @@ -121,7 +164,11 @@ "src", "xmlSpace", "secure", - "defer" + "defer", + "type", + "id", + "charset", + "language" ] }, { @@ -136,7 +183,11 @@ "ValidationResultMessage", "global", "infoCss", - "warnCss" + "warnCss", + "errorCss", + "nablarch_error", + "nablarch_info", + "nablarch_warn" ] }, { @@ -147,7 +198,8 @@ "エラーメッセージ", "messageFormat", "errorCss", - "nablarch_error" + "nablarch_error", + "name" ] }, { @@ -212,7 +264,7 @@ "s8": "## imgタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| src | ○ | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| alt | ○ | | XHTMLのalt属性 |\n| name | | | XHTMLのname属性 |\n| longdesc | | | XHTMLのlongdesc属性 |\n| height | | | XHTMLのheight属性 |\n| width | | | XHTMLのwidth属性 |\n| usemap | | | XHTMLのusemap属性 |\n| ismap | | | XHTMLのismap属性 |\n| align | | | XHTMLのalign属性 |\n| border | | | XHTMLのborder属性 |\n| hspace | | | XHTMLのhspace属性 |\n| vspace | | | XHTMLのvspace属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", "s9": "## linkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| charset | | | XHTMLのcharset属性 |\n| href | | | XHTMLのhref属性。:ref:`WebView_SpecifyUri` を参照 |\n| hreflang | | | XHTMLのhreflang属性 |\n| type | | | XHTMLのtype属性 |\n| rel | | | XHTMLのrel属性 |\n| rev | | | XHTMLのrev属性 |\n| media | | | XHTMLのmedia属性 |\n| target | | | XHTMLのtarget属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", "s10": "## scriptタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| type | ○ | | XHTMLのtype属性 |\n| id | | | XHTMLのid属性 |\n| charset | | | XHTMLのcharset属性 |\n| language | | | XHTMLのlanguage属性 |\n| src | | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| defer | | | XHTMLのdefer属性 |\n| xmlSpace | | | XHTMLのxml:space属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", - "s11": "## errorsタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| cssClass | | nablarch_errors | リスト表示においてulタグに使用するCSSクラス名 |\n| infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 |\n| warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) |", + "s11": "## errorsタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| cssClass | | nablarch_errors | リスト表示においてulタグに使用するCSSクラス名 |\n| infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 |\n| warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(入力項目に対応しないメッセージのみを表示。ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) |", "s12": "## errorタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | エラーメッセージを表示する入力項目のname属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| messageFormat | | div | メッセージ表示時に使用するフォーマット。div(divタグ)/ span(spanタグ) |", "s13": "## noCacheタグ\n\n属性なし。", "s14": "## codeSelectタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| name | ○ | | XHTMLのname属性 |\n| codeId | ○ | | コードID |\n| size | | | XHTMLのsize属性 |\n| multiple | | | XHTMLのmultiple属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| tabindex | | | XHTMLのtabindex属性 |\n| onfocus | | | XHTMLのonfocus属性 |\n| onblur | | | XHTMLのonblur属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| pattern | | 指定なし | 使用するパターンのカラム名 |\n| optionColumnName | | | 取得するオプション名称のカラム名 |\n| labelPattern | | $NAME$ | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)/ $SHORTNAME$(略称)/ $OPTIONALNAME$(オプション名称、使用時はoptionColumnName必須)/ $VALUE$(コード値) |\n| listFormat | | br | リスト表示時のフォーマット。br / div / span / ul / ol / sp(スペース区切り) |\n| withNoneOption | | false | リスト先頭に選択なしのオプションを追加するか否か |\n| noneOptionLabel | | \"\" | withNoneOptionがtrueの場合に使用する選択なしオプションのラベル |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |", diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s39.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s39.json index 5019a1c8c..0328bc9a8 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s39.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s39.json @@ -68,6 +68,7 @@ "メッセージID", "HTMLエスケープ", "messageId", + "option0~option9", "htmlEscape", "withHtmlFormat", "var", @@ -177,8 +178,8 @@ "s1": "## codeCheckboxesタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | id属性は指定不可。 |\n| :ref:`WebView_FocusAttributesTag` | | | accesskey属性は指定不可。 |\n| name | ○ | | XHTMLのname属性。 |\n| codeId | ○ | | コードID。 |\n| disabled | | | XHTMLのdisabled属性。 |\n| onchange | | | XHTMLのonchange属性。 |\n| autofocus | | | HTML5のautofocus属性。選択肢のうち、先頭要素のみautofocus属性を出力する。 |\n| pattern | | 指定なし | 使用するパターンのカラム名。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| listFormat | | br | リスト表示フォーマット。br/div/span/ul/ol/sp のいずれかを指定。 |\n| errorCss | | \"nablarch_error\" | エラーレベルのメッセージに使用するCSSクラス名。 |\n| nameAlias | | | name属性のエイリアス。複数指定はカンマ区切り。 |", "s2": "## codeCheckboxタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | ○ | | XHTMLのname属性。 |\n| value | | \"1\" | XHTMLのvalue属性。チェックありの場合に使用するコード値。 |\n| autofocus | | | HTML5のautofocus属性。 |\n| codeId | ○ | | コードID。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| offCodeValue | | | チェックなしの場合に使用するコード値。未指定時はcodeId属性の値からチェックなしコード値を検索。検索結果が2件かつ1件がvalue属性値の場合、残り1件を使用。見つからない場合はデフォルト値\"0\"を使用。 |\n| disabled | | | XHTMLのdisabled属性。 |\n| onchange | | | XHTMLのonchange属性。 |\n| errorCss | | \"nablarch_error\" | エラーレベルのメッセージに使用するCSSクラス名。 |\n| nameAlias | | | name属性のエイリアス。複数指定はカンマ区切り。 |", "s3": "## codeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | 表示対象のコード値を変数スコープから取得する名前。省略時はcodeId属性とpattern属性で絞り込んだコードの一覧を表示する。 |\n| codeId | ○ | | コードID。 |\n| pattern | | 指定なし | 使用するパターンのカラム名。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| listFormat | | br | リスト表示フォーマット。br/div/span/ul/ol/sp のいずれかを指定。 |", - "s4": "## messageタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| messageId | ○ | | メッセージID。 |\n| option0~option9 | | | メッセージフォーマットに使用するオプション引数(インデックス0~9)。最大10個まで指定可能。 |\n| language | | スレッドコンテキストの言語 | メッセージの言語。 |\n| var | | | リクエストスコープに格納する変数名。指定した場合はメッセージを出力せずリクエストスコープに設定する。この場合はHTMLエスケープとHTMLフォーマットを行わない。 |\n| htmlEscape | | true | HTMLエスケープするか否か(true/false)。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。htmlEscape=trueの場合のみ有効。 |", - "s5": "## writeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。HTMLエスケープをする場合のみ有効。 |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}`形式で指定。 |\n\n**valueFormatのデータタイプ**:\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字はy(年)、M(月)、d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定可。\n ```\n valueFormat=\"yyyymmdd\"\n valueFormat=\"yyyymmdd{yyyy/MM/dd}\"\n ```\n\n- **yyyymm**: 年月フォーマット。値はyyyyMM形式の文字列。使用方法はyyyymmddと同様。\n\n- **dateTime**: 日時フォーマット(**writeタグのみで使用可能**)。値はjava.util.Date型。パターンはjava.text.SimpleDateFormat構文。ThreadContextのタイムゾーンを使用。区切り文字\"|\"でパターンにタイムゾーンを直接指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定と区切り文字変更可。\n ```\n valueFormat=\"datetime\"\n valueFormat=\"datetime{|Asia/Tokyo}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss|Asia/Tokyo}\"\n ```\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合、言語に対応する1000区切り文字を除去後にフォーマット。パターンはjava.text.DecimalFormat構文。ThreadContextの言語を使用。区切り文字\"|\"でパターンに言語を直接指定可能。:ref:`WebView_CustomTagConfig` で区切り文字変更可。\n ```\n valueFormat=\"decimal{###,###,###.000}\"\n valueFormat=\"decimal{###,###,###.000|ja}\"\n ```", + "s4": "## messageタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| messageId | ○ | | メッセージID。 |\n| option0~option9 | | | メッセージフォーマットに使用するインデックスが0~9のオプション引数。最大10個まで指定可能。 |\n| language | | スレッドコンテキストの言語 | メッセージの言語。 |\n| var | | | リクエストスコープに格納する変数名。指定した場合はメッセージを出力せずリクエストスコープに設定する。この場合はHTMLエスケープとHTMLフォーマットを行わない。 |\n| htmlEscape | | true | HTMLエスケープするか否か(true/false)。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。htmlEscape=trueの場合のみ有効。 |", + "s5": "## writeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。HTMLエスケープをする場合のみ有効。 |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}`形式で指定。 |\n\n**valueFormatのデータタイプ**:\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字はy(年)、M(月)、d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定可。\n ```\n valueFormat=\"yyyymmdd\"\n valueFormat=\"yyyymmdd{yyyy/MM/dd}\"\n ```\n\n- **yyyymm**: 年月フォーマット。値はyyyyMM形式またはパターン形式の文字列を指定する。使用方法は、yyyymmddと同様。\n\n- **dateTime**: 日時フォーマット(**writeタグのみで使用可能**)。値はjava.util.Date型。パターンはjava.text.SimpleDateFormat構文。ThreadContextのタイムゾーンを使用。区切り文字\"|\"でパターンにタイムゾーンを直接指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定と区切り文字変更可。\n ```\n valueFormat=\"datetime\"\n valueFormat=\"datetime{|Asia/Tokyo}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss|Asia/Tokyo}\"\n ```\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合、言語に対応する1000区切り文字を除去後にフォーマット。パターンはjava.text.DecimalFormat構文。ThreadContextの言語を使用。区切り文字\"|\"でパターンに言語を直接指定可能。:ref:`WebView_CustomTagConfig` で区切り文字変更可。\n ```\n valueFormat=\"decimal{###,###,###.000}\"\n valueFormat=\"decimal{###,###,###.000|ja}\"\n ```", "s6": "## prettyPrintタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |", "s7": "## rawWriteタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n\n### setタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| var | ○ | | リクエストスコープに格納する変数名。 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する。 |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する。 |\n| scope | | リクエストスコープ | 変数を格納するスコープ。page(ページスコープ)またはrequest(リクエストスコープ)。 |\n| bySingleValue | | true | name属性に対応する値を単一値として取得するか否か。 |", "s8": "## includeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| path | ○ | | インクルード先のパス。 |", diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s1.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s1.json index 4986d7a16..d3ec183ea 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s1.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s1.json @@ -69,24 +69,17 @@ }, { "id": "s6", - "title": "RequestIdAttributeの設定", + "title": "RequestIdAttribute / InternalRequestIdAttributeの設定", "hints": [ "RequestIdAttribute", - "リクエストID設定", - "設定プロパティ" - ] - }, - { - "id": "s7", - "title": "InternalRequestIdAttributeの設定", - "hints": [ "InternalRequestIdAttribute", + "リクエストID設定", "内部リクエストID設定", "設定プロパティ" ] }, { - "id": "s8", + "id": "s7", "title": "使用方法", "hints": [ "ThreadContextHandler", @@ -96,13 +89,15 @@ "LanguageAttribute", "TimeZoneAttribute", "ExecutionIdAttribute", + "ForwardingHandler", + "FwHeaderReader", "言語切り替え", "タイムゾーン切り替え", "国際化" ] }, { - "id": "s9", + "id": "s8", "title": "LanguageAttribute選択基準", "hints": [ "LanguageAttribute", @@ -117,6 +112,21 @@ "ログイン時言語取得" ] }, + { + "id": "s9", + "title": "TimeZoneAttribute選択基準", + "hints": [ + "TimeZoneAttribute", + "TimeZoneAttributeInHttpCookie", + "TimeZoneAttributeInHttpSession", + "TimeZoneAttributeInHttpSupport", + "TimeZoneAttributeInHttpUtil", + "タイムゾーン選択", + "国際化", + "タイムゾーン切り替え", + "ログイン時タイムゾーン取得" + ] + }, { "id": "s10", "title": "TimeZoneAttribute選択基準", @@ -149,15 +159,15 @@ } ], "sections": { - "s1": "スレッドコンテキストはスレッドローカル変数上の変数スコープ。ユーザIDやリクエストIDなど、実行コンテキスト経由での引き回しが難しいパラメータを格納する。\n\n- 多くの値は:doc:`../handler/ThreadContextHandler`によって設定される\n- 子スレッドを起動した場合、親スレッドの値が暗黙的に引き継がれる\n- 子スレッドで値を変更する場合は、明示的に子スレッドで値を設定すること\n\n![クラス図](assets/libraries-thread_context--s1/thread_context.jpg)", + "s1": "スレッドコンテキストはスレッドローカル変数上の変数スコープ。ユーザIDやリクエストIDなど、実行コンテキスト経由での引き回しが難しいパラメータを格納する。\n\n- 多くの値は:doc:`../handler/ThreadContextHandler`によって設定される\n- それ以外ハンドラでも、スレッドコンテキストに変数を設定するものが存在する\n- 業務アクションハンドラから任意の変数を設定することも可能\n- 子スレッドを起動した場合、親スレッドの値が暗黙的に引き継がれる\n- 子スレッドで値を変更する場合は、明示的に子スレッドで値を設定すること\n\n![クラス図](assets/libraries-thread_context--s1/thread_context.jpg)", "s2": "| クラス・インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.handler.threadcontext.ThreadContextAttribute` | スレッドコンテキストに属性を設定するインタフェース。実装クラスはコンテキストから属性値を取得する責務を持つ。 |", "s3": "## コアクラス\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.handler.threadcontext.ThreadContextHandler` | スレッドコンテキストを初期化するハンドラ |\n| `nablarch.common.handler.threadcontext.RequestIdAttribute` | :ref:`リクエストID`をスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.InternalRequestIdAttribute` | :ref:`内部リクエストID`をリクエストIDと同じ値に初期設定する |\n| `nablarch.common.handler.threadcontext.UserIdAttribute` | ログインユーザのユーザIDをスレッドコンテキストに設定するThreadContextAttribute。未ログイン時は未認証ユーザIDを設定 |\n| `nablarch.common.handler.threadcontext.LanguageAttribute` | 言語をスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.TimeZoneAttribute` | タイムゾーンをスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.ExecutionIdAttribute` | :ref:`実行時ID`をスレッドコンテキストに設定するThreadContextAttribute |\n\n## LanguageAttributeのサブクラスとユーティリティ\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute` | HTTPヘッダ(Accept-Language)から言語を取得するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSupport` | HTTP上で言語の選択と保持を行うThreadContextAttributeの実装をサポートするクラス |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie` | クッキーを使用して言語を保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession` | HTTPセッションを使用して言語を保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpUtil` | HTTP上で選択された言語を保持する処理を提供するユーティリティクラス |\n\n## TimeZoneAttributeのサブクラスとユーティリティ\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSupport` | HTTP上で選択されたタイムゾーンの保持を行うThreadContextAttributeの実装をサポートするクラス |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie` | クッキーを使用してタイムゾーンを保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession` | HTTPセッションを使用してタイムゾーンを保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpUtil` | HTTP上で選択されたタイムゾーンを保持する処理を提供するユーティリティクラス |", "s4": "| プロパティ名 | 設定内容 |\n|---|---|\n| attributes | ThreadContextAttributeインタフェースを実装したクラスのリストを設定する |", "s5": "| プロパティ名 | 設定内容 |\n|---|---|\n| sessionKey | セッションからユーザIDを取得する際のキーを設定する。設定しなかった場合、\"USER_ID\"がキーとして使用される |\n| anonymousId | 未ログインユーザに対して設定するユーザIDを設定する。設定しなかった場合、未ログインユーザのユーザIDは設定されない |", - "s6": "RequestIdAttributeには設定値は存在しない。", - "s7": "InternalRequestIdAttributeには設定値は存在しない。", - "s8": "ThreadContextHandlerは、リクエスト毎にスレッドコンテキストの初期化を行う。実際にスレッドコンテキストに設定する値を取得する責務は、ThreadContextAttributeインタフェース実装クラスが持つ。\n\n## フレームワークが提供するThreadContextAttribute実装クラス\n\n- :ref:`リクエストID`\n- :ref:`内部リクエストID`\n- ユーザID\n- 言語\n- タイムゾーン\n- :ref:`実行時ID`\n\n## ThreadContextHandler以外での属性更新\n\n| 属性 | 更新状況 |\n|---|---|\n| :ref:`リクエストID` | :doc:`../architectural_pattern/messaging` のみ、:doc:`../reader/FwHeaderReader` によって更新 |\n| :ref:`内部リクエストID` | Web GUIでは内部フォワード時に:doc:`../handler/ForwardingHandler`で更新。メッセージングでは:doc:`../reader/FwHeaderReader`で更新 |\n| ユーザID | :doc:`../architectural_pattern/messaging` のみ、:doc:`../reader/FwHeaderReader` によって更新 |\n\n## 各属性クラスの仕様\n\n**RequestIdAttribute**: URLの最後の\"/\"から\".\"の間の文字列をリクエストIDとする。\n\n**InternalRequestIdAttribute**: リクエストIDと同じ値に初期設定する。\n\n**UserIdAttribute**: HttpセッションからユーザIDを取得してスレッドコンテキストに設定する。取得できない場合は未ログインを示す特別なユーザIDを設定する。認証処理ではセッションにユーザIDを設定しておく必要がある。\n\n> **注意**: HttpセッションからユーザIDを取得するキーと未ログインユーザIDはプロパティで変更可能。\n\n**ExecutionIdAttribute**: 実行時IDをスレッドコンテキストに設定する。詳細は:ref:`execution_id`参照。", - "s9": "LanguageAttributeクラスは、スレッドコンテキストに設定する言語を取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## LanguageAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| LanguageAttribute | リポジトリの設定で指定された言語をスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトロケールが使用される |\n| HttpLanguageAttribute | HTTPヘッダ(Accept-Language)から取得した言語をスレッドコンテキストに設定する。サポート対象の言語が取得できない場合は親クラスのLanguageAttributeに委譲 |\n| LanguageAttributeInHttpCookie | クッキーを使用した言語の保持を行う。サポート対象の言語が取得できない場合は親クラスのHttpLanguageAttributeに委譲 |\n| LanguageAttributeInHttpSession | HTTPセッションを使用した言語の保持を行う。言語の保持にHTTPセッションを使用することを除き、具体的な処理はLanguageAttributeInHttpCookieと同じ |\n| LanguageAttributeInHttpUtil | LanguageAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択した言語を保持する処理(言語選択処理やログイン処理でのクッキー/HTTPセッションへの言語設定)を提供するユーティリティクラス。リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | 言語の選択 | 言語の保存 | 説明 |\n|---|---|---|---|\n| LanguageAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。言語は常に固定となる。アプリ実装不要 |\n| HttpLanguageAttribute | ブラウザの言語設定 | ブラウザの言語設定 | ブラウザ設定に応じて切り替え。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。アプリ実装不要 |\n| LanguageAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリが言語選択画面を提供。ログイン前でも有効。ブラウザ単位で保持。選択言語をクッキーに設定する処理はLanguageAttributeInHttpUtilが提供 |\n| LanguageAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリが言語選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じ言語が適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づく言語の取得処理(HTTPセッションへの言語設定はLanguageAttributeInHttpUtilが提供)、②ユーザに言語を選択させる画面処理(選択言語のHTTPセッション設定はLanguageAttributeInHttpUtilが提供)、③選択された言語をユーザに紐付けてデータベースに保存する処理 |\n\nLanguageAttributeInHttpUtilを使用する場合、リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録すること。", + "s6": "RequestIdAttributeには設定値は存在しない。\n\nInternalRequestIdAttributeには設定値は存在しない。", + "s7": "ThreadContextHandlerは、リクエスト毎にスレッドコンテキストの初期化を行う。実際にスレッドコンテキストに設定する値を取得する責務は、ThreadContextAttributeインタフェース実装クラスが持つ。\n\n## フレームワークが提供するThreadContextAttribute実装クラス\n\n- :ref:`リクエストID`\n- :ref:`内部リクエストID`\n- ユーザID\n- 言語\n- タイムゾーン\n- :ref:`実行時ID`\n\n## ThreadContextHandler以外での属性更新\n\n| 属性 | 更新状況 |\n|---|---|\n| :ref:`リクエストID` | :doc:`../architectural_pattern/messaging` のみ、:doc:`../reader/FwHeaderReader` によって更新 |\n| :ref:`内部リクエストID` | Web GUIでは内部フォワード時に:doc:`../handler/ForwardingHandler`で更新。メッセージングでは:doc:`../reader/FwHeaderReader`で更新 |\n| ユーザID | :doc:`../architectural_pattern/messaging` のみ、:doc:`../reader/FwHeaderReader` によって更新 |\n\n## 各属性クラスの仕様\n\n**RequestIdAttribute**: URLの最後の\"/\"から\".\"の間の文字列をリクエストIDとする。\n\n**InternalRequestIdAttribute**: リクエストIDと同じ値に初期設定する。\n\n**UserIdAttribute**: HttpセッションからユーザIDを取得してスレッドコンテキストに設定する。取得できない場合は未ログインを示す特別なユーザIDを設定する。認証処理ではセッションにユーザIDを設定しておく必要がある。\n\n> **注意**: HttpセッションからユーザIDを取得するキーと未ログインユーザIDはプロパティで変更可能。\n\n**ExecutionIdAttribute**: 実行時IDをスレッドコンテキストに設定する。詳細は:ref:`execution_id`参照。", + "s8": "LanguageAttributeクラスは、スレッドコンテキストに設定する言語を取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## LanguageAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| LanguageAttribute | リポジトリの設定で指定された言語をスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトロケールが使用される |\n| HttpLanguageAttribute | HTTPヘッダ(Accept-Language)から取得した言語をスレッドコンテキストに設定する。サポート対象の言語が取得できない場合は親クラスのLanguageAttributeに委譲 |\n| LanguageAttributeInHttpCookie | クッキーを使用した言語の保持を行う。サポート対象の言語が取得できない場合は親クラスのHttpLanguageAttributeに委譲 |\n| LanguageAttributeInHttpSession | HTTPセッションを使用した言語の保持を行う。言語の保持にHTTPセッションを使用することを除き、具体的な処理はLanguageAttributeInHttpCookieと同じ |\n| LanguageAttributeInHttpUtil | LanguageAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択した言語を保持する処理(言語選択処理やログイン処理でのクッキー/HTTPセッションへの言語設定)を提供するユーティリティクラス。リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | 言語の選択 | 言語の保存 | 説明 |\n|---|---|---|---|\n| LanguageAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。言語は常に固定となる。アプリ実装不要 |\n| HttpLanguageAttribute | ブラウザの言語設定 | ブラウザの言語設定 | ブラウザ設定に応じて切り替え。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。アプリ実装不要 |\n| LanguageAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリが言語選択画面を提供。ログイン前でも有効。ブラウザ単位で保持。選択言語をクッキーに設定する処理はLanguageAttributeInHttpUtilが提供 |\n| LanguageAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリが言語選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じ言語が適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づく言語の取得処理(HTTPセッションへの言語設定はLanguageAttributeInHttpUtilが提供)、②ユーザに言語を選択させる画面処理(選択言語のHTTPセッション設定はLanguageAttributeInHttpUtilが提供)、③選択された言語をユーザに紐付けてデータベースに保存する処理 |\n\nLanguageAttributeInHttpUtilを使用する場合、リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録すること。", + "s9": "TimeZoneAttributeクラスは、スレッドコンテキストに設定するタイムゾーンを取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## TimeZoneAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| TimeZoneAttribute | リポジトリの設定で指定されたタイムゾーンをスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトタイムゾーンが使用される |\n| TimeZoneAttributeInHttpCookie | クッキーを使用したタイムゾーンの保持を行う。サポート対象のタイムゾーンが取得できない場合は親クラスのTimeZoneAttributeに委譲 |\n| TimeZoneAttributeInHttpSession | HTTPセッションを使用したタイムゾーンの保持を行う。タイムゾーンの保持にHTTPセッションを使用することを除き、具体的な処理はTimeZoneAttributeInHttpCookieと同じ |\n| TimeZoneAttributeInHttpUtil | TimeZoneAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択したタイムゾーンを保持する処理(タイムゾーン選択処理やログイン処理でのクッキー/HTTPセッションへのタイムゾーン設定)を提供するユーティリティクラス。リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | タイムゾーンの選択 | タイムゾーンの保存 | 説明 |\n|---|---|---|---|\n| TimeZoneAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。タイムゾーンは常に固定となる。アプリ実装不要 |\n| TimeZoneAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリがタイムゾーン選択画面を提供。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。選択タイムゾーンをクッキーに設定する処理はTimeZoneAttributeInHttpUtilが提供 |\n| TimeZoneAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリがタイムゾーン選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じタイムゾーンが適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づくタイムゾーンの取得処理(HTTPセッションへのタイムゾーン設定はTimeZoneAttributeInHttpUtilが提供)、②ユーザにタイムゾーンを選択させる画面処理(選択タイムゾーンのHTTPセッション設定はTimeZoneAttributeInHttpUtilが提供)、③選択されたタイムゾーンをユーザに紐付けてデータベースに保存する処理 |\n\nTimeZoneAttributeInHttpUtilを使用する場合、リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録すること。", "s10": "TimeZoneAttributeクラスは、スレッドコンテキストに設定するタイムゾーンを取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## TimeZoneAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| TimeZoneAttribute | リポジトリの設定で指定されたタイムゾーンをスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトタイムゾーンが使用される |\n| TimeZoneAttributeInHttpCookie | クッキーを使用したタイムゾーンの保持を行う。サポート対象のタイムゾーンが取得できない場合は親クラスのTimeZoneAttributeに委譲 |\n| TimeZoneAttributeInHttpSession | HTTPセッションを使用したタイムゾーンの保持を行う。タイムゾーンの保持にHTTPセッションを使用することを除き、具体的な処理はTimeZoneAttributeInHttpCookieと同じ |\n| TimeZoneAttributeInHttpUtil | TimeZoneAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択したタイムゾーンを保持する処理(タイムゾーン選択処理やログイン処理でのクッキー/HTTPセッションへのタイムゾーン設定)を提供するユーティリティクラス。リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | タイムゾーンの選択 | タイムゾーンの保存 | 説明 |\n|---|---|---|---|\n| TimeZoneAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。タイムゾーンは常に固定となる。アプリ実装不要 |\n| TimeZoneAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリがタイムゾーン選択画面を提供。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。選択タイムゾーンをクッキーに設定する処理はTimeZoneAttributeInHttpUtilが提供 |\n| TimeZoneAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリがタイムゾーン選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じタイムゾーンが適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づくタイムゾーンの取得処理(HTTPセッションへのタイムゾーン設定はTimeZoneAttributeInHttpUtilが提供)、②ユーザにタイムゾーンを選択させる画面処理(選択タイムゾーンのHTTPセッション設定はTimeZoneAttributeInHttpUtilが提供)、③選択されたタイムゾーンをユーザに紐付けてデータベースに保存する処理 |\n\nTimeZoneAttributeInHttpUtilを使用する場合、リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録すること。", "s11": "基本的な属性を設定する場合の設定記述例:\n\n```xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```" } diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s9.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s9.json index 45ad0cbc4..b5547205a 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s9.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-thread_context--s9.json @@ -13,6 +13,7 @@ "LanguageAttributeInHttpCookie", "LanguageAttributeInHttpSession", "LanguageAttributeInHttpUtil", + "I18nHandler", "defaultLanguage", "supportedLanguages", "cookieName", @@ -34,6 +35,7 @@ "TimeZoneAttributeInHttpCookie", "TimeZoneAttributeInHttpSession", "TimeZoneAttributeInHttpUtil", + "I18nHandler", "defaultTimeZone", "supportedTimeZones", "cookieName", @@ -58,8 +60,8 @@ } ], "sections": { - "s1": "## LanguageAttribute\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n\n## HttpLanguageAttribute\n\n**クラス**: `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute`\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n\n## LanguageAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n| cookieName | String | | nablarch_language | 言語を保持するクッキー名 |\n| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 |\n\n`LanguageAttributeInHttpUtil.keepLanguage(request, context, language)`を呼び出すと、クッキーとスレッドコンテキストの両方に言語が設定される。指定された言語がサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramで言語選択リンク):\n\n```jsp\n\n 英語\n \n\n\n 日本語\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String language = getLanguage(request, \"user.language\");\n if (StringUtil.hasValue(language)) {\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## LanguageAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n| sessionKey | String | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づく言語をHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String language = // DBから取得\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", - "s2": "## TimeZoneAttribute\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n\n## TimeZoneAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | String | ○ | | サポート対象タイムゾーン |\n| cookieName | String | | nablarch_timeZone | タイムゾーンを保持するクッキー名 |\n| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 |\n\n`TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone)`を呼び出すと、クッキーとスレッドコンテキストの両方にタイムゾーンが設定される。指定されたタイムゾーンがサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramでタイムゾーン選択リンク):\n\n```jsp\n\n ニューヨーク\n \n\n\n 東京\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String timeZone = getTimeZone(request, \"user.timeZone\");\n if (StringUtil.hasValue(timeZone)) {\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## TimeZoneAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | String | ○ | | サポート対象タイムゾーン |\n| sessionKey | String | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づくタイムゾーンをHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String timeZone = // DBから取得\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", + "s1": "## LanguageAttribute\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n\n## HttpLanguageAttribute\n\n**クラス**: `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute`\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n\n## LanguageAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n| cookieName | | nablarch_language | 言語を保持するクッキー名 |\n| cookiePath | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | | (secure属性なし) | クッキーのsecure属性 |\n\n`LanguageAttributeInHttpUtil.keepLanguage(request, context, language)`を呼び出すと、クッキーとスレッドコンテキストの両方に言語が設定される。指定された言語がサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramで言語選択リンク):\n\n```jsp\n\n 英語\n \n\n\n 日本語\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String language = getLanguage(request, \"user.language\");\n if (StringUtil.hasValue(language)) {\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## LanguageAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n| sessionKey | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づく言語をHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String language = // DBから取得\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", + "s2": "## TimeZoneAttribute\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n\n## TimeZoneAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | ○ | | サポート対象タイムゾーン |\n| cookieName | | nablarch_timeZone | タイムゾーンを保持するクッキー名 |\n| cookiePath | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | | (secure属性なし) | クッキーのsecure属性 |\n\n`TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone)`を呼び出すと、クッキーとスレッドコンテキストの両方にタイムゾーンが設定される。指定されたタイムゾーンがサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramでタイムゾーン選択リンク):\n\n```jsp\n\n ニューヨーク\n \n\n\n 東京\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String timeZone = getTimeZone(request, \"user.timeZone\");\n if (StringUtil.hasValue(timeZone)) {\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## TimeZoneAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | ○ | | サポート対象タイムゾーン |\n| sessionKey | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づくタイムゾーンをHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String timeZone = // DBから取得\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", "s3": "ExecutionIdAttributeには設定値は存在しない。" } } \ No newline at end of file diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json b/tools/knowledge-creator/.cache/v1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json index 0fb6d52bf..89eb64d1a 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator--s13.json @@ -152,7 +152,9 @@ "エスケープ処理", "JSON出力仕様", "Apache POI", - "キャメル変換" + "キャメル変換", + "数値型セル書式", + ".0付与" ] }, { @@ -180,7 +182,7 @@ "s9": "コード設計情報の出力フォーマット。コード定義情報は、コードIDに対応する各セルの値を \"|\" で結合して出力する。キーに含まれる \".\" 以下の文字列(codeValue、sortOrderなど)は固定。\n\n```javascript\ndefine(function(){ return {\"\": \"\"\n\n// コードID情報\n, \"コードID\": [\"コード名称\", \"説明\"]\n\n// コード定義情報\n, \"コードID.codeValue\": [\"コード値\"]\n, \"コードID.sortOrder\": [\"ソート順\"]\n, \"コードID.codeValueName\": [\"名称\"]\n, \"コードID.SHORT_NAME\": [\"略称\"]\n, \"コードID.OPTIONAL_NAME01\": [\"オプション名称1\"]\n// OPTIONAL_NAME02〜09は省略\n, \"コードID.OPTIONAL_NAME10\": [\"オプション名称10\"]\n, \"コードID.PATTERN01\": [\"パターン1\"]\n// PATTERN02〜19は省略\n, \"コードID.PATTERN20\": [\"パターン20\"]\n\n};});\n```\n\n> **注意**: セルの書式が数値型の場合、整数を指定しても自動的に \".0\" が付与される。整数をそのまま取得したい場合は、セルの書式を標準または文字列にすること。", "s10": "外部インターフェース設計情報の出力フォーマット。階層構造型とそれ以外の設計書、どちらが入力の場合も同一フォーマットで出力する。入力設計書に存在しない項目は空文字で出力。\n\n親要素名の設定ルール:\n- 非階層構造型レコード: レコードタイプ名\n- 階層構造型レコード: オブジェクト定義行(項目IDが `[]` で囲まれた行)の項目IDから `[` と `]` を除去した値\n\n```javascript\ndefine(function(){ return {\"\": \"\"\n\n// 外部インターフェース仕様情報\n, \"ファイルIDまたは電文ID\": [\"相手先\", \"入出力取引ID/名称\"]\n\n// データレイアウト情報(プロパティ定義行のみ出力)\n, \"ファイルIDまたは電文ID.親要素名.項目ID\": [\"項目名\", \"ドメイン名\", \"データタイプ\", \"デフォルト値\", \"備考\", \"必須\", \"Byte\", \"開始位置\", \"パディング\", \"小数点位置\", \"フォーマット仕様\", \"寄せ字\", \"属性\", \"多重度\"]\n\n};});\n```", "s11": "自動生成ツールの出力に関する仕様を定義するセクション。各設計書のJSONフォーマット(出力形式)と定義データ出力時のエスケープ処理規則(定義データの出力仕様)を含む。", - "s12": "定義データをJSON形式で出力する際の仕様。エスケープ処理の規則は「エスケープ処理」セクションを参照。設計書ごとにキャメル変換などは行わず、Apache POIで取得した値をそのまま出力する。", - "s13": "定義データをJSON形式で出力する際、以下の文字をエスケープ処理する:\n\n- `\\`(バックスラッシュ)\n- `\"`(ダブルクォート)\n- `/`(スラッシュ)\n- `\\b`(バックスペース)\n- `\\f`(フォームフィード)\n- `\\t`(タブ)\n- `\\n`(改行LF)\n- `\\r`(改行CR)\n\n> **注意**: `\\r` と `\\n` は除去される(エスケープ後の文字列から削除)。" + "s12": "定義データをJSON形式で出力する際の仕様。エスケープ処理の規則は「エスケープ処理」セクションを参照。設計書ごとにキャメル変換などは行わず、Apache POIで取得した値をそのまま出力する。\n\nそのため、セルの書式が数値型の場合に整数を指定しても自動的に\".0\"が付与される。整数をそのまま取得したい場合、当該セルの書式を標準や文字列にすること。", + "s13": "定義データをJSON形式で出力する際、以下の文字をエスケープ処理する:\n\n- `\\`(バックスラッシュ)\n- `\"`(ダブルクォート)\n- `/`(スラッシュ)\n- `\\b`(バックスペース)\n- `\\f`(フォームフィード)\n- `\\t`(タブ)\n- `\\n`(改行LF)\n- `\\r`(改行CR)\n\n> **注意**: `\\r` と `\\n` は除去される。" } } \ No newline at end of file From 3ebdfb42c837d86f80d90b68ff7cb279664462ef Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 17:31:19 +0900 Subject: [PATCH 10/16] fix: fix diff guard and Round 3 to handle index-only changes and target filtering - phase_e_fix.py: diff guard rejection check now also inspects index entry changes, not just sections. Fixes hints_missing findings being rejected when LLM correctly fixes index.hints but sections remain unchanged. - run.py: pass effective_target to _run_final_verification so Round 3 respects --target filtering instead of running on all files. Co-Authored-By: Claude Sonnet 4.6 --- tools/knowledge-creator/scripts/phase_e_fix.py | 13 ++++++++++--- tools/knowledge-creator/scripts/run.py | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/tools/knowledge-creator/scripts/phase_e_fix.py b/tools/knowledge-creator/scripts/phase_e_fix.py index fe3225abf..e7f194fe9 100644 --- a/tools/knowledge-creator/scripts/phase_e_fix.py +++ b/tools/knowledge-creator/scripts/phase_e_fix.py @@ -199,14 +199,21 @@ def fix_one(self, file_info) -> dict: fixed = _apply_diff_guard(knowledge, fixed, allowed_sections, is_full_rebuild=is_full_rebuild) - # Reject if no authorized sections actually changed + # Reject if no authorized sections or index entries actually changed if not is_full_rebuild: input_sections = knowledge.get("sections", {}) - changed = sum( + sections_changed = sum( 1 for sid in allowed_sections if input_sections.get(sid) != fixed.get("sections", {}).get(sid) ) - if changed == 0: + # Also check index hints (hints_missing findings only touch index, not sections) + input_index = {e["id"]: e for e in knowledge.get("index", []) if "id" in e} + output_index = {e["id"]: e for e in fixed.get("index", []) if "id" in e} + index_changed = sum( + 1 for sid in allowed_sections + if input_index.get(sid) != output_index.get(sid) + ) + if sections_changed == 0 and index_changed == 0: self.logger.warning(f" WARNING: {file_id}: diff guard found no changes in allowed sections") return {"status": "error", "id": file_id, "error": "Diff guard: no changes in allowed sections"} diff --git a/tools/knowledge-creator/scripts/run.py b/tools/knowledge-creator/scripts/run.py index bfef1007b..1b0945184 100755 --- a/tools/knowledge-creator/scripts/run.py +++ b/tools/knowledge-creator/scripts/run.py @@ -566,7 +566,7 @@ def _run_pipeline(ctx, args): and len(report.get("phase_e_rounds", [])) == len(report.get("phase_d_rounds", [])) ) if loop_ended_with_fix and "D" in phases: - final_result = _run_final_verification(ctx, ctx.max_rounds, phases) + final_result = _run_final_verification(ctx, ctx.max_rounds, phases, effective_target) report["final_verification"] = final_result # Phase M (replaces G+F in default flow) @@ -608,7 +608,7 @@ def _run_pipeline(ctx, args): logger.info(f"\n 📄 Reports saved: {ctx.reports_dir}/{ctx.run_id}.*") -def _run_final_verification(ctx, max_rounds, phases): +def _run_final_verification(ctx, max_rounds, phases, target_ids=None): """最終検証: CDE ループ後に C→D を 1 回実行。E(修正)は呼ばない。""" logger = get_logger() final_round = max_rounds + 1 @@ -620,7 +620,7 @@ def _run_final_verification(ctx, max_rounds, phases): if "C" in phases: logger.info("\n✅Phase C: Structure Check (Final)") from phase_c_structure_check import PhaseCStructureCheck - c_result = PhaseCStructureCheck(ctx).run() + c_result = PhaseCStructureCheck(ctx).run(target_ids=target_ids) result["phase_c"] = { "total": c_result.get("total", 0), "pass": c_result.get("pass", 0), @@ -631,8 +631,16 @@ def _run_final_verification(ctx, max_rounds, phases): logger.info("\n🔍Phase D: Content Check (Final)") from phase_d_content_check import PhaseDContentCheck pass_ids = c_result.get("pass_ids") if c_result else None + # Intersect with target_ids if specified + if target_ids and pass_ids is not None: + target_set = set(target_ids) + effective_ids = [fid for fid in pass_ids if fid in target_set] + elif target_ids: + effective_ids = target_ids + else: + effective_ids = pass_ids d_result = PhaseDContentCheck(ctx).run( - target_ids=pass_ids, round_num=final_round + target_ids=effective_ids, round_num=final_round ) findings_summary = _aggregate_findings(ctx, round_num=final_round) result["phase_d"] = { From 9012033a8b6201764135af449e5b214a4d8ac10e Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 17:31:23 +0900 Subject: [PATCH 11/16] chore: update v1.4 cache and output after diff guard fix Fixed libraries-07_TagReference--s11 and s1 (hints_missing now correctly applied), libraries-04_Permission--s1 and s10. Also reflects prior libraries-thread_context, toolbox-01_DefInfoGenerator fixes and libraries-05_MessagingLog removal in output files. Co-Authored-By: Claude Sonnet 4.6 --- .claude/skills/nabledge-1.4/docs/README.md | 3 +- .../libraries/libraries-04_Permission.md | 30 +- .../libraries/libraries-05_MessagingLog.md | 299 ----------- .../libraries/libraries-07_TagReference.md | 38 +- .../libraries/libraries-thread_context.md | 127 +++-- .../toolbox/toolbox-01_DefInfoGenerator.md | 6 +- .../Log_MessagingLog_ClassDiagram.jpg | Bin 91599 -> 0 bytes ...agingLog_SequenceDiagram_http_incoming.jpg | Bin 40304 -> 0 bytes ...agingLog_SequenceDiagram_http_outgoing.jpg | Bin 39767 -> 0 bytes ...sagingLog_SequenceDiagram_mom_incoming.jpg | Bin 39410 -> 0 bytes ...sagingLog_SequenceDiagram_mom_outgoing.jpg | Bin 39217 -> 0 bytes .../libraries/libraries-04_Permission.json | 9 +- .../libraries/libraries-05_MessagingLog.json | 109 ---- .../libraries/libraries-07_TagReference.json | 179 ++++++- .../libraries/libraries-thread_context.json | 46 +- .../toolbox/toolbox-01_DefInfoGenerator.json | 8 +- .../skills/nabledge-1.4/knowledge/index.toon | 2 +- .../.cache/v1.4/catalog.json | 472 +++++++++--------- .../libraries-04_Permission--s1.json | 2 +- .../libraries-04_Permission--s10.json | 2 + .../libraries-07_TagReference--s1.json | 78 +++ .../libraries-07_TagReference--s11.json | 48 ++ .../libraries-07_TagReference--s24.json | 4 +- 23 files changed, 697 insertions(+), 765 deletions(-) delete mode 100644 .claude/skills/nabledge-1.4/docs/component/libraries/libraries-05_MessagingLog.md delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_ClassDiagram.jpg delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_incoming.jpg delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_outgoing.jpg delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_incoming.jpg delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg delete mode 100644 .claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-05_MessagingLog.json diff --git a/.claude/skills/nabledge-1.4/docs/README.md b/.claude/skills/nabledge-1.4/docs/README.md index e66249321..423d3e369 100644 --- a/.claude/skills/nabledge-1.4/docs/README.md +++ b/.claude/skills/nabledge-1.4/docs/README.md @@ -1,6 +1,6 @@ # Nablarch 6 ドキュメント -456 ページ +455 ページ ## about @@ -122,7 +122,6 @@ - [データベースコネクション名とトランザクション名](component/libraries/libraries-04_TransactionConnectionName.md) - [トランザクションタイムアウト機能](component/libraries/libraries-04_TransactionTimeout.md) - [ファイルダウンロード](component/libraries/libraries-05_FileDownload.md) -- [メッセージングログの出力](component/libraries/libraries-05_MessagingLog.md) - [開閉局](component/libraries/libraries-05_ServiceAvailability.md) - [静的データのキャッシュ](component/libraries/libraries-05_StaticDataCache.md) - [ファイルアップロード](component/libraries/libraries-06_FileUpload.md) diff --git a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-04_Permission.md b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-04_Permission.md index f73b21253..3ab41e85a 100644 --- a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-04_Permission.md +++ b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-04_Permission.md @@ -193,7 +193,7 @@ BasicPermissionFactoryクラスは初期化が必要なため :ref:`repository_i
keywords -認可チェック, PermissionCheckHandler, ハンドラ, 認可処理, BasicPermissionFactory, WebFrontController, RequestHandlerEntry, GroupTableSchema, SystemAccountTableSchema, GroupSystemAccountTableSchema, PermissionUnitTableSchema, PermissionUnitRequestTableSchema, GroupAuthorityTableSchema, SystemAccountAuthorityTableSchema, BasicBusinessDateProvider, SimpleDbTransactionManager, BasicApplicationInitializer, permissionFactory, ignoreRequestIds, dbManager, groupTableSchema, systemAccountTableSchema, groupSystemAccountTableSchema, permissionUnitTableSchema, permissionUnitRequestTableSchema, groupAuthorityTableSchema, systemAccountAuthorityTableSchema, businessDateProvider, tableName, groupIdColumnName, userIdColumnName, userIdLockedColumnName, failedCountColumnName, effectiveDateFromColumnName, effectiveDateToColumnName, permissionUnitIdColumnName, requestIdColumnName, 認可チェック設定, スキーマ情報設定, BasicPermissionFactory設定, PermissionCheckHandler設定 +認可チェック, PermissionCheckHandler, ハンドラ, 認可処理, BasicPermissionFactory, WebFrontController, RequestHandlerEntry, GroupTableSchema, SystemAccountTableSchema, GroupSystemAccountTableSchema, PermissionUnitTableSchema, PermissionUnitRequestTableSchema, GroupAuthorityTableSchema, SystemAccountAuthorityTableSchema, BasicBusinessDateProvider, SimpleDbTransactionManager, BasicApplicationInitializer, BusinessDateProvider, Initializable, permissionFactory, ignoreRequestIds, dbManager, groupTableSchema, systemAccountTableSchema, groupSystemAccountTableSchema, permissionUnitTableSchema, permissionUnitRequestTableSchema, groupAuthorityTableSchema, systemAccountAuthorityTableSchema, businessDateProvider, tableName, groupIdColumnName, userIdColumnName, userIdLockedColumnName, failedCountColumnName, effectiveDateFromColumnName, effectiveDateToColumnName, permissionUnitIdColumnName, requestIdColumnName, 認可チェック設定, スキーマ情報設定, BasicPermissionFactory設定, PermissionCheckHandler設定
@@ -250,7 +250,7 @@ BasicPermissionFactoryクラスは初期化が必要なため :ref:`repository_i > **注意**: 下記のコードはフレームワークが行う処理であり、通常のアプリケーションでは実装する必要がない。 -PermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。`nablarch.common.permission.PermissionUtil`からPermissionを取得し、リクエストIDを指定して認可判定を行う。 +PermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。PermissionUtilからPermissionを取得し、リクエストIDを指定して認可判定を行う。 ```java // PermissionUtilからPermissionを取得する @@ -284,7 +284,17 @@ if (permission.permit("リクエストID")) { - グループに認可単位を紐付け → グループ権限 - ユーザに認可単位を直接紐付け → ユーザ権限 -> **注意**: グループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。 +グループ権限とユーザ権限の例: + +| ユーザ | 説明 | +|---|---| +| Aさん | 人事部グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 | +| Bさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。 | +| Cさん | パートナーグループに紐づいているので、社員情報変更のみ使用できる。 | +| Xさん | 部長グループと社員グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 | +| Yさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。さらにDさんは、社員登録認可単位に直接紐づいているので、社員登録も使用できる。 | + +> **注意**: Yさんのようにグループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。 > **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。 @@ -304,12 +314,22 @@ if (permission.permit("リクエストID")) { | `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する | | `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する | -**実装クラス**: +**Permissionの実装クラス**: | クラス名 | 概要 | |---|---| | `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス | + +**PermissionFactoryの実装クラス**: + +| クラス名 | 概要 | +|---|---| | `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する | + +**その他のクラス**: + +| クラス名 | 概要 | +|---|---| | `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ | | `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ | @@ -395,6 +415,6 @@ PermissionCheckHandler, PermissionUtil, ignoreRequestIdsSetting, ThreadContextHa
keywords -テーブル定義, グループ, グループID, システムアカウント, ユーザID, ユーザIDロック, グループシステムアカウント, 認可単位, 認可単位ID, 認可単位リクエスト, リクエストID, グループ権限, システムアカウント権限, BasicPermissionFactory +テーブル定義, グループ, グループID, システムアカウント, ユーザID, ユーザIDロック, 有効日, グループシステムアカウント, 認可単位, 認可単位ID, 認可単位リクエスト, リクエストID, グループ権限, システムアカウント権限, BasicPermissionFactory
diff --git a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-05_MessagingLog.md b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-05_MessagingLog.md deleted file mode 100644 index b96ff4625..000000000 --- a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-05_MessagingLog.md +++ /dev/null @@ -1,299 +0,0 @@ -# メッセージングログの出力 - -## メッセージングログの出力 - -## 出力方針 - -ログレベル: INFO、ロガー名: MESSAGINGとしてアプリケーションログへ出力する。 - -log.propertiesの設定例: -```bash -writerNames=appFile - -writer.appFile.className=nablarch.core.log.basic.FileLogWriter -writer.appFile.filePath=/var/log/app/app.log -writer.appFile.encoding=UTF-8 -writer.appFile.maxFileSize=10000 -writer.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter -writer.appFile.formatter.format=<アプリケーションログ用のフォーマット> - -availableLoggersNamesOrder=MESSAGING,ROO - -loggers.ROO.nameRegex=.* -loggers.ROO.level=INFO -loggers.ROO.writerNames=appFile - -loggers.MESSAGING.nameRegex=MESSAGING -loggers.MESSAGING.level=INFO -loggers.MESSAGING.writerNames=appFile -``` - -## 出力項目 - -| 項目名 | 説明 | -|---|---| -| 出力日時 | ログ出力時のシステム日時 | -| 起動プロセスID | アプリケーションを起動したプロセス名。実行環境の特定に使用する | -| 処理方式区分 | 処理方式の特定に使用する | -| リクエストID | 処理を一意に識別するID | -| 実行時ID | 処理の実行を一意に識別するID | -| ユーザID | ログインユーザのユーザID | -| スレッド名 | 処理を実行したスレッド名 | -| メッセージID | メッセージに設定されているメッセージID | -| 送信宛先 | メッセージに設定されている送信宛先 | -| 関連メッセージID | メッセージに設定されている関連メッセージID | -| 応答宛先 | メッセージに設定されている応答宛先 | -| 有効期間 | メッセージに設定されている有効期間 | -| メッセージヘッダ | メッセージに設定されているヘッダ | -| メッセージボディ | メッセージボディ部のダンプ。個人情報・機密情報はマスクして出力(マスク設定が必要) | -| メッセージボディのヘキサダンプ | メッセージボディ部のヘキサダンプ。マスク対象部分はマスク文字列のヘキサダンプを出力(マスク設定が必要) | -| メッセージボディのバイト長 | メッセージボディ部のバイト長 | - -個別項目(スレッド名〜メッセージボディのバイト長)以外の共通項目は :ref:`Log_BasicLogFormatter` で指定する。共通項目と個別項目を組み合わせたフォーマットは :ref:`AppLog_Format` を参照。 - -## 出力に使用するクラス - -![メッセージングログクラス図](../../../knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_ClassDiagram.jpg) - -| クラス名 | 概要 | -|---|---| -| `nablarch.fw.messaging.MessagingContext` | MOMメッセージ送受信処理で要求/応答メッセージの相互変換と送受信を行う。実際の送受信メッセージ内容をログ出力する | -| `nablarch.fw.messaging.handler.HttpMessagingRequestParsingHandler` | HTTPリクエストを解析して要求メッセージへ変換するハンドラ。受信メッセージ内容をログ出力する | -| `nablarch.fw.messaging.handler.HttpMessagingResponseBuildingHandler` | 応答メッセージをHTTPレスポンスへ変換するハンドラ。送信メッセージ内容をログ出力する | -| `nablarch.fw.messaging.realtime.http.client.HttpMessagingClient` | 要求メッセージからHTTPリクエストへの変換およびHTTPレスポンスの応答メッセージへの変換を行う。送受信メッセージ内容をログ出力する | -| `nablarch.fw.messaging.logging.MessagingLogUtil` | メッセージング処理中のログ出力内容に関連した処理を行う | -| `nablarch.fw.messaging.logging.MessagingLogFormatter` | メッセージングログの個別項目をフォーマットする | - -各クラスはMessagingLogUtilを使用してメッセージングログを整形し、Loggerを使用してログ出力を行う。 - -処理シーケンス: -- MOM同期応答メッセージ受信: ![MOM受信シーケンス図](../../../knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_incoming.jpg) - - MOM応答不要メッセージ受信処理では、MOM受信ログの出力および業務アクションの呼び出しまでの処理が行われる(シーケンス図省略) -- MOM同期応答メッセージ送信: ![MOM送信シーケンス図](../../../knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg) - - MOM応答不要メッセージ送信処理では、MOM送信ログの出力および要求キューメッセージの送信までの処理が行われる(シーケンス図省略) -- HTTPメッセージ受信: ![HTTP受信シーケンス図](../../../knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_incoming.jpg) -- HTTPメッセージ送信: ![HTTP送信シーケンス図](../../../knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_outgoing.jpg) - -## 設定方法 - -MessagingLogUtilはapp-log.propertiesを読み込みMessagingLogFormatterオブジェクトを生成して個別項目のフォーマット処理を委譲する。プロパティファイルのパス指定や実行時設定変更は :ref:`AppLog_Config` を参照。 - -app-log.propertiesの設定例: -```bash -messagingLogFormatter.className=nablarch.fw.messaging.logging.MessagingLogFormatter -messagingLogFormatter.maskingChar=# -messagingLogFormatter.maskingPatterns=(.+?),(.+?) - -messagingLogFormatter.sentMessageFormat=@@@@ SENT MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\treply_to = [$replyTo$]\n\ttime_to_live = [$timeToLive$]\n\tmessage_body = [$messageBody$] -messagingLogFormatter.receivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\treply_to = [$replyTo$]\n\tmessage_body = [$messageBody$] -messagingLogFormatter.httpSentMessageFormat=@@@@ HTTP SENT MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\tmessage_header = [$messageHeader$]\n\tmessage_body = [$messageBody$] -messagingLogFormatter.httpReceivedMessageFormat=@@@@ HTTP RECEIVED MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\tmessage_header = [$messageHeader$]\n\tmessage_body = [$messageBody$] -``` - -| プロパティ名 | 説明 | -|---|---| -| messagingLogFormatter.className | MessagingLogFormatterのクラス名。差し替える場合に指定 | -| messagingLogFormatter.maskingPatterns | メッセージ本文のマスク対象文字列を正規表現で指定。最初のキャプチャ部分(括弧で囲まれた部分)がマスク対象。複数指定はカンマ区切り。Pattern.CASE_INSENSITIVEでコンパイルされる | -| messagingLogFormatter.maskingChar | マスクに使用する文字。デフォルトは'*' | -| messagingLogFormatter.sentMessageFormat | MOM送信メッセージのログ出力フォーマット | -| messagingLogFormatter.receivedMessageFormat | MOM受信メッセージのログ出力フォーマット | -| messagingLogFormatter.httpSentMessageFormat | HTTP送信メッセージのログ出力フォーマット | -| messagingLogFormatter.httpReceivedMessageFormat | HTTP受信メッセージのログ出力フォーマット | - -## 出力例 - -cnoタグ内容をマスクするHTTPメッセージ受信処理の例。 - -app-log.propertiesの設定例: -```bash -messagingLogFormatter.maskingChar=# -messagingLogFormatter.maskingPatterns=(.*?) -messagingLogFormatter.httpSentMessageFormat=@@@@ SENT MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\tmessage_header = [$messageHeader$]\n\tmessage_length = [$messageBodyLength$]\n\tmessage_body = [$messageBody$]\n\tmessage_bodyhex= [$messageBodyHex$] -messagingLogFormatter.httpReceivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\n\tthread_name = [$threadName$]\n\tmessage_id = [$messageId$]\n\tdestination = [$destination$]\n\tcorrelation_id = [$correlationId$]\n\tmessage_header = [$messageHeader$]\n\tmessage_length = [$messageBodyLength$]\n\tmessage_body = [$messageBody$]\n\tmessage_bodyhex= [$messageBodyHex$] -``` - -log.propertiesの設定例: -```bash -writerNames=appFile - -writer.appFile.className=nablarch.core.log.basic.FileLogWriter -writer.appFile.filePath=./app.log -writer.appFile.encoding=UTF-8 -writer.appFile.maxFileSize=10000 -writer.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter -writer.appFile.formatter.format=$date$ -$logLevel$- $loggerName$ [$executionId$] boot_proc = [$bootProcess$] proc_sys = [$processingSystem$] req_id = [$requestId$] usr_id = [$userId$] $message$$information$$stackTrace$ - -availableLoggersNamesOrder=MESSAGING - -loggers.MESSAGING.nameRegex=MESSAGING -loggers.MESSAGING.level=INFO -loggers.MESSAGING.writerNames=appFile -``` - -出力例(cnoタグの内容はmaskingCharで指定した文字にマスクされ、ヘキサダンプ部分もマスク文字列のヘキサダンプが出力される): -``` -2014-06-27 11:07:51.314 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP RECEIVED MESSAGE @@@@ - thread_name = [main] - message_id = [1403834871251] - destination = [null] - correlation_id = [null] - message_header = [{x-message-id=1403834871251, MessageId=1403834871251, ReplyTo=/action/RM11AC0102}] - message_length = [216] - message_body = [<_nbctlhdr>unitTest0nablarchナブラーク****************] - message_bodyhex= [3C3F786D6C...(マスク文字列のヘキサダンプ)] -2014-06-27 11:07:51.329 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP SENT MESSAGE @@@@ - thread_name = [main] - message_id = [null] - destination = [/action/RM11AC0102] - correlation_id = [1403834871251] - message_header = [{CorrelationId=1403834871251, Destination=/action/RM11AC0102}] - message_length = [145] - message_body = [<_nbctlhdr>200success] - message_bodyhex= [3C3F786D6C...(ヘキサダンプ)] -``` - -
-keywords - -MessagingLogUtil, MessagingLogFormatter, MessagingContext, HttpMessagingRequestParsingHandler, HttpMessagingResponseBuildingHandler, HttpMessagingClient, messagingLogFormatter.maskingPatterns, messagingLogFormatter.maskingChar, messagingLogFormatter.sentMessageFormat, messagingLogFormatter.receivedMessageFormat, messagingLogFormatter.httpSentMessageFormat, messagingLogFormatter.httpReceivedMessageFormat, messagingLogFormatter.className, メッセージングログ設定, メッセージボディマスク, MOMメッセージング, HTTPメッセージング, 個人情報マスク, MOM応答不要 - -
- -## MOM送信メッセージのログ出力に使用するフォーマット - -## プレースホルダ一覧 - -| 項目名 | プレースホルダ | -|---|---| -| スレッド名 | $threadName$ | -| メッセージID | $messageId$ | -| 送信宛先 | $destination$ | -| 関連メッセージID | $correlationId$ | -| 応答宛先 | $replyTo$ | -| 有効期間 | $timeToLive$ | -| メッセージボディの内容 | $messageBody$ | -| メッセージボディのヘキサダンプ | $messageBodyHex$ | -| メッセージボディのバイト長 | $messageBodyLength$ | - -## デフォルトフォーマット - -```bash -@@@@ SENT MESSAGE @@@@ - \n\tthread_name = [$threadName$] - \n\tmessage_id = [$messageId$] - \n\tdestination = [$destination$] - \n\tcorrelation_id = [$correlationId$] - \n\treply_to = [$replyTo$] - \n\ttime_to_live = [$timeToLive$] - \n\tmessage_body = [$messageBody$] -``` - -
-keywords - -$threadName$, $messageId$, $destination$, $correlationId$, $replyTo$, $timeToLive$, $messageBody$, $messageBodyHex$, $messageBodyLength$, MOM送信メッセージフォーマット, sentMessageFormat, SENT MESSAGE - -
- -## MOM受信メッセージのログ出力に使用するフォーマット - -## プレースホルダ一覧 - -| 項目名 | プレースホルダ | -|---|---| -| スレッド名 | $threadName$ | -| メッセージID | $messageId$ | -| 送信宛先 | $destination$ | -| 関連メッセージID | $correlationId$ | -| 応答宛先 | $replyTo$ | -| 有効期間 | $timeToLive$ | -| メッセージボディの内容 | $messageBody$ | -| メッセージボディのヘキサダンプ | $messageBodyHex$ | -| メッセージボディのバイト長 | $messageBodyLength$ | - -## デフォルトフォーマット - -```bash -@@@@ RECEIVED MESSAGE @@@@ - \n\tthread_name = [$threadName$] - \n\tmessage_id = [$messageId$] - \n\tdestination = [$destination$] - \n\tcorrelation_id = [$correlationId$] - \n\treply_to = [$replyTo$] - \n\tmessage_body = [$messageBody$] -``` - -
-keywords - -$threadName$, $messageId$, $destination$, $correlationId$, $replyTo$, $timeToLive$, $messageBody$, $messageBodyHex$, $messageBodyLength$, MOM受信メッセージフォーマット, receivedMessageFormat, RECEIVED MESSAGE - -
- -## HTTP送信メッセージのログ出力に使用するフォーマット - -## プレースホルダ一覧 - -| 項目名 | プレースホルダ | -|---|---| -| スレッド名 | $threadName$ | -| メッセージID | $messageId$ | -| 送信先 | $destination$ | -| 関連メッセージID | $correlationId$ | -| メッセージボディの内容 | $messageBody$ | -| メッセージボディのヘキサダンプ | $messageBodyHex$ | -| メッセージボディのバイト長 | $messageBodyLength$ | -| メッセージのヘッダ | $messageHeader$ | - -## デフォルトフォーマット - -```bash -@@@@ HTTP SENT MESSAGE @@@@ - \n\tthread_name = [$threadName$] - \n\tmessage_id = [$messageId$] - \n\tdestination = [$destination$] - \n\tcorrelation_id = [$correlationId$] - \n\tmessage_header = [$messageHeader$] - \n\tmessage_body = [$messageBody$] -``` - -
-keywords - -$threadName$, $messageId$, $destination$, $correlationId$, $messageBody$, $messageBodyHex$, $messageBodyLength$, $messageHeader$, HTTP送信メッセージフォーマット, httpSentMessageFormat, HTTP SENT MESSAGE - -
- -## HTTP受信メッセージのログ出力に使用するフォーマット - -## プレースホルダ一覧 - -| 項目名 | プレースホルダ | -|---|---| -| スレッド名 | $threadName$ | -| メッセージID | $messageId$ | -| 送信先 | $destination$ | -| 関連メッセージID | $correlationId$ | -| メッセージボディの内容 | $messageBody$ | -| メッセージボディのヘキサダンプ | $messageBodyHex$ | -| メッセージボディのバイト長 | $messageBodyLength$ | -| メッセージのヘッダ | $messageHeader$ | - -## デフォルトフォーマット - -```bash -@@@@ HTTP RECEIVED MESSAGE @@@@ - \n\tthread_name = [$threadName$] - \n\tmessage_id = [$messageId$] - \n\tdestination = [$destination$] - \n\tcorrelation_id = [$correlationId$] - \n\tmessage_header = [$messageHeader$] - \n\tmessage_body = [$messageBody$] -``` - -
-keywords - -$threadName$, $messageId$, $destination$, $correlationId$, $messageBody$, $messageBodyHex$, $messageBodyLength$, $messageHeader$, HTTP受信メッセージフォーマット, httpReceivedMessageFormat, HTTP RECEIVED MESSAGE - -
diff --git a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-07_TagReference.md b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-07_TagReference.md index 2d77ed22b..75c3d2f19 100644 --- a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-07_TagReference.md +++ b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-07_TagReference.md @@ -81,8 +81,8 @@ Nablarch WebViewが提供するカスタムタグの一覧。 | shape | | | XHTMLのshape属性 | | coords | | | XHTMLのcoords属性 | | secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse | -| popupWindowName | | | ポップアップのウィンドウ名。window.open関数の第2引数(JavaScript)に指定する | -| popupOption | | | ポップアップのオプション情報。window.open関数の第3引数(JavaScript)に指定する | +| popupWindowName | | | ポップアップのウィンドウ名。新しいウィンドウを開く際にwindwo.open関数の第2引数(JavaScript)に指定する | +| popupOption | | | ポップアップのオプション情報。新しいウィンドウを開く際にwindwo.open関数の第3引数(JavaScript)に指定する | | displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) | ## codeCheckboxesタグ @@ -106,7 +106,7 @@ Nablarch WebViewが提供するカスタムタグの一覧。
keywords -formタグ, textタグ, textareaタグ, passwordタグ, radioButtonタグ, checkboxタグ, selectタグ, submitタグ, カスタムタグ, WebView, サブミット制御, 二重サブミット防止, コード値表示, ポップアップ, ダウンロード, 確認画面, 入力画面, compositeKeyCheckbox, name, valueObject, keyNames, namePrefix, errorCss, nameAlias, 複合キーチェックボックス, 複合キー, popupLink, ポップアップリンク, popupWindowName, popupOption, displayMethod, secure, uri, codeCheckboxes, コードチェックボックス複数, コードID, labelPattern, listFormat, codeId, pattern, optionColumnName, autofocus, disabled, onchange +formタグ, textタグ, textareaタグ, passwordタグ, radioButtonタグ, checkboxタグ, selectタグ, submitタグ, compositeKeyRadioButtonタグ, CompositeKeyRadioButtonTag, fileタグ, FileTag, hiddenタグ, HiddenTag, plainHiddenタグ, PlainHiddenTag, radiobuttonsタグ, RadioButtonsTag, checkboxesタグ, CheckboxesTag, buttonタグ, ButtonTag, submitLinkタグ, SubmitLinkTag, popupSubmitタグ, PopupSubmitTag, popupButtonタグ, PopupButtonTag, popupLinkタグ, PopupLinkTag, downloadSubmitタグ, DownloadSubmitTag, downloadButtonタグ, DownloadButtonTag, downloadLinkタグ, DownloadLinkTag, paramタグ, ParamTag, changeParamNameタグ, ChangeParamNameTag, aタグ, ATag, imgタグ, ImgTag, linkタグ, LinkTag, scriptタグ, ScriptTag, errorsタグ, ErrorsTag, errorタグ, ErrorTag, noCacheタグ, NoCacheTag, codeSelectタグ, CodeSelectTag, codeRadioButtonsタグ, CodeRadioButtonsTag, codeCheckboxesタグ, CodeCheckboxesTag, codeCheckboxタグ, CodeCheckboxTag, codeタグ, CodeTag, messageタグ, MessageTag, writeタグ, WriteTag, prettyPrintタグ, PrettyPrintTag, rawWriteタグ, RawWriteTag, setタグ, SetTag, includeタグ, IncludeTag, includeParamタグ, IncludeParamTag, confirmationPageタグ, ConfirmationPageTag, ignoreConfirmationタグ, IgnoreConfirmationTag, forInputPageタグ, ForInputPageTag, forConfirmationPageタグ, ForConfirmationPageTag, カスタムタグ, WebView, サブミット制御, 二重サブミット防止, コード値表示, ポップアップ, ダウンロード, 確認画面, 入力画面, compositeKeyCheckbox, name, valueObject, keyNames, namePrefix, autofocus, label, disabled, onchange, errorCss, nameAlias, 複合キーチェックボックス, 複合キー, popupLink, ポップアップリンク, popupWindowName, popupOption, displayMethod, secure, uri, shape, coords, codeCheckboxes, コードチェックボックス複数, コードID, labelPattern, listFormat, codeId, pattern, optionColumnName
@@ -190,7 +190,7 @@ formタグ, textタグ, textareaタグ, passwordタグ, radioButtonタグ, check
keywords -共通属性, id, cssClass, style, title, lang, xmlLang, dir, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup, HTMLタグ共通属性, GenericAttributesTag, compositeKeyRadioButton, name, valueObject, keyNames, namePrefix, errorCss, nameAlias, 複合キーラジオボタン, カスタムタグ, 複合キー, downloadSubmit, ダウンロード送信, allowDoubleSubmission, 二重サブミット, displayMethod, secure, uri, codeCheckbox, コードチェックボックス単体, offCodeValue, コード値チェックボックス, codeId, labelPattern, value, autofocus, optionColumnName, disabled, onchange +共通属性, id, cssClass, style, title, lang, xmlLang, dir, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup, HTMLタグ共通属性, GenericAttributesTag, compositeKeyRadioButton, name, valueObject, keyNames, namePrefix, autofocus, label, disabled, onchange, errorCss, nameAlias, 複合キーラジオボタン, カスタムタグ, 複合キー, downloadSubmit, ダウンロード送信, allowDoubleSubmission, 二重サブミット, displayMethod, secure, uri, type, value, src, alt, usemap, align, codeCheckbox, コードチェックボックス単体, offCodeValue, コード値チェックボックス, codeId, labelPattern, optionColumnName
@@ -252,7 +252,7 @@ formタグ, textタグ, textareaタグ, passwordタグ, radioButtonタグ, check
keywords -accesskey, tabindex, onfocus, onblur, フォーカス属性, FocusAttributesTag, file, name, disabled, readonly, accept, multiple, errorCss, nameAlias, ファイルアップロード, カスタムタグ, downloadButton, ダウンロードボタン, allowDoubleSubmission, 二重サブミット, displayMethod, secure, uri, code, コード値表示, コードリスト表示, codeId, pattern, labelPattern, listFormat, optionColumnName +accesskey, tabindex, onfocus, onblur, フォーカス属性, FocusAttributesTag, file, name, disabled, readonly, size, maxlength, onselect, onchange, accept, autofocus, multiple, errorCss, nameAlias, ファイルアップロード, カスタムタグ, downloadButton, ダウンロードボタン, allowDoubleSubmission, 二重サブミット, displayMethod, secure, uri, value, type, code, コード値表示, コードリスト表示, codeId, pattern, labelPattern, listFormat, optionColumnName
@@ -306,7 +306,7 @@ HTMLタグの出力を行わず、ウィンドウスコープに値を出力す | 属性 | 必須 | デフォルト値 | 説明 | |---|---|---|---| | messageId | ○ | | メッセージID。 | -| option0~option9 | | | メッセージフォーマットに使用するオプション引数(インデックス0~9)。最大10個まで指定可能。 | +| option0~option9 | | | メッセージフォーマットに使用するインデックスが0~9のオプション引数。最大10個まで指定可能。 | | language | | スレッドコンテキストの言語 | メッセージの言語。 | | var | | | リクエストスコープに格納する変数名。指定した場合はメッセージを出力せずリクエストスコープに設定する。この場合はHTMLエスケープとHTMLフォーマットを行わない。 | | htmlEscape | | true | HTMLエスケープするか否か(true/false)。 | @@ -315,7 +315,7 @@ HTMLタグの出力を行わず、ウィンドウスコープに値を出力す
keywords -name, action, method, enctype, onsubmit, onreset, accept, acceptCharset, target, autocomplete, windowScopePrefixes, useToken, secure, preventPostResubmit, formタグ, POST再送信防止, トークン, 不正画面遷移, ウィンドウスコープ, WebView_FormTag, hidden, disabled, 隠しフィールド, HTMLタグ非出力, カスタムタグ, downloadLink, ダウンロードリンク, allowDoubleSubmission, 二重サブミット, displayMethod, uri, message, メッセージ表示, メッセージID, HTMLエスケープ, messageId, htmlEscape, withHtmlFormat, var, language +name, action, method, enctype, onsubmit, onreset, accept, acceptCharset, target, autocomplete, windowScopePrefixes, useToken, secure, preventPostResubmit, formタグ, POST再送信防止, トークン, 不正画面遷移, ウィンドウスコープ, WebView_FormTag, hidden, disabled, 隠しフィールド, HTMLタグ非出力, カスタムタグ, downloadLink, ダウンロードリンク, allowDoubleSubmission, 二重サブミット, displayMethod, uri, shape, coords, message, メッセージ表示, メッセージID, HTMLエスケープ, messageId, option0~option9, htmlEscape, withHtmlFormat, var, language
@@ -385,7 +385,7 @@ HTMLのinputタグ(type=text)を出力するカスタムタグ(:ref:`WebView_T valueFormat="yyyymmdd{yyyy/MM/dd}" ``` -- **yyyymm**: 年月フォーマット。値はyyyyMM形式の文字列。使用方法はyyyymmddと同様。 +- **yyyymm**: 年月フォーマット。値はyyyyMM形式またはパターン形式の文字列を指定する。使用方法は、yyyymmddと同様。 - **dateTime**: 日時フォーマット(**writeタグのみで使用可能**)。値はjava.util.Date型。パターンはjava.text.SimpleDateFormat構文。ThreadContextのタイムゾーンを使用。区切り文字"|"でパターンにタイムゾーンを直接指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定と区切り文字変更可。 ``` @@ -404,7 +404,7 @@ HTMLのinputタグ(type=text)を出力するカスタムタグ(:ref:`WebView_T
keywords -name, disabled, readonly, size, maxlength, errorCss, nameAlias, valueFormat, yyyymmdd, yyyymm, decimal, textタグ, 入力データ復元, 日付フォーマット, 数値フォーマット, ExtendedValidation_yyyymmddConvertor, ExtendedValidation_yyyymmConvertor, WebView_TextTag, WebView_CustomTagConfig, BigDecimalConvertor, IntegerConvertor, LongConvertor, plainHidden, 隠しフィールド, カスタムタグ, param, paramName, サブミットパラメータ, パラメータ名, write, 値表示, dateTime, withHtmlFormat +name, disabled, readonly, size, maxlength, errorCss, nameAlias, valueFormat, yyyymmdd, yyyymm, decimal, textタグ, 入力データ復元, 日付フォーマット, 数値フォーマット, ExtendedValidation_yyyymmddConvertor, ExtendedValidation_yyyymmConvertor, WebView_TextTag, WebView_CustomTagConfig, BigDecimalConvertor, IntegerConvertor, LongConvertor, plainHidden, 隠しフィールド, カスタムタグ, param, paramName, サブミットパラメータ, パラメータ名, value, write, 値表示, dateTime, withHtmlFormat
@@ -468,7 +468,7 @@ HTMLのtextareaタグを出力するカスタムタグ(:ref:`WebView_TextareaT
keywords -name, rows, cols, disabled, readonly, errorCss, nameAlias, textareaタグ, 入力データ復元, WebView_TextareaTag, select, listName, elementLabelProperty, elementValueProperty, elementLabelPattern, listFormat, withNoneOption, noneOptionLabel, セレクトボックス, プルダウン, カスタムタグ, changeParamName, パラメータ名変更, paramName, inputName, prettyPrint, 整形表示 +name, rows, cols, disabled, readonly, errorCss, nameAlias, textareaタグ, 入力データ復元, WebView_TextareaTag, select, listName, elementLabelProperty, elementValueProperty, size, multiple, tabindex, onfocus, onblur, onchange, autofocus, elementLabelPattern, listFormat, withNoneOption, noneOptionLabel, セレクトボックス, プルダウン, カスタムタグ, changeParamName, パラメータ名変更, paramName, inputName, prettyPrint, 整形表示
@@ -548,7 +548,7 @@ HTMLのinputタグ(type=password)を出力するカスタムタグ(:ref:`WebVi
keywords -name, restoreValue, replacement, errorCss, nameAlias, passwordタグ, パスワード, 置換文字, 確認画面, WebView_PasswordTag, radioButtons, listName, elementLabelProperty, elementValueProperty, elementLabelPattern, listFormat, ラジオボタン, カスタムタグ, id属性指定不可, aタグ, アンカー, href, hreflang, secure, target, rawWrite, HTMLエスケープなし出力, 生データ表示, setタグ, var, scope, bySingleValue, value +name, restoreValue, replacement, errorCss, nameAlias, passwordタグ, パスワード, 置換文字, 確認画面, WebView_PasswordTag, radioButtons, listName, elementLabelProperty, elementValueProperty, disabled, onchange, autofocus, elementLabelPattern, listFormat, ラジオボタン, カスタムタグ, id属性指定不可, aタグ, アンカー, href, hreflang, secure, target, charset, type, rel, rev, shape, coords, rawWrite, HTMLエスケープなし出力, 生データ表示, setタグ, var, scope, bySingleValue, value
@@ -590,7 +590,7 @@ HTMLのinputタグ(type=radio)を出力するカスタムタグ(:ref:`WebView_ | 属性名 | 必須 | デフォルト値 | 説明 | |---|---|---|---| | :ref:`WebView_GenericAttributesTag` | | | | -| src | ○ | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 | +| src | ○ | | XHTMLのcharsrc属性。:ref:`WebView_SpecifyUri` を参照 | | alt | ○ | | XHTMLのalt属性 | | name | | | XHTMLのname属性 | | longdesc | | | XHTMLのlongdesc属性 | @@ -613,7 +613,7 @@ HTMLのinputタグ(type=radio)を出力するカスタムタグ(:ref:`WebView_
keywords -name, value, label, errorCss, nameAlias, radioButtonタグ, ラジオボタン, 入力データ復元, WebView_RadioButtonTag, checkboxes, listName, elementLabelProperty, elementValueProperty, elementLabelPattern, listFormat, チェックボックス, カスタムタグ, id属性指定不可, imgタグ, 画像, src, alt, secure, usemap, include, ファイルインクルード, path +name, value, label, errorCss, nameAlias, radioButtonタグ, ラジオボタン, 入力データ復元, WebView_RadioButtonTag, checkboxes, listName, elementLabelProperty, elementValueProperty, disabled, onchange, autofocus, elementLabelPattern, listFormat, チェックボックス, カスタムタグ, id属性指定不可, imgタグ, 画像, src, alt, secure, usemap, longdesc, height, width, ismap, align, border, hspace, vspace, include, ファイルインクルード, path
@@ -681,7 +681,7 @@ HTMLのinputタグ(type=checkbox)を出力するカスタムタグ(:ref:`WebVi
keywords -name, value, label, useOffValue, offLabel, offValue, errorCss, nameAlias, checkboxタグ, チェックボックス, 入力データ復元, WebView_CheckboxTag, submit, type, uri, allowDoubleSubmission, secure, displayMethod, src, alt, usemap, align, 二重サブミット, 認可判定, 開閉局判定, 画像ボタン, カスタムタグ, linkタグ, リンク, href, media, rel, includeParam, インクルードパラメータ, paramName +name, value, label, useOffValue, offLabel, offValue, errorCss, nameAlias, checkboxタグ, チェックボックス, 入力データ復元, WebView_CheckboxTag, submit, type, uri, allowDoubleSubmission, secure, displayMethod, src, alt, usemap, align, 二重サブミット, 認可判定, 開閉局判定, 画像ボタン, カスタムタグ, linkタグ, リンク, href, media, rel, charset, hreflang, rev, target, includeParam, インクルードパラメータ, paramName
@@ -725,7 +725,7 @@ name, value, label, useOffValue, offLabel, offValue, errorCss, nameAlias, checkb
keywords -CompositeKeyCheckboxTag, WebView_CompositeKeyCheckboxTag, 複合キー, チェックボックス, 複数チェックボックス, checkboxesタグ, 入力データ復元, button, uri, allowDoubleSubmission, secure, displayMethod, ボタン, 二重サブミット, 認可判定, カスタムタグ, scriptタグ, スクリプト, src, xmlSpace, defer, confirmationPage, 確認画面, フォワード先, path +CompositeKeyCheckboxTag, WebView_CompositeKeyCheckboxTag, 複合キー, チェックボックス, 複数チェックボックス, checkboxesタグ, 入力データ復元, button, name, value, type, disabled, autofocus, uri, allowDoubleSubmission, secure, displayMethod, ボタン, 二重サブミット, 認可判定, カスタムタグ, scriptタグ, スクリプト, src, xmlSpace, defer, id, charset, language, confirmationPage, 確認画面, フォワード先, path
@@ -751,7 +751,7 @@ CompositeKeyCheckboxTag, WebView_CompositeKeyCheckboxTag, 複合キー, チェ | infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 | | warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 | | errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 | -| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) | +| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(入力項目に対応しないメッセージのみを表示。ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) | ## ignoreConfirmationタグ @@ -760,7 +760,7 @@ CompositeKeyCheckboxTag, WebView_CompositeKeyCheckboxTag, 複合キー, チェ
keywords -submitLink, uri, allowDoubleSubmission, secure, displayMethod, shape, coords, リンクサブミット, 二重サブミット, カスタムタグ, errors, エラー表示, cssClass, filter, nablarch_errors, ValidationResultMessage, global, infoCss, warnCss, ignoreConfirmation, 確認画面無視, 入力確認フロー +submitLink, name, uri, allowDoubleSubmission, secure, displayMethod, shape, coords, リンクサブミット, 二重サブミット, カスタムタグ, errors, エラー表示, cssClass, filter, nablarch_errors, ValidationResultMessage, global, infoCss, warnCss, errorCss, nablarch_error, nablarch_info, nablarch_warn, ignoreConfirmation, 確認画面無視, 入力確認フロー
@@ -800,7 +800,7 @@ submitLink, uri, allowDoubleSubmission, secure, displayMethod, shape, coords,
keywords -popupSubmit, type, uri, popupWindowName, popupOption, secure, displayMethod, src, alt, usemap, align, ポップアップ, サブミット, 画像ボタン, カスタムタグ, error, エラーメッセージ, messageFormat, errorCss, nablarch_error, forInputPage, 入力画面条件表示, 入力画面専用 +popupSubmit, name, disabled, value, autofocus, type, uri, popupWindowName, popupOption, secure, displayMethod, src, alt, usemap, align, ポップアップ, サブミット, 画像ボタン, カスタムタグ, error, エラーメッセージ, messageFormat, errorCss, nablarch_error, forInputPage, 入力画面条件表示, 入力画面専用
@@ -832,7 +832,7 @@ popupSubmit, type, uri, popupWindowName, popupOption, secure, displayMethod, src
keywords -popupButton, uri, popupWindowName, popupOption, secure, displayMethod, ポップアップ, ボタン, カスタムタグ, noCache, キャッシュ無効化, forConfirmationPage, 確認画面条件表示, 確認画面専用 +popupButton, name, value, type, disabled, autofocus, uri, popupWindowName, popupOption, secure, displayMethod, ポップアップ, ボタン, カスタムタグ, noCache, キャッシュ無効化, forConfirmationPage, 確認画面条件表示, 確認画面専用
diff --git a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-thread_context.md b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-thread_context.md index 8849a57f0..cb5ba4bb2 100644 --- a/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-thread_context.md +++ b/.claude/skills/nabledge-1.4/docs/component/libraries/libraries-thread_context.md @@ -5,6 +5,8 @@ スレッドコンテキストはスレッドローカル変数上の変数スコープ。ユーザIDやリクエストIDなど、実行コンテキスト経由での引き回しが難しいパラメータを格納する。 - 多くの値は[../handler/ThreadContextHandler](../handlers/handlers-ThreadContextHandler.md)によって設定される +- それ以外ハンドラでも、スレッドコンテキストに変数を設定するものが存在する +- 業務アクションハンドラから任意の変数を設定することも可能 - 子スレッドを起動した場合、親スレッドの値が暗黙的に引き継がれる - 子スレッドで値を変更する場合は、明示的に子スレッドで値を設定すること @@ -12,9 +14,9 @@ ## LanguageAttribute -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultLanguage | | システムデフォルトロケール | デフォルト言語 | ## HttpLanguageAttribute @@ -27,10 +29,10 @@
``` -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 | -| supportedLanguages | String | ○ | | サポート対象言語 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultLanguage | | システムデフォルトロケール | デフォルト言語 | +| supportedLanguages | ○ | | サポート対象言語 | ## LanguageAttributeInHttpCookie @@ -46,15 +48,15 @@ ``` -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 | -| supportedLanguages | String | ○ | | サポート対象言語 | -| cookieName | String | | nablarch_language | 言語を保持するクッキー名 | -| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 | -| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 | -| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) | -| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultLanguage | | システムデフォルトロケール | デフォルト言語 | +| supportedLanguages | ○ | | サポート対象言語 | +| cookieName | | nablarch_language | 言語を保持するクッキー名 | +| cookiePath | | コンテキストパス | クッキーのURIパス階層 | +| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 | +| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) | +| cookieSecure | | (secure属性なし) | クッキーのsecure属性 | `LanguageAttributeInHttpUtil.keepLanguage(request, context, language)`を呼び出すと、クッキーとスレッドコンテキストの両方に言語が設定される。指定された言語がサポート対象外の場合は設定されない。 @@ -101,11 +103,11 @@ public class I18nHandler implements HttpRequestHandler { ``` -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 | -| supportedLanguages | String | ○ | | サポート対象言語 | -| sessionKey | String | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultLanguage | | システムデフォルトロケール | デフォルト言語 | +| supportedLanguages | ○ | | サポート対象言語 | +| sessionKey | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 | ログイン処理でユーザに紐づく言語をHTTPセッションに設定する実装例: @@ -120,7 +122,7 @@ public HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context)
keywords -ThreadContextHandler, ThreadContextAttribute, スレッドコンテキスト, 子スレッドへの値の引き継ぎ, LanguageAttribute, HttpLanguageAttribute, LanguageAttributeInHttpCookie, LanguageAttributeInHttpSession, LanguageAttributeInHttpUtil, defaultLanguage, supportedLanguages, cookieName, cookiePath, cookieDomain, cookieMaxAge, cookieSecure, sessionKey, 言語設定, 多言語対応, スレッドコンテキスト言語 +ThreadContextHandler, ThreadContextAttribute, スレッドコンテキスト, 子スレッドへの値の引き継ぎ, LanguageAttribute, HttpLanguageAttribute, LanguageAttributeInHttpCookie, LanguageAttributeInHttpSession, LanguageAttributeInHttpUtil, I18nHandler, defaultLanguage, supportedLanguages, cookieName, cookiePath, cookieDomain, cookieMaxAge, cookieSecure, sessionKey, 言語設定, 多言語対応, スレッドコンテキスト言語
@@ -132,9 +134,9 @@ ThreadContextHandler, ThreadContextAttribute, スレッドコンテキスト, ## TimeZoneAttribute -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | ## TimeZoneAttributeInHttpCookie @@ -150,15 +152,15 @@ ThreadContextHandler, ThreadContextAttribute, スレッドコンテキスト, ``` -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | -| supportedTimeZones | String | ○ | | サポート対象タイムゾーン | -| cookieName | String | | nablarch_timeZone | タイムゾーンを保持するクッキー名 | -| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 | -| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 | -| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) | -| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | +| supportedTimeZones | ○ | | サポート対象タイムゾーン | +| cookieName | | nablarch_timeZone | タイムゾーンを保持するクッキー名 | +| cookiePath | | コンテキストパス | クッキーのURIパス階層 | +| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 | +| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) | +| cookieSecure | | (secure属性なし) | クッキーのsecure属性 | `TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone)`を呼び出すと、クッキーとスレッドコンテキストの両方にタイムゾーンが設定される。指定されたタイムゾーンがサポート対象外の場合は設定されない。 @@ -205,11 +207,11 @@ public class I18nHandler implements HttpRequestHandler { ``` -| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 | -|---|---|---|---|---| -| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | -| supportedTimeZones | String | ○ | | サポート対象タイムゾーン | -| sessionKey | String | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 | +| プロパティ名 | 必須 | デフォルト値 | 説明 | +|---|---|---|---| +| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン | +| supportedTimeZones | ○ | | サポート対象タイムゾーン | +| sessionKey | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 | ログイン処理でユーザに紐づくタイムゾーンをHTTPセッションに設定する実装例: @@ -224,7 +226,7 @@ public HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context)
keywords -ThreadContextAttribute, スレッドコンテキスト属性, インタフェース定義, TimeZoneAttribute, TimeZoneAttributeInHttpCookie, TimeZoneAttributeInHttpSession, TimeZoneAttributeInHttpUtil, defaultTimeZone, supportedTimeZones, cookieName, cookiePath, cookieDomain, cookieMaxAge, cookieSecure, sessionKey, タイムゾーン設定, 国際化対応, スレッドコンテキストタイムゾーン +ThreadContextAttribute, スレッドコンテキスト属性, インタフェース定義, TimeZoneAttribute, TimeZoneAttributeInHttpCookie, TimeZoneAttributeInHttpSession, TimeZoneAttributeInHttpUtil, I18nHandler, defaultTimeZone, supportedTimeZones, cookieName, cookiePath, cookieDomain, cookieMaxAge, cookieSecure, sessionKey, タイムゾーン設定, 国際化対応, スレッドコンテキストタイムゾーン
@@ -297,25 +299,16 @@ UserIdAttribute, sessionKey, anonymousId, ユーザID設定, 未ログインユ -## RequestIdAttributeの設定 +## RequestIdAttribute / InternalRequestIdAttributeの設定 RequestIdAttributeには設定値は存在しない。 -
-keywords - -RequestIdAttribute, リクエストID設定, 設定プロパティ - -
- -## InternalRequestIdAttributeの設定 - InternalRequestIdAttributeには設定値は存在しない。
keywords -InternalRequestIdAttribute, 内部リクエストID設定, 設定プロパティ +RequestIdAttribute, InternalRequestIdAttribute, リクエストID設定, 内部リクエストID設定, 設定プロパティ
@@ -355,7 +348,7 @@ ThreadContextHandlerは、リクエスト毎にスレッドコンテキストの
keywords -ThreadContextHandler, RequestIdAttribute, InternalRequestIdAttribute, UserIdAttribute, LanguageAttribute, TimeZoneAttribute, ExecutionIdAttribute, 言語切り替え, タイムゾーン切り替え, 国際化 +ThreadContextHandler, RequestIdAttribute, InternalRequestIdAttribute, UserIdAttribute, LanguageAttribute, TimeZoneAttribute, ExecutionIdAttribute, ForwardingHandler, FwHeaderReader, 言語切り替え, タイムゾーン切り替え, 国際化
@@ -421,6 +414,36 @@ TimeZoneAttribute, TimeZoneAttributeInHttpCookie, TimeZoneAttributeInHttpSession +## TimeZoneAttribute選択基準 + +TimeZoneAttributeクラスは、スレッドコンテキストに設定するタイムゾーンを取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。 + +## TimeZoneAttributeおよびサブクラスの説明 + +| クラス名 | 説明 | +|---|---| +| TimeZoneAttribute | リポジトリの設定で指定されたタイムゾーンをスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトタイムゾーンが使用される | +| TimeZoneAttributeInHttpCookie | クッキーを使用したタイムゾーンの保持を行う。サポート対象のタイムゾーンが取得できない場合は親クラスのTimeZoneAttributeに委譲 | +| TimeZoneAttributeInHttpSession | HTTPセッションを使用したタイムゾーンの保持を行う。タイムゾーンの保持にHTTPセッションを使用することを除き、具体的な処理はTimeZoneAttributeInHttpCookieと同じ | +| TimeZoneAttributeInHttpUtil | TimeZoneAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択したタイムゾーンを保持する処理(タイムゾーン選択処理やログイン処理でのクッキー/HTTPセッションへのタイムゾーン設定)を提供するユーティリティクラス。リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを"timeZoneAttribute"という名前で登録する必要がある | + +## 選択基準 + +| クラス名 | タイムゾーンの選択 | タイムゾーンの保存 | 説明 | +|---|---|---|---| +| TimeZoneAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。タイムゾーンは常に固定となる。アプリ実装不要 | +| TimeZoneAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリがタイムゾーン選択画面を提供。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。選択タイムゾーンをクッキーに設定する処理はTimeZoneAttributeInHttpUtilが提供 | +| TimeZoneAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリがタイムゾーン選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じタイムゾーンが適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づくタイムゾーンの取得処理(HTTPセッションへのタイムゾーン設定はTimeZoneAttributeInHttpUtilが提供)、②ユーザにタイムゾーンを選択させる画面処理(選択タイムゾーンのHTTPセッション設定はTimeZoneAttributeInHttpUtilが提供)、③選択されたタイムゾーンをユーザに紐付けてデータベースに保存する処理 | + +TimeZoneAttributeInHttpUtilを使用する場合、リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを"timeZoneAttribute"という名前で登録すること。 + +
+keywords + +TimeZoneAttribute, TimeZoneAttributeInHttpCookie, TimeZoneAttributeInHttpSession, TimeZoneAttributeInHttpSupport, TimeZoneAttributeInHttpUtil, タイムゾーン選択, 国際化, タイムゾーン切り替え, ログイン時タイムゾーン取得 + +
+ ## 設定例 基本的な属性を設定する場合の設定記述例: diff --git a/.claude/skills/nabledge-1.4/docs/development-tools/toolbox/toolbox-01_DefInfoGenerator.md b/.claude/skills/nabledge-1.4/docs/development-tools/toolbox/toolbox-01_DefInfoGenerator.md index 9add71cc5..a7da69e8f 100644 --- a/.claude/skills/nabledge-1.4/docs/development-tools/toolbox/toolbox-01_DefInfoGenerator.md +++ b/.claude/skills/nabledge-1.4/docs/development-tools/toolbox/toolbox-01_DefInfoGenerator.md @@ -521,10 +521,12 @@ define(function(){ return {"": "" 定義データをJSON形式で出力する際の仕様。エスケープ処理の規則は「エスケープ処理」セクションを参照。設計書ごとにキャメル変換などは行わず、Apache POIで取得した値をそのまま出力する。 +そのため、セルの書式が数値型の場合に整数を指定しても自動的に".0"が付与される。整数をそのまま取得したい場合、当該セルの書式を標準や文字列にすること。 +
keywords -コード設計書読込設定, CodeDefinitionFileLoader, nablarch.tool.definitioninfogenerator.loader.poi.CodeDefinitionFileLoader, codeDefinitionLoader, XlsColumnDefs, codeDesignColumnDefs, codeId, codeName, codeValue, PATTERN01, 定義データ出力仕様, エスケープ処理, JSON出力仕様, Apache POI, キャメル変換 +コード設計書読込設定, CodeDefinitionFileLoader, nablarch.tool.definitioninfogenerator.loader.poi.CodeDefinitionFileLoader, codeDefinitionLoader, XlsColumnDefs, codeDesignColumnDefs, codeId, codeName, codeValue, PATTERN01, 定義データ出力仕様, エスケープ処理, JSON出力仕様, Apache POI, キャメル変換, 数値型セル書式, .0付与
@@ -541,7 +543,7 @@ define(function(){ return {"": "" - `\n`(改行LF) - `\r`(改行CR) -> **注意**: `\r` と `\n` は除去される(エスケープ後の文字列から削除)。 +> **注意**: `\r` と `\n` は除去される。
keywords diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_ClassDiagram.jpg b/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_ClassDiagram.jpg deleted file mode 100644 index 5ff88d5c3a099aad49df1a308bb04830485cc582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91599 zcmeFZby!^A(k|GzyE_C8?jGC;A-FW|*0=@;65QS03GVLhZjE~&K(HXerqBK6eD^!Q zJ2U6pkw50SXZKSrYp=a}SM9x4RlW6gzpcLQ05BC~O?;8{}3@jWx0wNMJ3Zz35CIA`=1_l}y1`ZAu7Sh`nvL6781&2+=Ar6nD zVvO+4370bsTvho{$35iL`DXD4c83lz!#U-U><=^WY z8k?G1THD(D2L^|RM@GlS=NA^2mRDBSz`J|<2Zu+;KTb}su5WIC-`zhv{`s3;Pym?! zPz&<>ABz1&FD!^&(6F#Dun2$C3kuo;A~0C6a8w-d*y1V(#!fizI0F!ICF1kz`jDu( zR4?&Noad17X}EW3ul}amf79$=Q!McRmS+E{*nigx3_yi}f?PZpEPyEB{trWeKk|P{ zwW(pEO70M`X1Zm?ruFQExrY-IP!@%&(ZT*ZMp_JDuxb{4kI=jAuR zuc_2G0QKBUc!l5WVbvR8JCp5Iw(MBixuLY6E%rYRA2D39;CU;~yn zKpuYh8{k{I-y?paHTsCWw2R+gnq$w|@ZSKlC{k~LzR8~FNX2xx^m!G%?Yq=SzaMY~ zemh5ouhNB2ibFlO&~u`fE^KdrcXN}0lP3(-4u5HVDc;-u17(%_AOM*v@m5FT7OqKJ ze1BNaR=xif#^>LAnBQI@z>%Q*VHO zY!+?o1ik^pSa99|2%K+#YZlT`=IMlpqc^}`cToIA=@>J7%YVTZvYaSfMFnj=e=(8l zKicMhVS^RC0fHiR8kV>xK!)-QELAnt#2d=+CD%#DxCwz8dE(y=DyU>GLw_too4RlmdTy5WO*BKcq?AUhdHqSUqEbJzV;DFJe0R^q z66SL&|H-RrSe!R+j}7*Y9MLxM0{V>yhtYf^`PO?9A3vpjbwAMIN3LA@Vd_^rS&|kb z&Nxfkp%~URkyBkVko0009nP8e4FIUDtdU-7t_#7Uks%0FX6XwW;XO}edOq_o;s;K?_LmPwXwo~H2LH=JLC4qK%XltygMRh^y1VaSwZa;RqyT02^lY(H67 z&TSp>v`fq~k_tFwm8mV}WdF>rza+gQzQ``qId#;Qw#CJq!i(;VZ zsDly=Kp5RrU)U|0D)_0Z-aapFUbg<|vezg6qleA{HG+%XXs0G%gu10l2iE!5>#LNz?R&EsVm1+@+^@^g%9BV&%9E8a zyJN*|=#LFkYU=Cf;@V zDYo3~>Ez!yP%CrtK2^5~m-qFN5_3~v>3W7fDWAnp=dP_>pWJwThd-en-fN|28Xb1@ zt(ZE0#XJS`ya7TlxT~~2wfXXHh|L>-QQ7{e%`#KMFhF8=Rr@)8?QJ-(d5Q_1|%R7ZlcimgOgRkgfjAhlm;BJ8$ zY1nz$tFXa#=ugVUoD;*uGR1pRbIf#4>IvFp;;eaQp2QsQ!~FZ&K)rV(kh{_AuI19^ zNll6I@OLIKbBb9_6ohYOj}o4P|*~xvA!W~jZm2)EmMc+n~@uJtb{Dj_}VjVs8VeN zctYFpQ>aU!9{2L@eP!jmR~QUhklew}#rTfnR~zu9L!js`c2`f^>)ewe_}mV3_b6g8 z(=c#oDHP-3He#RkJAXaT#%)nWTCV>ulM$V7h~iqnD)$bf3o>g{nzprI_F^AN81vdAWJy-(f!gy5vYVX=&D{vP+^Db>Z269LJS7#Ep6@S5rmb(b^btio^68dNEGSF^wC1gEu2p z&{<7JFnp|Z#W?U%#%kH*SG#FoBOx#uOU)rpEYA#s(uklD6!Xnqv4*SSGrah%*w(pwQ>?Pyv}p5F)g6KuCoDFP%_#tA-*GyRmmxL~1b4^+$qb^E-h zWW(Q0-Y85SJ+Q3Ou3=ad7Ts6u!Bhan)WJuy78i34yV(i5m!njTr|2kJI_a;{)Dgke zW%Sx&gkc&!SU$N4D>@OcG4rvXWPFn`OSVt*`9-cJqDaMjPQHWj3kF6y@VG^HTi4KQ z+pIlse>6Eib39Ho_1(*XovU$toEM%+=e9)Ml}M<=-a3;n{t0W7lEL+9|BHExl?k># zb$nlIhl*UhAf<>Lu#@F%Y3v6D22I+Oz!9GL}GQ zF7rv&Aoa7i;?W{rQvs}t7k`t+Iwj#2)aVS&1^t{SxtpwEd}QllrJ7 zuerHURK%0i1OE;5x6v5!UiTZ6oTa;;%I6qoZ-6H8yKScFC($(F88#u0^PerkmL*p8 z-HnS?*cbh$C>7RR^;R_K(ShOv=opl-{hevY4D~#bt+KH0_@w8*-1>D8Jq0fu z38j-{rHH$L%c>~`hzY_FB5K_9y+1FJ(*$mUsJxTq%v_+Er)P(UBpuL(6#@sNE|)gc z>wX>O2yr8%^5K?egjbcbog_S zJE{>;^Itz~OfnQi0RB~BioGJsy6@(n-EUc}ZoDT3-4KCN=uCtsl#?FA_DPRRJV}37 z_qRf((rLSU?0z)*zFJRHeQ@LYfex#M_F_xAl_Lr!m%ry7cX93V!S-eBsoyQXt>66- zB)pCP0f~?N)ZPI31CT(qhu82qR`!{m92?S5`nPyH$naT%;xfxq@iinH62!t|`CVzm zlmxs15MN8*0FogsZ-B3MJ&)wE53;{S|B&+ZJl#Oz;n7>aey3fwKg6!e&xF!%fFTvg z{2mGF`C$!-&y5M*0C+Na6#q}pL)`}I->31PSLNT<_^S}jk0kMB908t2_Ccmj;=iJ zGxqs7>UM-WrxgHE$$U{P}50cu=PmRUfqlP32jP-z(i-d9{?VawBEnAe@GFSCOQRFBWX zbh==GKK#2E{o5-Z=`}a+^?2NvPyxPnAtTW!g{wWK+3i8VskG%uH}yP^ZAepNchuH9 zf`sYMCauxV@CF1>i_Yu{Q6UKVxKN4vvK=uu18ByuI2+L#&9cJ7G@?H|1Sa52_-8J2 z2dXG+A!rU1Hw4X5ggB-p(f@2EL%#PwbC{Npl<-UndxQUk%D zU?D!v34%dUtK9Yc4Y$Jin;#wQd5#7yeun?|DE~jSi_0r*u3pL;V4$M>1nkx*3jU~Z zUbE%SatDk-Ze#!qd(9Y+2zxAzd#=Cug}edI7`Fe&J86&&-U&WoJR$)7R%l)&DmA?S z`+Ln{V`<#aQ2(mvZ56)(Xkj3MRIUCS;5E9jI-#vg@l^pn@(p0r@dkJyu~uUVY2i+} zK4oYt z3f)veZy#Loo58?V*FBqS#LvsYs;q3weDFtvVruVULvDP#KZc2;6WmN#*<$N7W!GsE$Bs~8)Xm~xGM#mtvFw#~8c5Hb+*so(|j;jk>FkTtL?1_lb0i>yIHEgaDA6U46=rj=LSS zCtr$T_x2>N5&Xcrt10e&q-qP3Xy$pjL&PY+y4hN5NG}2*YHthPM%q%QH<|QwlU-eK zeFDiuYAbL25NRQ~qv{Y@h&xEbLf`1UGtp1qS*PCQ5mR>v{!7YmxF{F&+9fVibM3oVQ-D}4qj=pes16Zw|WxuXDG;b5}1m7hebnC(c*I-LUskj$;!g7XN=d$|* z+CkXs$GEgGclNlM=pgpboFs<_AY3g?^rCj^j``o2WLEkgf=+}rZ@lQVH+9IGnVySq z;zMCh(F`jwP}gizqRSPlqlIQVT6G4rJCgUfV@dSPoCpQRrjf zq6#ta1VAOl4V)rU z{=u~JDhS_~r;)M-ni;1-p9eaA_yi>?W(9St20O<+g&2=omcIsrHeM8mL>^RO`os7A z?SH^PpGQ1kTe#M#U;m(Wn_!AVg@_ZKVo*~@RiNkj>u;`W13ye14)R{o@hNfzX^i!b z38Ty5!p-sEp=!A=c!_8Xa(Z1o*4a7w4DKHps@$+q$EJN*n71nS!WO^+)2&fz!WJ5l zQb-13%tk=(|M)M-%t;OswbS)07zZeDNrcRo>5?(({UyR!- zW=`;L&A)C>)iu_c<>+`Q!OBf>#GArqCXo<0U&{iw+vN5bC)77UNAj_@(nbjmwZeQV2mb2R zk${mx0-~O&&E5yeeq!=+2cE8}q8z;$YB{Rb6w*h3ugD}L2?3~dgz>2xOkf6JWU14K znDO_UVKZWrC4<0-^Vr7A>t!*~?$);tW34E1=5bFv(H4Fwv-ls5%ZoQRY~|u=-I96;D)?nT#u1 z+5P6OYh+>Oc*#q{*K_cact3nRflH!*Zpfsn?Bd`8@mL3%f*Sp&STtW`DnXHY{bo`1 zOfq8bv2d%&=9C=c-z!G>*n~fn7z$r2!A8krx%ga2}QuZk6IB+!KyC)AAndkO}e*>s@WZd+(^K`da zI@T+5W6}&vIczaiuH&X2U?Xb5ev7V*0;g`_TyB+m(H=s;@7s!wa*l56v%>gw08|P! zJpk%KGdMapC*6`PJGclxrS8~_U4~kEjAmCBh9>c0DFQID*og8$bJwypQ&mlADN9)(l_?>0fma`*%oF)D~|RNIT~z z%B@%MO-A&t@HgZgcwUoI5_FV9kWc4HK¼ZA!tbD8=pd$d+gq=eBgiT7=3qu)I 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 z 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 a|8?GfG%hc4{tF}dpSS$~WQ%q`_dft%$dU2@ diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_incoming.jpg b/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_incoming.jpg deleted file mode 100644 index b5af311d9d42b86d62e6f660210b6c7c1f874876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40304 zcmeFZ1yo$!vM$;Lw-5;KK>~pQ3GNy^1PJa44vo8oMuG%)f(H!*cZcBa-ncu#g3DX{ zd+&2MoPWzb@7y=ed*gM+BE6*7T65N{s;{cPId3O#7eG&>#3aQ)Ffbqx4Db(hI}H*6 zAt4|jBETadA|fIqBcY&Sqobjsq7h&{#lR*ZBqJpuBqk=OVx%Fbcu7f2Ov~}&<*V1M ztgK`-Tzs6&yo@ZY%y&0|K}JSKLq)?!N5^M=M*NKVfBSR$6NHKM2oV+m7KQ@!2onYt z6Xv!RL-&|g0=k6_{85fG7(QBZ*k%AbH9!N9^kf`f&Jhl2yI{sf!{!C}H< zJ$o&L@KpXIB84?JvuAiJ5~Xl)6VCggeJU1R8!u!OTs(XNLh9!D3zNJ=RvDk-a|s;TSg8yFfHo0!_#**iEoIlFj&_VM-e{}K=p85JE9`!y~;Ej=SM z>w9+2kCM`|@`}o;>YC=3*0%PJ&aUp^ke~9o=GMXC(edw-)3fu7 zyLQ2VVE@uA;O}1=_MlyuK)W8n!NI~I-n9$nkt49dV#2{cdyRl4B#-#f`Y8poCla=B zcxrJIG9}CVeH>kzArxFH)`4E}tsjf>L`l zZb6OgI#;3MC(rY5K_W4gw;*@3#&go|Nf^;dd^nxjs`ILXrJ85c8X@d4oI;m;aXp<| z{+tziz3B(*0i^90e8NNs2Ne~Jh5?f4vZYgp{&KGeriz=w1qAeDlMv~-FX;V)WSFK- zoVGOtOlo5KnU2A-@y1tu+qWRn8NKev$foHgE`prwt(bVu8t&NEB(XtgEma`18a*y% z#%GEIx9VvMVn+9U5~uVe)aYa%Q7igSW;bfGUsMK&!+Cq?K6$23)|N;IeoEhyaOU-2 zq5N#75~wlqeZ+zd-jNfI4mT#!s{=&kik`;f94aIZp737(lxyh zUDNqvE->VDt>+dLzH!q!*0^Caehd257kdk$99|dd?oSR_b0f-=g?#S;yV|mi&DPJ( zFj!Mi#7gYx2irV>NlJC0Er`zxOAA;IXEWE(nHb^~&z@{Da*5e*GRG;F%YqUhKbKJZ z!a(VGoH6Sg-QOOtLfXB@S&#`KH4P-mav$uiAQ$m@?3hw|)%XH^Ko>&_w|n=hzJYg) zs4sdk6jj%;v$m4_79_sv+tInjUYVNN@7LYm5U@%${2NJ|Dzg2enRlRs+IUCE0jhy| z6WY~W{Bs9+S8(_@LY1riK|_(@8x^Nk2cBrvu#C{sl}AcNuDkqEw%=BbR77pbCgUrw zAFIz_pO@T%R$K&%*(@)J%Ns9`3~oW4$JK*2rQg%4C0Xl*@xD+2w+dz1`J&GAM5`jE z`4*IZXq9Kh^T<^(<^E0FHn`MAhBQTU@SvZepT4((w*x0RoW~E?lMltqcFnuVJDbRf zkJ)TwnB;txBzZ0KD0?p{ltWta%rlD`H?9)ti68$=9{tM;TE_=5Z=7sf=UfSmnxz^| zmS|pku`zgAp$Z~cVUV_Gl$6wt=40)(bi`+lmBmf5qUvr;QW3wZY+AuQlkfMAPWpuN zK*n2K|GYJS{7MU_TRd~?DQ^y0@NYjS9sM80lM%sX>_pdO-o6UnliqU~4@Sz+-Ln8y zQ&-cPZ#5`ASj(}+pN{b{(?stkwqdx;rN=NtOwE1J+gyKiZ&hYP;~=k^9@sU1i!eHK zEV$Q~$3MSGC3pcvD1?=d%55ci3_9{|rT$R>Z5E6uw%q^PaD0|7b8BTle8D5o0fybA zs$@1XeKkhCVE@Miw&kI6#;^_nYxiaPJ0%af44v=SZ&?zs!^xMV!vwIH(n7MenRVg^ zqg)*Mh@S-OqBfeBxl@^j⋙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 TsMKHE!T;sQ`G4vDZ`1z^+nP#@ diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg b/.claude/skills/nabledge-1.4/knowledge/component/libraries/assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg deleted file mode 100644 index 68122a3fedc2c6e47748794dcd49e2782ba08efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39217 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�(%L~oaL*~s(l!9Q z=<|7kF~~kmbL@gR*K1BST(28^CIFX<5v+H@I0BRcr*HO^!YFIWtZsI(mg8g$?LIwrAD%m* z=b;_p+FX7ct>9JmwM4iB{arGis>XQ0D|4)Ta zQXmUJ*AMQ`0lXJy^uC36dry^;mbrM%M2}&qH3_9*rKO#6E9;GM8SS(XKyso{1oc8q z8ltEW;e1c*@dxwdIX{?EM1oeMa_`mUv?U+w0kx_pEKnCw8fv zf5LMKu0=(JvEOB=8?i1uCEQ=pncuQ`*Lu#WRLL>GY&;b@9?Mzu(xrl&p%+l+KM`gf zWl^({rHOK7v|gYoUwRN3s7WJ@{+SsUtw)@nLc?3I3-&z0)7~A75FxZrT_Yz1Mc@>< zBtOs+D@a|b1Z1f#(m7#{KZUiF~v1C2^inKl)Q6~ z0#h6>QHZ{PrR5!~b9(gFYP#h?y*eiQysg+}v>2a|1s?%$k@7dTqGU-zgsaPQCysOb znXxS=m5IY7?{h{`BGjMp_c}OEra*rIy}KbAZy&XF3gy+`=d6{=HZc-0y%UIMfn-(L z;S8r83j%~X|56eClg^#DK-7;Dwb9|MM84u~i29SnGr3C`YyN%=SdAyeWII^{DTFXTnltRdOBt`!n(#5ku|U=aCU^h6`<JSQfy$41hRV#5@O}pDOTYKG-jvgRRqp&)iYlVE`mR->-yHsSYGLJ zo#FS6?y@X-NAqJKb9dM`>D^Dz>_jwe+um%psc%{?85SXKD&5dpawm8?GxfH~4a>@0*7$9{E|@H!I#* zaIUJ$P1R74vuPF0)-%$THh)3a>dmwJQBf~R^Mx)yVVH@zEA0NfS4XTTG6Ve3zQKuL z!~&XbhszadCk{A(;P*HMeimEcWYxkHrUjh7O z)YjH#5T`M=Mo3jOl_CM}K!>n0DAn$mxbfEL-UBwH{K?6vN~Y+^;jDs3v5jrl&}bjy z2QxP+iv|Zl?ZR;o^^amh~o>k182usCbYFgzh{}LEGW=wVr^O zwtHS=Uw%HBc|9>teeABn99JTDE^dU< z5`;a;0Lu|Tp7UR|F#O+lW%-FaDS#JLHI8!?Qr5+MjB`eL7&?0wTd*+KaX7n#+{=Ct zWc~ew;s<~K8$u&|Ef=kFnR6F0Pb){QotgB)d|+`A)70tpdQyZ@rkIt?iZbN9f+6yw zpH99R3yBw5HrKU9y@j#Zl&yr1Zm$0V(mdv%sRc(~WFbG%mr*t|JVqQU{kYLUWUEVXY1lP45(xf-|1w5aR zmgqm)pFt9olcIkCJ!05T*%V?cFa&$hPw#i5IGt;0p;yWpJQ&Q76GPRIduR8^Z!}4# zy|MPQmoO@}b@aZ9n+37>y#ItdXuaTLxZBCeptYJD<$s#p{gn{;xw8r|pxPV9P73Mj z;s@gDP#EN3=xPduIrhWFH5k^1|HT3Iv#zH<^=X~@dsywi(GV4Dh|bDgb6$2OEeoqP z)Ig)EgYn*PdQ5=5|5v!x_piZ`_?sNO&W%zLF-HxGU>)mBiz;v#i_d@~Sf`R_`1@n} zBaHX^dd_Rb_Xyb1F>P|JLBVrfcJHX6O`tOx5|U^AQh(dT_4mxgAD1%h$+7onqR2g< z1}JDP!AmcJrs{AzvV43UK+}wW`al7Q;h)wE7jalx73^soo?zZ51G<+@tp?G=KANE? R%Lf`C{Z1X-E=7Nt{$D@Z_DBE# diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-04_Permission.json b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-04_Permission.json index a9a16d258..db4d7aa9b 100644 --- a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-04_Permission.json +++ b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-04_Permission.json @@ -24,6 +24,8 @@ "BasicBusinessDateProvider", "SimpleDbTransactionManager", "BasicApplicationInitializer", + "BusinessDateProvider", + "Initializable", "permissionFactory", "ignoreRequestIds", "dbManager", @@ -129,6 +131,7 @@ "システムアカウント", "ユーザID", "ユーザIDロック", + "有効日", "グループシステムアカウント", "認可単位", "認可単位ID", @@ -143,9 +146,9 @@ "sections": { "s1": "リクエストに対して認可チェックを行う機能。ハンドラとして使用される(詳細は [../../handler/PermissionCheckHandler](../handlers/handlers-PermissionCheckHandler.json))。\n\n> **注意**: 通常アーキテクトが本機能を使用して認可処理を局所化するため、アプリケーションプログラマは本機能を直接使用しない。\n\n**クラス**: `nablarch.common.handler.PermissionCheckHandler`, `nablarch.common.permission.BasicPermissionFactory`\n\nDIコンテナの機能を使用して、PermissionCheckHandlerとBasicPermissionFactoryの設定を行い使用する。\n\n### PermissionCheckHandlerの設定\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| permissionFactory | ○ | Permissionを生成するPermissionFactory |\n| ignoreRequestIds | | 認可判定を行わないリクエストID(カンマ区切りで複数指定可) |\n\n### BasicPermissionFactoryの設定\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| dbManager | ○ | DBトランザクション制御。`nablarch.core.db.transaction.SimpleDbTransactionManager`インスタンスを指定。詳細は [../01_Core/04_DbAccessSpec](libraries-04_DbAccessSpec.json) 参照 |\n| groupTableSchema | ○ | グループテーブルのスキーマ情報。GroupTableSchemaクラスのインスタンス |\n| systemAccountTableSchema | ○ | システムアカウントテーブルのスキーマ情報。SystemAccountTableSchemaクラスのインスタンス |\n| groupSystemAccountTableSchema | ○ | グループシステムアカウントテーブルのスキーマ情報。GroupSystemAccountTableSchemaクラスのインスタンス |\n| permissionUnitTableSchema | ○ | 認可単位テーブルのスキーマ情報。PermissionUnitTableSchemaクラスのインスタンス |\n| permissionUnitRequestTableSchema | ○ | 認可単位リクエストテーブルのスキーマ情報。PermissionUnitRequestTableSchemaクラスのインスタンス |\n| groupAuthorityTableSchema | ○ | グループ権限テーブルのスキーマ情報。GroupAuthorityTableSchemaクラスのインスタンス |\n| systemAccountAuthorityTableSchema | ○ | システムアカウント権限テーブルのスキーマ情報。SystemAccountAuthorityTableSchemaクラスのインスタンス |\n| businessDateProvider | ○ | 業務日付取得(有効日From/Toチェックに使用)。`nablarch.core.date.BusinessDateProvider`実装クラスを指定。詳細は :ref:`BusinessDateProvider-label` 参照 |\n\nXML設定例:\n\n```xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n```\n\n### スキーマクラスのプロパティ\n\n**GroupTableSchema** (`nablarch.common.permission.schema.GroupTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n\n**SystemAccountTableSchema** (`nablarch.common.permission.schema.SystemAccountTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| userIdLockedColumnName | ○ | ユーザIDロックカラムの名前 |\n| failedCountColumnName | ○ | 認証失敗回数カラムの名前 |\n| effectiveDateFromColumnName | ○ | 有効日(From)カラムの名前 |\n| effectiveDateToColumnName | ○ | 有効日(To)カラムの名前 |\n\n**GroupSystemAccountTableSchema** (`nablarch.common.permission.schema.GroupSystemAccountTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| effectiveDateFromColumnName | ○ | 有効日(From)カラムの名前 |\n| effectiveDateToColumnName | ○ | 有効日(To)カラムの名前 |\n\n**PermissionUnitTableSchema** (`nablarch.common.permission.schema.PermissionUnitTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n**PermissionUnitRequestTableSchema** (`nablarch.common.permission.schema.PermissionUnitRequestTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n| requestIdColumnName | ○ | リクエストIDカラムの名前 |\n\n**GroupAuthorityTableSchema** (`nablarch.common.permission.schema.GroupAuthorityTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| groupIdColumnName | ○ | グループIDカラムの名前 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n**SystemAccountAuthorityTableSchema** (`nablarch.common.permission.schema.SystemAccountAuthorityTableSchema`):\n\n| プロパティ名 | 必須 | 説明 |\n|---|---|---|\n| tableName | ○ | テーブル名 |\n| userIdColumnName | ○ | ユーザIDカラムの名前 |\n| permissionUnitIdColumnName | ○ | 認可単位IDカラムの名前 |\n\n### 初期化設定\n\nBasicPermissionFactoryクラスは初期化が必要なため :ref:`repository_initialize` に従いInitializableインタフェースを実装している。permissionFactoryが初期化されるよう下記の設定を行うこと。\n\n```xml\n\n \n \n \n \n \n\n```", "s2": "### グループ単位とユーザ単位を併用した権限設定\n\nグループに権限を設定し、ユーザにグループを割り当てることでグループ単位の権限管理が可能。さらにユーザに直接権限を設定することでイレギュラーな権限付与にも対応可能。\n\n### 自由度の高いテーブル定義\n\nテーブル名・カラム名を自由に設定可能。カラムのデータ型もJavaの型に変換可能であれば任意のデータ型を使用できる。プロジェクトの命名規約に従ったテーブル定義が作成できる。\n\nログイン処理など、一部の処理のみ認可判定の対象から除外したい場合は、PermissionCheckHandlerの設定でignoreRequestIdsプロパティを指定する。\n\nリクエストIDがRW11AA0101とRW11AA0102を認可判定の対象から除外する場合の設定例:\n\n```xml\n\n\n \n \n\n```", - "s3": "### 実装済み\n\n- 機能(任意のリクエストのかたまり)単位で認可判定の設定を行うことができる\n- ユーザに対してグループを設定でき、グループ単位で認可判定の設定を行うことができる\n- リクエストIDを設定し、特定のリクエストIDを認可判定の対象から除外できる\n- ユーザに有効日(From/To)を設定できる\n- ユーザとグループの関連に有効日(From/To)を設定できる\n- 認可判定の結果に応じて画面項目(メニューやボタンなど)の表示・非表示を切り替えることができる\n\n### 未実装\n\n- 本機能で使用するマスタデータをメンテナンスできる\n- 本機能で使用するマスタの初期データを一括登録できる\n- 認証機能によりユーザIDがロックされているユーザの認可判定を失敗にできる\n\n### 未検討\n\n- データへのアクセスを制限できる\n- 機能単位の権限に有効日(From/To)を設定できる\n\n> **注意**: 下記のコードはフレームワークが行う処理であり、通常のアプリケーションでは実装する必要がない。\n\nPermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。`nablarch.common.permission.PermissionUtil`からPermissionを取得し、リクエストIDを指定して認可判定を行う。\n\n```java\n// PermissionUtilからPermissionを取得する\nPermission permission = PermissionUtil.getPermission();\n\n// リクエストIDを指定して認可判定を行う。\nif (permission.permit(\"リクエストID\")) {\n\n // 認可に成功した場合の処理\n\n} else {\n\n // 認可に失敗した場合の処理\n\n}\n```", - "s4": "リクエストIDを使用して認可判定を行う。リクエストIDの体系はアプリケーション毎に設計する。\n\n**認可単位**: ユーザが機能として認識する最小単位の概念。認可単位には認可を実現するために必要なリクエスト(Webアプリであれば画面のイベント)が複数紐付く。\n\n- グループに認可単位を紐付け → グループ権限\n- ユーザに認可単位を直接紐付け → ユーザ権限\n\n> **注意**: グループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。\n\n> **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。", - "s5": "**インタフェース**:\n\n| インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する |\n| `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する |\n\n**実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス |\n| `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する |\n| `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ |\n| `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ |", + "s3": "### 実装済み\n\n- 機能(任意のリクエストのかたまり)単位で認可判定の設定を行うことができる\n- ユーザに対してグループを設定でき、グループ単位で認可判定の設定を行うことができる\n- リクエストIDを設定し、特定のリクエストIDを認可判定の対象から除外できる\n- ユーザに有効日(From/To)を設定できる\n- ユーザとグループの関連に有効日(From/To)を設定できる\n- 認可判定の結果に応じて画面項目(メニューやボタンなど)の表示・非表示を切り替えることができる\n\n### 未実装\n\n- 本機能で使用するマスタデータをメンテナンスできる\n- 本機能で使用するマスタの初期データを一括登録できる\n- 認証機能によりユーザIDがロックされているユーザの認可判定を失敗にできる\n\n### 未検討\n\n- データへのアクセスを制限できる\n- 機能単位の権限に有効日(From/To)を設定できる\n\n> **注意**: 下記のコードはフレームワークが行う処理であり、通常のアプリケーションでは実装する必要がない。\n\nPermissionCheckHandlerにより、スレッドローカルにPermissionが保持されている。PermissionUtilからPermissionを取得し、リクエストIDを指定して認可判定を行う。\n\n```java\n// PermissionUtilからPermissionを取得する\nPermission permission = PermissionUtil.getPermission();\n\n// リクエストIDを指定して認可判定を行う。\nif (permission.permit(\"リクエストID\")) {\n\n // 認可に成功した場合の処理\n\n} else {\n\n // 認可に失敗した場合の処理\n\n}\n```", + "s4": "リクエストIDを使用して認可判定を行う。リクエストIDの体系はアプリケーション毎に設計する。\n\n**認可単位**: ユーザが機能として認識する最小単位の概念。認可単位には認可を実現するために必要なリクエスト(Webアプリであれば画面のイベント)が複数紐付く。\n\n- グループに認可単位を紐付け → グループ権限\n- ユーザに認可単位を直接紐付け → ユーザ権限\n\nグループ権限とユーザ権限の例:\n\n| ユーザ | 説明 |\n|---|---|\n| Aさん | 人事部グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 |\n| Bさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。 |\n| Cさん | パートナーグループに紐づいているので、社員情報変更のみ使用できる。 |\n| Xさん | 部長グループと社員グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 |\n| Yさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。さらにDさんは、社員登録認可単位に直接紐づいているので、社員登録も使用できる。 |\n\n> **注意**: Yさんのようにグループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。\n\n> **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。", + "s5": "**インタフェース**:\n\n| インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する |\n| `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する |\n\n**Permissionの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス |\n\n**PermissionFactoryの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する |\n\n**その他のクラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ |\n| `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ |", "s6": "1. PermissionCheckHandlerは、リクエスト毎にユーザに紐付くPermissionを取得し、認可判定後にPermissionをスレッドローカルに格納する\n2. 個別アプリケーションで認可判定が必要な場合は、PermissionUtilからPermissionを取得して認可判定を行う\n3. 認証機能によりユーザIDがロックされている場合は認可失敗となる\n4. 認可判定の対象リクエストのチェックには、設定で指定されたリクエストIDを使用して行う(:ref:`ignoreRequestIdsSetting` 参照)\n5. ユーザIDとリクエストIDはPermissionCheckHandlerより先に処理するハンドラでThreadContextに設定する(:ref:`ThreadContextHandler` が行う)", "s7": "テーブル名・カラム名はBasicPermissionFactoryの設定で指定するため任意の名前を使用できる。DBの型もJavaの型に変換可能であれば任意の型を使用できる。\n\n> **注意**: システムアカウントテーブルは認証機能と同じテーブルを使用することを想定しているため、認証機能で使用するデータ項目(パスワード等)が含まれる。\n\n**グループ**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n\n**システムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| ユーザIDロック | boolean | |\n| 有効日(From) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**グループシステムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| ユーザID | java.lang.String | ユニークキー |\n| 有効日(From) | java.lang.String | ユニークキー。書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**認可単位**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**認可単位リクエスト**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n| リクエストID | java.lang.String | ユニークキー |\n\n**グループ権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**システムアカウント権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |" } diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-05_MessagingLog.json b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-05_MessagingLog.json deleted file mode 100644 index 30e3d4874..000000000 --- a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-05_MessagingLog.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "id": "libraries-05_MessagingLog", - "title": "メッセージングログの出力", - "official_doc_urls": [], - "index": [ - { - "id": "s1", - "title": "メッセージングログの出力", - "hints": [ - "MessagingLogUtil", - "MessagingLogFormatter", - "MessagingContext", - "HttpMessagingRequestParsingHandler", - "HttpMessagingResponseBuildingHandler", - "HttpMessagingClient", - "messagingLogFormatter.maskingPatterns", - "messagingLogFormatter.maskingChar", - "messagingLogFormatter.sentMessageFormat", - "messagingLogFormatter.receivedMessageFormat", - "messagingLogFormatter.httpSentMessageFormat", - "messagingLogFormatter.httpReceivedMessageFormat", - "messagingLogFormatter.className", - "メッセージングログ設定", - "メッセージボディマスク", - "MOMメッセージング", - "HTTPメッセージング", - "個人情報マスク", - "MOM応答不要" - ] - }, - { - "id": "s2", - "title": "MOM送信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$replyTo$", - "$timeToLive$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "MOM送信メッセージフォーマット", - "sentMessageFormat", - "SENT MESSAGE" - ] - }, - { - "id": "s3", - "title": "MOM受信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$replyTo$", - "$timeToLive$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "MOM受信メッセージフォーマット", - "receivedMessageFormat", - "RECEIVED MESSAGE" - ] - }, - { - "id": "s4", - "title": "HTTP送信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "$messageHeader$", - "HTTP送信メッセージフォーマット", - "httpSentMessageFormat", - "HTTP SENT MESSAGE" - ] - }, - { - "id": "s5", - "title": "HTTP受信メッセージのログ出力に使用するフォーマット", - "hints": [ - "$threadName$", - "$messageId$", - "$destination$", - "$correlationId$", - "$messageBody$", - "$messageBodyHex$", - "$messageBodyLength$", - "$messageHeader$", - "HTTP受信メッセージフォーマット", - "httpReceivedMessageFormat", - "HTTP RECEIVED MESSAGE" - ] - } - ], - "sections": { - "s1": "## 出力方針\n\nログレベル: INFO、ロガー名: MESSAGINGとしてアプリケーションログへ出力する。\n\nlog.propertiesの設定例:\n```bash\nwriterNames=appFile\n\nwriter.appFile.className=nablarch.core.log.basic.FileLogWriter\nwriter.appFile.filePath=/var/log/app/app.log\nwriter.appFile.encoding=UTF-8\nwriter.appFile.maxFileSize=10000\nwriter.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter\nwriter.appFile.formatter.format=<アプリケーションログ用のフォーマット>\n\navailableLoggersNamesOrder=MESSAGING,ROO\n\nloggers.ROO.nameRegex=.*\nloggers.ROO.level=INFO\nloggers.ROO.writerNames=appFile\n\nloggers.MESSAGING.nameRegex=MESSAGING\nloggers.MESSAGING.level=INFO\nloggers.MESSAGING.writerNames=appFile\n```\n\n## 出力項目\n\n| 項目名 | 説明 |\n|---|---|\n| 出力日時 | ログ出力時のシステム日時 |\n| 起動プロセスID | アプリケーションを起動したプロセス名。実行環境の特定に使用する |\n| 処理方式区分 | 処理方式の特定に使用する |\n| リクエストID | 処理を一意に識別するID |\n| 実行時ID | 処理の実行を一意に識別するID |\n| ユーザID | ログインユーザのユーザID |\n| スレッド名 | 処理を実行したスレッド名 |\n| メッセージID | メッセージに設定されているメッセージID |\n| 送信宛先 | メッセージに設定されている送信宛先 |\n| 関連メッセージID | メッセージに設定されている関連メッセージID |\n| 応答宛先 | メッセージに設定されている応答宛先 |\n| 有効期間 | メッセージに設定されている有効期間 |\n| メッセージヘッダ | メッセージに設定されているヘッダ |\n| メッセージボディ | メッセージボディ部のダンプ。個人情報・機密情報はマスクして出力(マスク設定が必要) |\n| メッセージボディのヘキサダンプ | メッセージボディ部のヘキサダンプ。マスク対象部分はマスク文字列のヘキサダンプを出力(マスク設定が必要) |\n| メッセージボディのバイト長 | メッセージボディ部のバイト長 |\n\n個別項目(スレッド名〜メッセージボディのバイト長)以外の共通項目は :ref:`Log_BasicLogFormatter` で指定する。共通項目と個別項目を組み合わせたフォーマットは :ref:`AppLog_Format` を参照。\n\n## 出力に使用するクラス\n\n![メッセージングログクラス図](assets/libraries-05_MessagingLog/Log_MessagingLog_ClassDiagram.jpg)\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.fw.messaging.MessagingContext` | MOMメッセージ送受信処理で要求/応答メッセージの相互変換と送受信を行う。実際の送受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.handler.HttpMessagingRequestParsingHandler` | HTTPリクエストを解析して要求メッセージへ変換するハンドラ。受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.handler.HttpMessagingResponseBuildingHandler` | 応答メッセージをHTTPレスポンスへ変換するハンドラ。送信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.realtime.http.client.HttpMessagingClient` | 要求メッセージからHTTPリクエストへの変換およびHTTPレスポンスの応答メッセージへの変換を行う。送受信メッセージ内容をログ出力する |\n| `nablarch.fw.messaging.logging.MessagingLogUtil` | メッセージング処理中のログ出力内容に関連した処理を行う |\n| `nablarch.fw.messaging.logging.MessagingLogFormatter` | メッセージングログの個別項目をフォーマットする |\n\n各クラスはMessagingLogUtilを使用してメッセージングログを整形し、Loggerを使用してログ出力を行う。\n\n処理シーケンス:\n- MOM同期応答メッセージ受信: ![MOM受信シーケンス図](assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_incoming.jpg)\n - MOM応答不要メッセージ受信処理では、MOM受信ログの出力および業務アクションの呼び出しまでの処理が行われる(シーケンス図省略)\n- MOM同期応答メッセージ送信: ![MOM送信シーケンス図](assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_mom_outgoing.jpg)\n - MOM応答不要メッセージ送信処理では、MOM送信ログの出力および要求キューメッセージの送信までの処理が行われる(シーケンス図省略)\n- HTTPメッセージ受信: ![HTTP受信シーケンス図](assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_incoming.jpg)\n- HTTPメッセージ送信: ![HTTP送信シーケンス図](assets/libraries-05_MessagingLog/Log_MessagingLog_SequenceDiagram_http_outgoing.jpg)\n\n## 設定方法\n\nMessagingLogUtilはapp-log.propertiesを読み込みMessagingLogFormatterオブジェクトを生成して個別項目のフォーマット処理を委譲する。プロパティファイルのパス指定や実行時設定変更は :ref:`AppLog_Config` を参照。\n\napp-log.propertiesの設定例:\n```bash\nmessagingLogFormatter.className=nablarch.fw.messaging.logging.MessagingLogFormatter\nmessagingLogFormatter.maskingChar=#\nmessagingLogFormatter.maskingPatterns=(.+?),(.+?)\n\nmessagingLogFormatter.sentMessageFormat=@@@@ SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\treply_to = [$replyTo$]\\n\\ttime_to_live = [$timeToLive$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.receivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\treply_to = [$replyTo$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.httpSentMessageFormat=@@@@ HTTP SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_body = [$messageBody$]\nmessagingLogFormatter.httpReceivedMessageFormat=@@@@ HTTP RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_body = [$messageBody$]\n```\n\n| プロパティ名 | 説明 |\n|---|---|\n| messagingLogFormatter.className | MessagingLogFormatterのクラス名。差し替える場合に指定 |\n| messagingLogFormatter.maskingPatterns | メッセージ本文のマスク対象文字列を正規表現で指定。最初のキャプチャ部分(括弧で囲まれた部分)がマスク対象。複数指定はカンマ区切り。Pattern.CASE_INSENSITIVEでコンパイルされる |\n| messagingLogFormatter.maskingChar | マスクに使用する文字。デフォルトは'*' |\n| messagingLogFormatter.sentMessageFormat | MOM送信メッセージのログ出力フォーマット |\n| messagingLogFormatter.receivedMessageFormat | MOM受信メッセージのログ出力フォーマット |\n| messagingLogFormatter.httpSentMessageFormat | HTTP送信メッセージのログ出力フォーマット |\n| messagingLogFormatter.httpReceivedMessageFormat | HTTP受信メッセージのログ出力フォーマット |\n\n## 出力例\n\ncnoタグ内容をマスクするHTTPメッセージ受信処理の例。\n\napp-log.propertiesの設定例:\n```bash\nmessagingLogFormatter.maskingChar=#\nmessagingLogFormatter.maskingPatterns=(.*?)\nmessagingLogFormatter.httpSentMessageFormat=@@@@ SENT MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_length = [$messageBodyLength$]\\n\\tmessage_body = [$messageBody$]\\n\\tmessage_bodyhex= [$messageBodyHex$]\nmessagingLogFormatter.httpReceivedMessageFormat=@@@@ RECEIVED MESSAGE @@@@\\n\\tthread_name = [$threadName$]\\n\\tmessage_id = [$messageId$]\\n\\tdestination = [$destination$]\\n\\tcorrelation_id = [$correlationId$]\\n\\tmessage_header = [$messageHeader$]\\n\\tmessage_length = [$messageBodyLength$]\\n\\tmessage_body = [$messageBody$]\\n\\tmessage_bodyhex= [$messageBodyHex$]\n```\n\nlog.propertiesの設定例:\n```bash\nwriterNames=appFile\n\nwriter.appFile.className=nablarch.core.log.basic.FileLogWriter\nwriter.appFile.filePath=./app.log\nwriter.appFile.encoding=UTF-8\nwriter.appFile.maxFileSize=10000\nwriter.appFile.formatter.className=nablarch.core.log.basic.BasicLogFormatter\nwriter.appFile.formatter.format=$date$ -$logLevel$- $loggerName$ [$executionId$] boot_proc = [$bootProcess$] proc_sys = [$processingSystem$] req_id = [$requestId$] usr_id = [$userId$] $message$$information$$stackTrace$\n\navailableLoggersNamesOrder=MESSAGING\n\nloggers.MESSAGING.nameRegex=MESSAGING\nloggers.MESSAGING.level=INFO\nloggers.MESSAGING.writerNames=appFile\n```\n\n出力例(cnoタグの内容はmaskingCharで指定した文字にマスクされ、ヘキサダンプ部分もマスク文字列のヘキサダンプが出力される):\n```\n2014-06-27 11:07:51.314 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP RECEIVED MESSAGE @@@@\n thread_name = [main]\n message_id = [1403834871251]\n destination = [null]\n correlation_id = [null]\n message_header = [{x-message-id=1403834871251, MessageId=1403834871251, ReplyTo=/action/RM11AC0102}]\n message_length = [216]\n message_body = [<_nbctlhdr>unitTest0nablarchナブラーク****************]\n message_bodyhex= [3C3F786D6C...(マスク文字列のヘキサダンプ)]\n2014-06-27 11:07:51.329 -INFO- MESSAGING [null] boot_proc = [] proc_sys = [] req_id = [RM11AC0102] usr_id = [unitTest] @@@@ HTTP SENT MESSAGE @@@@\n thread_name = [main]\n message_id = [null]\n destination = [/action/RM11AC0102]\n correlation_id = [1403834871251]\n message_header = [{CorrelationId=1403834871251, Destination=/action/RM11AC0102}]\n message_length = [145]\n message_body = [<_nbctlhdr>200success]\n message_bodyhex= [3C3F786D6C...(ヘキサダンプ)]\n```", - "s2": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信宛先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| 応答宛先 | $replyTo$ |\n| 有効期間 | $timeToLive$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ SENT MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\treply_to = [$replyTo$]\n \\n\\ttime_to_live = [$timeToLive$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s3": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信宛先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| 応答宛先 | $replyTo$ |\n| 有効期間 | $timeToLive$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ RECEIVED MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\treply_to = [$replyTo$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s4": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n| メッセージのヘッダ | $messageHeader$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ HTTP SENT MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\tmessage_header = [$messageHeader$]\n \\n\\tmessage_body = [$messageBody$]\n```", - "s5": "## プレースホルダ一覧\n\n| 項目名 | プレースホルダ |\n|---|---|\n| スレッド名 | $threadName$ |\n| メッセージID | $messageId$ |\n| 送信先 | $destination$ |\n| 関連メッセージID | $correlationId$ |\n| メッセージボディの内容 | $messageBody$ |\n| メッセージボディのヘキサダンプ | $messageBodyHex$ |\n| メッセージボディのバイト長 | $messageBodyLength$ |\n| メッセージのヘッダ | $messageHeader$ |\n\n## デフォルトフォーマット\n\n```bash\n@@@@ HTTP RECEIVED MESSAGE @@@@\n \\n\\tthread_name = [$threadName$]\n \\n\\tmessage_id = [$messageId$]\n \\n\\tdestination = [$destination$]\n \\n\\tcorrelation_id = [$correlationId$]\n \\n\\tmessage_header = [$messageHeader$]\n \\n\\tmessage_body = [$messageBody$]\n```" - } -} \ No newline at end of file diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-07_TagReference.json b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-07_TagReference.json index 4050f7b21..4dd668115 100644 --- a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-07_TagReference.json +++ b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-07_TagReference.json @@ -15,6 +15,84 @@ "checkboxタグ", "selectタグ", "submitタグ", + "compositeKeyRadioButtonタグ", + "CompositeKeyRadioButtonTag", + "fileタグ", + "FileTag", + "hiddenタグ", + "HiddenTag", + "plainHiddenタグ", + "PlainHiddenTag", + "radiobuttonsタグ", + "RadioButtonsTag", + "checkboxesタグ", + "CheckboxesTag", + "buttonタグ", + "ButtonTag", + "submitLinkタグ", + "SubmitLinkTag", + "popupSubmitタグ", + "PopupSubmitTag", + "popupButtonタグ", + "PopupButtonTag", + "popupLinkタグ", + "PopupLinkTag", + "downloadSubmitタグ", + "DownloadSubmitTag", + "downloadButtonタグ", + "DownloadButtonTag", + "downloadLinkタグ", + "DownloadLinkTag", + "paramタグ", + "ParamTag", + "changeParamNameタグ", + "ChangeParamNameTag", + "aタグ", + "ATag", + "imgタグ", + "ImgTag", + "linkタグ", + "LinkTag", + "scriptタグ", + "ScriptTag", + "errorsタグ", + "ErrorsTag", + "errorタグ", + "ErrorTag", + "noCacheタグ", + "NoCacheTag", + "codeSelectタグ", + "CodeSelectTag", + "codeRadioButtonsタグ", + "CodeRadioButtonsTag", + "codeCheckboxesタグ", + "CodeCheckboxesTag", + "codeCheckboxタグ", + "CodeCheckboxTag", + "codeタグ", + "CodeTag", + "messageタグ", + "MessageTag", + "writeタグ", + "WriteTag", + "prettyPrintタグ", + "PrettyPrintTag", + "rawWriteタグ", + "RawWriteTag", + "setタグ", + "SetTag", + "includeタグ", + "IncludeTag", + "includeParamタグ", + "IncludeParamTag", + "confirmationPageタグ", + "ConfirmationPageTag", + "ignoreConfirmationタグ", + "IgnoreConfirmationTag", + "forInputPageタグ", + "ForInputPageTag", + "forConfirmationPageタグ", + "ForConfirmationPageTag", "カスタムタグ", "WebView", "サブミット制御", @@ -29,6 +107,10 @@ "valueObject", "keyNames", "namePrefix", + "autofocus", + "label", + "disabled", + "onchange", "errorCss", "nameAlias", "複合キーチェックボックス", @@ -40,6 +122,8 @@ "displayMethod", "secure", "uri", + "shape", + "coords", "codeCheckboxes", "コードチェックボックス複数", "コードID", @@ -47,10 +131,7 @@ "listFormat", "codeId", "pattern", - "optionColumnName", - "autofocus", - "disabled", - "onchange" + "optionColumnName" ] }, { @@ -82,6 +163,10 @@ "valueObject", "keyNames", "namePrefix", + "autofocus", + "label", + "disabled", + "onchange", "errorCss", "nameAlias", "複合キーラジオボタン", @@ -94,17 +179,19 @@ "displayMethod", "secure", "uri", + "type", + "value", + "src", + "alt", + "usemap", + "align", "codeCheckbox", "コードチェックボックス単体", "offCodeValue", "コード値チェックボックス", "codeId", "labelPattern", - "value", - "autofocus", - "optionColumnName", - "disabled", - "onchange" + "optionColumnName" ] }, { @@ -121,7 +208,12 @@ "name", "disabled", "readonly", + "size", + "maxlength", + "onselect", + "onchange", "accept", + "autofocus", "multiple", "errorCss", "nameAlias", @@ -134,6 +226,8 @@ "displayMethod", "secure", "uri", + "value", + "type", "code", "コード値表示", "コードリスト表示", @@ -179,11 +273,14 @@ "二重サブミット", "displayMethod", "uri", + "shape", + "coords", "message", "メッセージ表示", "メッセージID", "HTMLエスケープ", "messageId", + "option0~option9", "htmlEscape", "withHtmlFormat", "var", @@ -223,6 +320,7 @@ "paramName", "サブミットパラメータ", "パラメータ名", + "value", "write", "値表示", "dateTime", @@ -247,6 +345,13 @@ "listName", "elementLabelProperty", "elementValueProperty", + "size", + "multiple", + "tabindex", + "onfocus", + "onblur", + "onchange", + "autofocus", "elementLabelPattern", "listFormat", "withNoneOption", @@ -280,6 +385,9 @@ "listName", "elementLabelProperty", "elementValueProperty", + "disabled", + "onchange", + "autofocus", "elementLabelPattern", "listFormat", "ラジオボタン", @@ -291,6 +399,12 @@ "hreflang", "secure", "target", + "charset", + "type", + "rel", + "rev", + "shape", + "coords", "rawWrite", "HTMLエスケープなし出力", "生データ表示", @@ -318,6 +432,9 @@ "listName", "elementLabelProperty", "elementValueProperty", + "disabled", + "onchange", + "autofocus", "elementLabelPattern", "listFormat", "チェックボックス", @@ -329,6 +446,14 @@ "alt", "secure", "usemap", + "longdesc", + "height", + "width", + "ismap", + "align", + "border", + "hspace", + "vspace", "include", "ファイルインクルード", "path" @@ -370,6 +495,10 @@ "href", "media", "rel", + "charset", + "hreflang", + "rev", + "target", "includeParam", "インクルードパラメータ", "paramName" @@ -387,6 +516,11 @@ "checkboxesタグ", "入力データ復元", "button", + "name", + "value", + "type", + "disabled", + "autofocus", "uri", "allowDoubleSubmission", "secure", @@ -400,6 +534,9 @@ "src", "xmlSpace", "defer", + "id", + "charset", + "language", "confirmationPage", "確認画面", "フォワード先", @@ -411,6 +548,7 @@ "title": "submitLinkタグ", "hints": [ "submitLink", + "name", "uri", "allowDoubleSubmission", "secure", @@ -429,6 +567,10 @@ "global", "infoCss", "warnCss", + "errorCss", + "nablarch_error", + "nablarch_info", + "nablarch_warn", "ignoreConfirmation", "確認画面無視", "入力確認フロー" @@ -439,6 +581,10 @@ "title": "popupSubmitタグ", "hints": [ "popupSubmit", + "name", + "disabled", + "value", + "autofocus", "type", "uri", "popupWindowName", @@ -468,6 +614,11 @@ "title": "popupButtonタグ", "hints": [ "popupButton", + "name", + "value", + "type", + "disabled", + "autofocus", "uri", "popupWindowName", "popupOption", @@ -527,17 +678,17 @@ } ], "sections": { - "s1": "Nablarch WebViewが提供するカスタムタグの一覧。\n\n| タグ | 機能 |\n|---|---|\n| :ref:`WebView_FormTag` | HTMLのformタグ出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止)。不正画面遷移チェック |\n| :ref:`WebView_TextTag` | HTMLのinputタグ(type=text)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_TextareaTag` | HTMLのtextareaタグ出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_PasswordTag` | HTMLのinputタグ(type=password)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_RadioButtonTag` | HTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ。radiobuttonsタグで表示できないレイアウト時に使用 |\n| :ref:`WebView_CheckboxTag` | HTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ。checkboxesタグで表示できないレイアウト時に使用 |\n| :ref:`WebView_CompositeKeyRadioButtonTag` | 複数のHTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ。radioButtonタグで実現できない複合キー使用時に使用 |\n| :ref:`WebView_CompositeKeyCheckboxTag` | 複数のHTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ。checkboxesタグで実現できない複合キー使用時に使用 |\n| :ref:`WebView_FileTag` | HTMLのinputタグ(type=file)出力。HTMLエスケープ |\n| :ref:`WebView_HiddenTag` | HTMLタグの出力を行わず、ウィンドウスコープに値を出力 |\n| :ref:`WebView_PlainHiddenTag` | HTMLのinputタグ(type=hidden)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_SelectTag` | HTMLのselectタグとoptionタグ出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_RadioButtonsTag` | 複数のHTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_CheckboxesTag` | 複数のHTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_SubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_ButtonTag` | HTMLのbuttonタグ出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_SubmitLinkTag` | HTMLのaタグ出力。サブミット制御(リンクとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_PopupSubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_PopupButtonTag` | HTMLのbuttonタグ出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_PopupLinkTag` | HTMLのaタグ出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_DownloadSubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。ダウンロード用サブミット |\n| :ref:`WebView_DownloadButtonTag` | HTMLのbuttonタグ出力。ダウンロード用サブミット |\n| :ref:`WebView_DownloadLinkTag` | HTMLのaタグ出力。ダウンロード用サブミット |\n| :ref:`WebView_ParamTag` | サブミット時に追加するパラメータを指定 |\n| :ref:`WebView_ChangeParamNameTag` | ポップアップ用のサブミット時にパラメータ名を変更 |\n| :ref:`WebView_ATag` | HTMLのaタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ImgTag` | HTMLのimgタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_LinkTag` | HTMLのlinkタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ScriptTag` | HTMLのscriptタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ErrorsTag` | エラーメッセージの複数件表示。画面上部に一覧で表示する場合に使用 |\n| :ref:`WebView_ErrorTag` | エラーメッセージの個別表示。エラーの原因となった入力項目の近くに個別表示する場合に使用 |\n| :ref:`WebView_NoCacheTag` | ブラウザのキャッシュを防止するmetaタグの出力及びレスポンスヘッダの設定 |\n| :ref:`WebView_CodeSelectTag` | コード値の選択表示(selectタグ使用) |\n| :ref:`WebView_CodeRadioButtonsTag` | コード値の選択表示(inputタグ type=radio使用) |\n| :ref:`WebView_CodeCheckboxesTag` | コード値の選択表示(inputタグ type=checkbox使用) |\n| :ref:`WebView_CodeCheckboxTag` | コード値の単一入力項目表示(inputタグ type=checkbox使用) |\n| :ref:`WebView_CodeTag` | 一覧表示や参照画面でコード値を出力 |\n| :ref:`WebView_MessageTag` | 言語に応じたメッセージを出力 |\n| :ref:`WebView_WriteTag` | 一覧表示や参照画面でオブジェクトから値を出力 |\n| :ref:`WebView_PrettyPrintTag` | 修飾系のHTML(``タグなど)をエスケープせずにオブジェクトの値を出力 |\n| :ref:`WebView_RawWriteTag` | HTMLエスケープをせずにオブジェクトの値を直接出力 |\n| :ref:`WebView_SetTag` | リクエストスコープの変数に値を設定 |\n| :ref:`WebView_IncludeTag` | インクルード先のパスを言語対応のパスに変換してからインクルード |\n| :ref:`WebView_IncludeParamTag` | インクルード時に追加するパラメータを指定 |\n| :ref:`WebView_ConfirmationPageTag` | JSPが確認画面であることを示す。入力画面へのパスを指定することで入力画面と確認画面を共通化 |\n| :ref:`WebView_IgnoreConfirmationTag` | JSPの画面状態が確認画面である場合に確認画面の画面状態を部分的に無効化。このタグで囲まれた範囲の入力項目は常に入力画面用の出力を行う |\n| :ref:`WebView_ForInputPageTag` | 入力画面と確認画面を共通化したJSPにおいて、入力画面のみボディを評価 |\n| :ref:`WebView_ForConfirmationPageTag` | 入力画面と確認画面を共通化したJSPにおいて、確認画面のみボディを評価 |\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| valueObject | ○ | | XHTMLのvalue属性の代わりに使用するオブジェクト。keyNamesで指定したプロパティを持つ必要がある |\n| keyNames | ○ | | 複合キーのキー名。カンマ区切りで指定 |\n| namePrefix | ○ | | リクエストパラメータに展開する際に使用するプレフィクス |\n| autofocus | | | HTML5のautofocus属性 |\n| label | | | チェックありの場合に使用するラベル。入力画面で表示される |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## popupLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| popupWindowName | | | ポップアップのウィンドウ名。window.open関数の第2引数(JavaScript)に指定する |\n| popupOption | | | ポップアップのオプション情報。window.open関数の第3引数(JavaScript)に指定する |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## codeCheckboxesタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | id属性は指定不可。 |\n| :ref:`WebView_FocusAttributesTag` | | | accesskey属性は指定不可。 |\n| name | ○ | | XHTMLのname属性。 |\n| codeId | ○ | | コードID。 |\n| disabled | | | XHTMLのdisabled属性。 |\n| onchange | | | XHTMLのonchange属性。 |\n| autofocus | | | HTML5のautofocus属性。選択肢のうち、先頭要素のみautofocus属性を出力する。 |\n| pattern | | 指定なし | 使用するパターンのカラム名。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| listFormat | | br | リスト表示フォーマット。br/div/span/ul/ol/sp のいずれかを指定。 |\n| errorCss | | \"nablarch_error\" | エラーレベルのメッセージに使用するCSSクラス名。 |\n| nameAlias | | | name属性のエイリアス。複数指定はカンマ区切り。 |", + "s1": "Nablarch WebViewが提供するカスタムタグの一覧。\n\n| タグ | 機能 |\n|---|---|\n| :ref:`WebView_FormTag` | HTMLのformタグ出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止)。不正画面遷移チェック |\n| :ref:`WebView_TextTag` | HTMLのinputタグ(type=text)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_TextareaTag` | HTMLのtextareaタグ出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_PasswordTag` | HTMLのinputタグ(type=password)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_RadioButtonTag` | HTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ。radiobuttonsタグで表示できないレイアウト時に使用 |\n| :ref:`WebView_CheckboxTag` | HTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ。checkboxesタグで表示できないレイアウト時に使用 |\n| :ref:`WebView_CompositeKeyRadioButtonTag` | 複数のHTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ。radioButtonタグで実現できない複合キー使用時に使用 |\n| :ref:`WebView_CompositeKeyCheckboxTag` | 複数のHTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ。checkboxesタグで実現できない複合キー使用時に使用 |\n| :ref:`WebView_FileTag` | HTMLのinputタグ(type=file)出力。HTMLエスケープ |\n| :ref:`WebView_HiddenTag` | HTMLタグの出力を行わず、ウィンドウスコープに値を出力 |\n| :ref:`WebView_PlainHiddenTag` | HTMLのinputタグ(type=hidden)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_SelectTag` | HTMLのselectタグとoptionタグ出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_RadioButtonsTag` | 複数のHTMLのinputタグ(type=radio)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_CheckboxesTag` | 複数のHTMLのinputタグ(type=checkbox)出力。入力データ復元。HTMLエスケープ |\n| :ref:`WebView_SubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_ButtonTag` | HTMLのbuttonタグ出力。サブミット制御(ボタンとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_SubmitLinkTag` | HTMLのaタグ出力。サブミット制御(リンクとアクションの紐付け、二重サブミット防止) |\n| :ref:`WebView_PopupSubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_PopupButtonTag` | HTMLのbuttonタグ出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_PopupLinkTag` | HTMLのaタグ出力。新しいウィンドウをオープンしてサブミット。複数ウィンドウ立ち上げ時に使用 |\n| :ref:`WebView_DownloadSubmitTag` | HTMLのinputタグ(type=submit,image,button)出力。ダウンロード用サブミット |\n| :ref:`WebView_DownloadButtonTag` | HTMLのbuttonタグ出力。ダウンロード用サブミット |\n| :ref:`WebView_DownloadLinkTag` | HTMLのaタグ出力。ダウンロード用サブミット |\n| :ref:`WebView_ParamTag` | サブミット時に追加するパラメータを指定 |\n| :ref:`WebView_ChangeParamNameTag` | ポップアップ用のサブミット時にパラメータ名を変更 |\n| :ref:`WebView_ATag` | HTMLのaタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ImgTag` | HTMLのimgタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_LinkTag` | HTMLのlinkタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ScriptTag` | HTMLのscriptタグ出力。コンテキストパスの付加とURLリライト |\n| :ref:`WebView_ErrorsTag` | エラーメッセージの複数件表示。画面上部に一覧で表示する場合に使用 |\n| :ref:`WebView_ErrorTag` | エラーメッセージの個別表示。エラーの原因となった入力項目の近くに個別表示する場合に使用 |\n| :ref:`WebView_NoCacheTag` | ブラウザのキャッシュを防止するmetaタグの出力及びレスポンスヘッダの設定 |\n| :ref:`WebView_CodeSelectTag` | コード値の選択表示(selectタグ使用) |\n| :ref:`WebView_CodeRadioButtonsTag` | コード値の選択表示(inputタグ type=radio使用) |\n| :ref:`WebView_CodeCheckboxesTag` | コード値の選択表示(inputタグ type=checkbox使用) |\n| :ref:`WebView_CodeCheckboxTag` | コード値の単一入力項目表示(inputタグ type=checkbox使用) |\n| :ref:`WebView_CodeTag` | 一覧表示や参照画面でコード値を出力 |\n| :ref:`WebView_MessageTag` | 言語に応じたメッセージを出力 |\n| :ref:`WebView_WriteTag` | 一覧表示や参照画面でオブジェクトから値を出力 |\n| :ref:`WebView_PrettyPrintTag` | 修飾系のHTML(``タグなど)をエスケープせずにオブジェクトの値を出力 |\n| :ref:`WebView_RawWriteTag` | HTMLエスケープをせずにオブジェクトの値を直接出力 |\n| :ref:`WebView_SetTag` | リクエストスコープの変数に値を設定 |\n| :ref:`WebView_IncludeTag` | インクルード先のパスを言語対応のパスに変換してからインクルード |\n| :ref:`WebView_IncludeParamTag` | インクルード時に追加するパラメータを指定 |\n| :ref:`WebView_ConfirmationPageTag` | JSPが確認画面であることを示す。入力画面へのパスを指定することで入力画面と確認画面を共通化 |\n| :ref:`WebView_IgnoreConfirmationTag` | JSPの画面状態が確認画面である場合に確認画面の画面状態を部分的に無効化。このタグで囲まれた範囲の入力項目は常に入力画面用の出力を行う |\n| :ref:`WebView_ForInputPageTag` | 入力画面と確認画面を共通化したJSPにおいて、入力画面のみボディを評価 |\n| :ref:`WebView_ForConfirmationPageTag` | 入力画面と確認画面を共通化したJSPにおいて、確認画面のみボディを評価 |\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| valueObject | ○ | | XHTMLのvalue属性の代わりに使用するオブジェクト。keyNamesで指定したプロパティを持つ必要がある |\n| keyNames | ○ | | 複合キーのキー名。カンマ区切りで指定 |\n| namePrefix | ○ | | リクエストパラメータに展開する際に使用するプレフィクス |\n| autofocus | | | HTML5のautofocus属性 |\n| label | | | チェックありの場合に使用するラベル。入力画面で表示される |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## popupLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| popupWindowName | | | ポップアップのウィンドウ名。新しいウィンドウを開く際にwindwo.open関数の第2引数(JavaScript)に指定する |\n| popupOption | | | ポップアップのオプション情報。新しいウィンドウを開く際にwindwo.open関数の第3引数(JavaScript)に指定する |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## codeCheckboxesタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | id属性は指定不可。 |\n| :ref:`WebView_FocusAttributesTag` | | | accesskey属性は指定不可。 |\n| name | ○ | | XHTMLのname属性。 |\n| codeId | ○ | | コードID。 |\n| disabled | | | XHTMLのdisabled属性。 |\n| onchange | | | XHTMLのonchange属性。 |\n| autofocus | | | HTML5のautofocus属性。選択肢のうち、先頭要素のみautofocus属性を出力する。 |\n| pattern | | 指定なし | 使用するパターンのカラム名。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| listFormat | | br | リスト表示フォーマット。br/div/span/ul/ol/sp のいずれかを指定。 |\n| errorCss | | \"nablarch_error\" | エラーレベルのメッセージに使用するCSSクラス名。 |\n| nameAlias | | | name属性のエイリアス。複数指定はカンマ区切り。 |", "s2": "全てのHTMLカスタムタグで使用可能な共通属性(:ref:`WebView_GenericAttributesTag`)。\n\n| 属性 | 説明 |\n|---|---|\n| id | XHTMLのid属性 |\n| cssClass | XHTMLのclass属性 |\n| style | XHTMLのstyle属性 |\n| title | XHTMLのtitle属性 |\n| lang | XHTMLのlang属性 |\n| xmlLang | XHTMLのxml:lang属性 |\n| dir | XHTMLのdir属性 |\n| onclick | XHTMLのonclick属性 |\n| ondblclick | XHTMLのondblclick属性 |\n| onmousedown | XHTMLのonmousedown属性 |\n| onmouseup | XHTMLのonmouseup属性 |\n| onmouseover | XHTMLのonmouseover属性 |\n| onmousemove | XHTMLのonmousemove属性 |\n| onmouseout | XHTMLのonmouseout属性 |\n| onkeypress | XHTMLのonkeypress属性 |\n| onkeydown | XHTMLのonkeydown属性 |\n| onkeyup | XHTMLのonkeyup属性 |\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| valueObject | ○ | | XHTMLのvalue属性の代わりに使用するオブジェクト。keyNamesで指定したプロパティを持つ必要がある |\n| keyNames | ○ | | 複合キーのキー名。カンマ区切りで指定 |\n| namePrefix | ○ | | リクエストパラメータに展開する際に使用するプレフィクス |\n| autofocus | | | HTML5のautofocus属性 |\n| label | | | チェックありの場合に使用するラベル。入力画面で表示される |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## downloadSubmitタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| type | ○ | | XHTMLのtype属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| disabled | | | XHTMLのdisabled属性 |\n| value | | | XHTMLのvalue属性 |\n| src | | | XHTMLのsrc属性 |\n| alt | | | XHTMLのalt属性 |\n| usemap | | | XHTMLのusemap属性 |\n| align | | | XHTMLのalign属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## codeCheckboxタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | ○ | | XHTMLのname属性。 |\n| value | | \"1\" | XHTMLのvalue属性。チェックありの場合に使用するコード値。 |\n| autofocus | | | HTML5のautofocus属性。 |\n| codeId | ○ | | コードID。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| offCodeValue | | | チェックなしの場合に使用するコード値。未指定時はcodeId属性の値からチェックなしコード値を検索。検索結果が2件かつ1件がvalue属性値の場合、残り1件を使用。見つからない場合はデフォルト値\"0\"を使用。 |\n| disabled | | | XHTMLのdisabled属性。 |\n| onchange | | | XHTMLのonchange属性。 |\n| errorCss | | \"nablarch_error\" | エラーレベルのメッセージに使用するCSSクラス名。 |\n| nameAlias | | | name属性のエイリアス。複数指定はカンマ区切り。 |", "s3": "フォーカスを取得可能なHTMLカスタムタグで使用可能な共通属性(:ref:`WebView_FocusAttributesTag`)。\n\n| 属性 | 説明 |\n|---|---|\n| accesskey | XHTMLのaccesskey属性 |\n| tabindex | XHTMLのtabindex属性 |\n| onfocus | XHTMLのonfocus属性 |\n| onblur | XHTMLのonblur属性 |\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| readonly | | | XHTMLのreadonly属性 |\n| size | | | XHTMLのsize属性 |\n| maxlength | | | XHTMLのmaxlength属性 |\n| onselect | | | XHTMLのonselect属性 |\n| onchange | | | XHTMLのonchange属性 |\n| accept | | | XHTMLのaccept属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| multiple | | | HTML5のmultiple属性 |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## downloadButtonタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| value | | | XHTMLのvalue属性 |\n| type | | | XHTMLのtype属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## codeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | 表示対象のコード値を変数スコープから取得する名前。省略時はcodeId属性とpattern属性で絞り込んだコードの一覧を表示する。 |\n| codeId | ○ | | コードID。 |\n| pattern | | 指定なし | 使用するパターンのカラム名。 |\n| optionColumnName | | | 取得するオプション名称のカラム名。 |\n| labelPattern | | \"$NAME$\" | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)、$SHORTNAME$(略称)、$OPTIONALNAME$(オプション名称、optionColumnName必須)、$VALUE$(コード値)。 |\n| listFormat | | br | リスト表示フォーマット。br/div/span/ul/ol/sp のいずれかを指定。 |", - "s4": "HTMLのformタグを出力するカスタムタグ(:ref:`WebView_FormTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| name | | | XHTMLのname属性 |\n| action | | | XHTMLのaction属性 |\n| method | | post | XHTMLのmethod属性 |\n| enctype | | | XHTMLのenctype属性 |\n| onsubmit | | | XHTMLのonsubmit属性 |\n| onreset | | | XHTMLのonreset属性 |\n| accept | | | XHTMLのaccept属性 |\n| acceptCharset | | | XHTMLのaccept-charset属性 |\n| target | | | XHTMLのtarget属性 |\n| autocomplete | | | HTML5のautocomplete属性 |\n| windowScopePrefixes | | | ウィンドウスコープ変数のプレフィックス(カンマ区切りで複数指定可)。指定されたプレフィックスにマッチするリクエストパラメータをhiddenタグとして出力 |\n| useToken | | false | トークンを設定するか否か(true=設定)。confirmationPageタグが指定された場合はデフォルトがtrueになる |\n| secure | | | URIをhttpsにするか否か(true=https) |\n| preventPostResubmit | | false | POST再送信防止機能を使用するか否か(true=使用) |\n\nHTMLタグの出力を行わず、ウィンドウスコープに値を出力する。\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n\n## downloadLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## messageタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| messageId | ○ | | メッセージID。 |\n| option0~option9 | | | メッセージフォーマットに使用するオプション引数(インデックス0~9)。最大10個まで指定可能。 |\n| language | | スレッドコンテキストの言語 | メッセージの言語。 |\n| var | | | リクエストスコープに格納する変数名。指定した場合はメッセージを出力せずリクエストスコープに設定する。この場合はHTMLエスケープとHTMLフォーマットを行わない。 |\n| htmlEscape | | true | HTMLエスケープするか否か(true/false)。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。htmlEscape=trueの場合のみ有効。 |", - "s5": "HTMLのinputタグ(type=text)を出力するカスタムタグ(:ref:`WebView_TextTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| readonly | | | XHTMLのreadonly属性 |\n| size | | | XHTMLのsize属性 |\n| maxlength | | | XHTMLのmaxlength属性 |\n| onselect | | | XHTMLのonselect属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autocomplete | | | HTML5のautocomplete属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| placeholder | | | HTML5のplaceholder属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}` 形式で指定 |\n\n**valueFormatのデータタイプ:**\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字にはy(年)・M(月)・d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターンを設定可能。\n - 例: `valueFormat=\"yyyymmdd\"` / `valueFormat=\"yyyymmdd{yyyy/MM/dd}\"`\n > **注意**: 入力画面にもフォーマットした値が出力される。入力された年月日をアクションで取得する場合は :ref:`ExtendedValidation_yyyymmddConvertor` を使用する。textタグとコンバータが連携し、valueFormat属性に指定されたパターンを使用した値変換と入力精査を行う。\n\n- **yyyymm**: 年月フォーマット。使用方法はyyyymmddと同様。\n > **注意**: コンバータには :ref:`ExtendedValidation_yyyymmConvertor` を使用する。\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合は言語に対応する1000の区切り文字を取り除いた後にフォーマットされる。パターンはjava.text.DecimalFormat形式。ThreadContextに設定された言語を使用して出力。区切り文字\"|\"でパターンに直接言語を指定可能。:ref:`WebView_CustomTagConfig` で区切り文字の変更可能。\n - 例: `valueFormat=\"decimal{###,###,###.000}\"` / `valueFormat=\"decimal{###,###,###.000|ja}\"`\n > **注意**: 入力画面にもフォーマットした値が出力される。入力された数値をアクションで取得する場合は数値コンバータ(BigDecimalConvertor、IntegerConvertor、LongConvertor)を使用する。textタグと数値コンバータが連携し、valueFormat属性に指定された言語に対応する値変換と入力精査を行う。\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n\n## paramタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | サブミット時に使用するパラメータの名前 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する |\n\n## writeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。HTMLエスケープをする場合のみ有効。 |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}`形式で指定。 |\n\n**valueFormatのデータタイプ**:\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字はy(年)、M(月)、d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定可。\n ```\n valueFormat=\"yyyymmdd\"\n valueFormat=\"yyyymmdd{yyyy/MM/dd}\"\n ```\n\n- **yyyymm**: 年月フォーマット。値はyyyyMM形式の文字列。使用方法はyyyymmddと同様。\n\n- **dateTime**: 日時フォーマット(**writeタグのみで使用可能**)。値はjava.util.Date型。パターンはjava.text.SimpleDateFormat構文。ThreadContextのタイムゾーンを使用。区切り文字\"|\"でパターンにタイムゾーンを直接指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定と区切り文字変更可。\n ```\n valueFormat=\"datetime\"\n valueFormat=\"datetime{|Asia/Tokyo}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss|Asia/Tokyo}\"\n ```\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合、言語に対応する1000区切り文字を除去後にフォーマット。パターンはjava.text.DecimalFormat構文。ThreadContextの言語を使用。区切り文字\"|\"でパターンに言語を直接指定可能。:ref:`WebView_CustomTagConfig` で区切り文字変更可。\n ```\n valueFormat=\"decimal{###,###,###.000}\"\n valueFormat=\"decimal{###,###,###.000|ja}\"\n ```", + "s4": "HTMLのformタグを出力するカスタムタグ(:ref:`WebView_FormTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| name | | | XHTMLのname属性 |\n| action | | | XHTMLのaction属性 |\n| method | | post | XHTMLのmethod属性 |\n| enctype | | | XHTMLのenctype属性 |\n| onsubmit | | | XHTMLのonsubmit属性 |\n| onreset | | | XHTMLのonreset属性 |\n| accept | | | XHTMLのaccept属性 |\n| acceptCharset | | | XHTMLのaccept-charset属性 |\n| target | | | XHTMLのtarget属性 |\n| autocomplete | | | HTML5のautocomplete属性 |\n| windowScopePrefixes | | | ウィンドウスコープ変数のプレフィックス(カンマ区切りで複数指定可)。指定されたプレフィックスにマッチするリクエストパラメータをhiddenタグとして出力 |\n| useToken | | false | トークンを設定するか否か(true=設定)。confirmationPageタグが指定された場合はデフォルトがtrueになる |\n| secure | | | URIをhttpsにするか否か(true=https) |\n| preventPostResubmit | | false | POST再送信防止機能を使用するか否か(true=使用) |\n\nHTMLタグの出力を行わず、ウィンドウスコープに値を出力する。\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n\n## downloadLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## messageタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| messageId | ○ | | メッセージID。 |\n| option0~option9 | | | メッセージフォーマットに使用するインデックスが0~9のオプション引数。最大10個まで指定可能。 |\n| language | | スレッドコンテキストの言語 | メッセージの言語。 |\n| var | | | リクエストスコープに格納する変数名。指定した場合はメッセージを出力せずリクエストスコープに設定する。この場合はHTMLエスケープとHTMLフォーマットを行わない。 |\n| htmlEscape | | true | HTMLエスケープするか否か(true/false)。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。htmlEscape=trueの場合のみ有効。 |", + "s5": "HTMLのinputタグ(type=text)を出力するカスタムタグ(:ref:`WebView_TextTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| readonly | | | XHTMLのreadonly属性 |\n| size | | | XHTMLのsize属性 |\n| maxlength | | | XHTMLのmaxlength属性 |\n| onselect | | | XHTMLのonselect属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autocomplete | | | HTML5のautocomplete属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| placeholder | | | HTML5のplaceholder属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}` 形式で指定 |\n\n**valueFormatのデータタイプ:**\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字にはy(年)・M(月)・d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターンを設定可能。\n - 例: `valueFormat=\"yyyymmdd\"` / `valueFormat=\"yyyymmdd{yyyy/MM/dd}\"`\n > **注意**: 入力画面にもフォーマットした値が出力される。入力された年月日をアクションで取得する場合は :ref:`ExtendedValidation_yyyymmddConvertor` を使用する。textタグとコンバータが連携し、valueFormat属性に指定されたパターンを使用した値変換と入力精査を行う。\n\n- **yyyymm**: 年月フォーマット。使用方法はyyyymmddと同様。\n > **注意**: コンバータには :ref:`ExtendedValidation_yyyymmConvertor` を使用する。\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合は言語に対応する1000の区切り文字を取り除いた後にフォーマットされる。パターンはjava.text.DecimalFormat形式。ThreadContextに設定された言語を使用して出力。区切り文字\"|\"でパターンに直接言語を指定可能。:ref:`WebView_CustomTagConfig` で区切り文字の変更可能。\n - 例: `valueFormat=\"decimal{###,###,###.000}\"` / `valueFormat=\"decimal{###,###,###.000|ja}\"`\n > **注意**: 入力画面にもフォーマットした値が出力される。入力された数値をアクションで取得する場合は数値コンバータ(BigDecimalConvertor、IntegerConvertor、LongConvertor)を使用する。textタグと数値コンバータが連携し、valueFormat属性に指定された言語に対応する値変換と入力精査を行う。\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n\n## paramタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | サブミット時に使用するパラメータの名前 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する |\n\n## writeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n| withHtmlFormat | | true | HTMLフォーマット(改行と半角スペースの変換)をするか否か。HTMLエスケープをする場合のみ有効。 |\n| valueFormat | | | 出力時のフォーマット。`データタイプ{パターン}`形式で指定。 |\n\n**valueFormatのデータタイプ**:\n\n- **yyyymmdd**: 年月日フォーマット。値はyyyyMMdd形式またはパターン形式の文字列。パターン文字はy(年)、M(月)、d(日)のみ指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定可。\n ```\n valueFormat=\"yyyymmdd\"\n valueFormat=\"yyyymmdd{yyyy/MM/dd}\"\n ```\n\n- **yyyymm**: 年月フォーマット。値はyyyyMM形式またはパターン形式の文字列を指定する。使用方法は、yyyymmddと同様。\n\n- **dateTime**: 日時フォーマット(**writeタグのみで使用可能**)。値はjava.util.Date型。パターンはjava.text.SimpleDateFormat構文。ThreadContextのタイムゾーンを使用。区切り文字\"|\"でパターンにタイムゾーンを直接指定可能。:ref:`WebView_CustomTagConfig` でデフォルトパターン設定と区切り文字変更可。\n ```\n valueFormat=\"datetime\"\n valueFormat=\"datetime{|Asia/Tokyo}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss}\"\n valueFormat=\"datetime{yy/MM/dd HH:mm:ss|Asia/Tokyo}\"\n ```\n\n- **decimal**: 10進数フォーマット。値はjava.lang.Number型または数字の文字列。文字列の場合、言語に対応する1000区切り文字を除去後にフォーマット。パターンはjava.text.DecimalFormat構文。ThreadContextの言語を使用。区切り文字\"|\"でパターンに言語を直接指定可能。:ref:`WebView_CustomTagConfig` で区切り文字変更可。\n ```\n valueFormat=\"decimal{###,###,###.000}\"\n valueFormat=\"decimal{###,###,###.000|ja}\"\n ```", "s6": "HTMLのtextareaタグを出力するカスタムタグ(:ref:`WebView_TextareaTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| rows | ○ | | XHTMLのrows属性 |\n| cols | ○ | | XHTMLのcols属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| readonly | | | XHTMLのreadonly属性 |\n| onselect | | | XHTMLのonselect属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| placeholder | | | HTML5のplaceholder属性 |\n| maxlength | | | HTML5のmaxlength属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n\n共通属性: :ref:`WebView_GenericAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| listName | ○ | | 選択項目のリストの属性名 |\n| elementLabelProperty | ○ | | リスト要素からラベルを取得するためのプロパティ名 |\n| elementValueProperty | ○ | | リスト要素から値を取得するためのプロパティ名 |\n| size | | | XHTMLのsize属性 |\n| multiple | | | XHTMLのmultiple属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| tabindex | | | XHTMLのtabindex属性 |\n| onfocus | | | XHTMLのonfocus属性 |\n| onblur | | | XHTMLのonblur属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| elementLabelPattern | | `$LABEL$` | ラベルを整形するためのパターン。プレースホルダ: `$LABEL$`(ラベル)、`$VALUE$`(値)。例: `$VALUE$ - $LABEL$` → `G001 - グループ1` |\n| listFormat | | `br` | リスト表示フォーマット: br / div / span / ul / ol / sp(スペース区切り) |\n| withNoneOption | | `false` | trueの場合、リスト先頭に選択なしオプションを追加 |\n| noneOptionLabel | | `\"\"` | withNoneOptionがtrueの場合のみ有効。選択なしオプションのラベル |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## changeParamNameタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | サブミット時に使用するパラメータの名前 |\n| inputName | ○ | | 変更元となる元画面のinput要素のname属性 |\n\n## prettyPrintタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |", "s7": "HTMLのinputタグ(type=password)を出力するカスタムタグ(:ref:`WebView_PasswordTag`)の属性一覧。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| readonly | | | XHTMLのreadonly属性 |\n| size | | | XHTMLのsize属性 |\n| maxlength | | | XHTMLのmaxlength属性 |\n| onselect | | | XHTMLのonselect属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autocomplete | | | HTML5のautocomplete属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| placeholder | | | HTML5のplaceholder属性 |\n| restoreValue | | false | 入力画面の再表示時に入力データを復元するか否か(true=復元) |\n| replacement | | * | 確認画面用出力時に使用する置換文字 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n\n> **注意**: :ref:`WebView_GenericAttributesTag` のid属性は指定不可。:ref:`WebView_FocusAttributesTag` のaccesskey属性は指定不可。\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| listName | ○ | | 選択項目のリストの属性名 |\n| elementLabelProperty | ○ | | リスト要素からラベルを取得するためのプロパティ名 |\n| elementValueProperty | ○ | | リスト要素から値を取得するためのプロパティ名 |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性。先頭要素のみautofocus属性を出力する |\n| elementLabelPattern | | `$LABEL$` | ラベルを整形するためのパターン。プレースホルダ: `$LABEL$`(ラベル)、`$VALUE$`(値) |\n| listFormat | | `br` | リスト表示フォーマット: br / div / span / ul / ol / sp(スペース区切り) |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## aタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| charset | | | XHTMLのcharset属性 |\n| type | | | XHTMLのtype属性 |\n| name | | | XHTMLのname属性 |\n| href | | | XHTMLのhref属性。:ref:`WebView_SpecifyUri` を参照 |\n| hreflang | | | XHTMLのhreflang属性 |\n| rel | | | XHTMLのrel属性 |\n| rev | | | XHTMLのrev属性 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| target | | | XHTMLのtarget属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n\n## rawWriteタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | 表示対象の値を変数スコープから取得する名前。 |\n\n### setタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| var | ○ | | リクエストスコープに格納する変数名。 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する。 |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する。 |\n| scope | | リクエストスコープ | 変数を格納するスコープ。page(ページスコープ)またはrequest(リクエストスコープ)。 |\n| bySingleValue | | true | name属性に対応する値を単一値として取得するか否か。 |", - "s8": "HTMLのinputタグ(type=radio)を出力するカスタムタグ(:ref:`WebView_RadioButtonTag`)の属性一覧。radiobuttonsタグで表示できないレイアウト時に使用する。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| value | ○ | | XHTMLのvalue属性 |\n| label | ○ | | ラベル |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n\n> **注意**: :ref:`WebView_GenericAttributesTag` のid属性は指定不可。:ref:`WebView_FocusAttributesTag` のaccesskey属性は指定不可。\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| listName | ○ | | 選択項目のリストの属性名 |\n| elementLabelProperty | ○ | | リスト要素からラベルを取得するためのプロパティ名 |\n| elementValueProperty | ○ | | リスト要素から値を取得するためのプロパティ名 |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性。先頭要素のみautofocus属性を出力する |\n| elementLabelPattern | | `$LABEL$` | ラベルを整形するためのパターン。プレースホルダ: `$LABEL$`(ラベル)、`$VALUE$`(値) |\n| listFormat | | `br` | リスト表示フォーマット: br / div / span / ul / ol / sp(スペース区切り) |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## imgタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| src | ○ | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| alt | ○ | | XHTMLのalt属性 |\n| name | | | XHTMLのname属性 |\n| longdesc | | | XHTMLのlongdesc属性 |\n| height | | | XHTMLのheight属性 |\n| width | | | XHTMLのwidth属性 |\n| usemap | | | XHTMLのusemap属性 |\n| ismap | | | XHTMLのismap属性 |\n| align | | | XHTMLのalign属性 |\n| border | | | XHTMLのborder属性 |\n| hspace | | | XHTMLのhspace属性 |\n| vspace | | | XHTMLのvspace属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n\n## includeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| path | ○ | | インクルード先のパス。 |", + "s8": "HTMLのinputタグ(type=radio)を出力するカスタムタグ(:ref:`WebView_RadioButtonTag`)の属性一覧。radiobuttonsタグで表示できないレイアウト時に使用する。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| value | ○ | | XHTMLのvalue属性 |\n| label | ○ | | ラベル |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n\n> **注意**: :ref:`WebView_GenericAttributesTag` のid属性は指定不可。:ref:`WebView_FocusAttributesTag` のaccesskey属性は指定不可。\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | XHTMLのname属性 |\n| listName | ○ | | 選択項目のリストの属性名 |\n| elementLabelProperty | ○ | | リスト要素からラベルを取得するためのプロパティ名 |\n| elementValueProperty | ○ | | リスト要素から値を取得するためのプロパティ名 |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性。先頭要素のみautofocus属性を出力する |\n| elementLabelPattern | | `$LABEL$` | ラベルを整形するためのパターン。プレースホルダ: `$LABEL$`(ラベル)、`$VALUE$`(値) |\n| listFormat | | `br` | リスト表示フォーマット: br / div / span / ul / ol / sp(スペース区切り) |\n| errorCss | | `nablarch_error` | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |\n\n## imgタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| src | ○ | | XHTMLのcharsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| alt | ○ | | XHTMLのalt属性 |\n| name | | | XHTMLのname属性 |\n| longdesc | | | XHTMLのlongdesc属性 |\n| height | | | XHTMLのheight属性 |\n| width | | | XHTMLのwidth属性 |\n| usemap | | | XHTMLのusemap属性 |\n| ismap | | | XHTMLのismap属性 |\n| align | | | XHTMLのalign属性 |\n| border | | | XHTMLのborder属性 |\n| hspace | | | XHTMLのhspace属性 |\n| vspace | | | XHTMLのvspace属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n\n## includeタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| path | ○ | | インクルード先のパス。 |", "s9": "HTMLのinputタグ(type=checkbox)を出力するカスタムタグ(:ref:`WebView_CheckboxTag`)の属性一覧。checkboxesタグで表示できないレイアウト時に使用する。\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | 共通属性参照 |\n| :ref:`WebView_FocusAttributesTag` | | | フォーカス属性参照 |\n| name | ○ | | XHTMLのname属性 |\n| value | | 1 | チェックありの場合に使用する値 |\n| autofocus | | | HTML5のautofocus属性 |\n| label | | | チェックありの場合に使用するラベル(入力画面で表示) |\n| useOffValue | | true | チェックなしの値設定を使用するか否か |\n| offLabel | | | チェックなしの場合に使用するラベル |\n| offValue | | 0 | チェックなしの場合に使用する値 |\n| disabled | | | XHTMLのdisabled属性 |\n| onchange | | | XHTMLのonchange属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス(カンマ区切りで複数指定可) |\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| type | ○ | | XHTMLのtype属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| disabled | | | XHTMLのdisabled属性 |\n| value | | | XHTMLのvalue属性 |\n| src | | | XHTMLのsrc属性 |\n| alt | | | XHTMLのalt属性 |\n| usemap | | | XHTMLのusemap属性 |\n| align | | | XHTMLのalign属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | `true` | 二重サブミットを許可するか否か(true: 許可 / false: 不許可) |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## linkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| charset | | | XHTMLのcharset属性 |\n| href | | | XHTMLのhref属性。:ref:`WebView_SpecifyUri` を参照 |\n| hreflang | | | XHTMLのhreflang属性 |\n| type | | | XHTMLのtype属性 |\n| rel | | | XHTMLのrel属性 |\n| rev | | | XHTMLのrev属性 |\n| media | | | XHTMLのmedia属性 |\n| target | | | XHTMLのtarget属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n\n## includeParamタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | インクルード時に使用するパラメータの名前。 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する。 |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する。 |", "s10": "複数のHTMLのinputタグ(type=checkbox)を出力するカスタムタグ(:ref:`WebView_CompositeKeyCheckboxTag`)。checkboxesタグで実現できない複合キーを使用する際に使用する。入力データ復元およびHTMLエスケープをサポートする。\n\n共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| value | | | XHTMLのvalue属性 |\n| type | | | XHTMLのtype属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | `true` | 二重サブミットを許可するか否か(true: 許可 / false: 不許可) |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## scriptタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| type | ○ | | XHTMLのtype属性 |\n| id | | | XHTMLのid属性 |\n| charset | | | XHTMLのcharset属性 |\n| language | | | XHTMLのlanguage属性 |\n| src | | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| defer | | | XHTMLのdefer属性 |\n| xmlSpace | | | XHTMLのxml:space属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n\n## confirmationPageタグ\n\n| 属性 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| path | | | フォワード先(入力画面)のパス。 |", - "s11": "共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| allowDoubleSubmission | | `true` | 二重サブミットを許可するか否か(true: 許可 / false: 不許可) |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## errorsタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| cssClass | | nablarch_errors | リスト表示においてulタグに使用するCSSクラス名 |\n| infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 |\n| warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) |\n\n## ignoreConfirmationタグ\n\n属性なし。", + "s11": "共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| allowDoubleSubmission | | `true` | 二重サブミットを許可するか否か(true: 許可 / false: 不許可) |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## errorsタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| cssClass | | nablarch_errors | リスト表示においてulタグに使用するCSSクラス名 |\n| infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 |\n| warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(入力項目に対応しないメッセージのみを表示。ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) |\n\n## ignoreConfirmationタグ\n\n属性なし。", "s12": "共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| type | ○ | | XHTMLのtype属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| disabled | | | XHTMLのdisabled属性 |\n| value | | | XHTMLのvalue属性 |\n| src | | | XHTMLのsrc属性 |\n| alt | | | XHTMLのalt属性 |\n| usemap | | | XHTMLのusemap属性 |\n| align | | | XHTMLのalign属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| popupWindowName | | | ポップアップのウィンドウ名(window.open第2引数) |\n| popupOption | | | ポップアップのオプション情報(window.open第3引数) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## errorタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | ○ | | エラーメッセージを表示する入力項目のname属性 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| messageFormat | | div | メッセージ表示時に使用するフォーマット。div(divタグ)/ span(spanタグ) |\n\n## forInputPageタグ\n\n属性なし。", "s13": "共通属性: :ref:`WebView_GenericAttributesTag`, :ref:`WebView_FocusAttributesTag`\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI(:ref:`WebView_SpecifyUri` 参照) |\n| value | | | XHTMLのvalue属性 |\n| type | | | XHTMLのtype属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| secure | | | URIをhttpsにするか否か(true: https / false: http) |\n| popupWindowName | | | ポップアップのウィンドウ名(window.open第2引数) |\n| popupOption | | | ポップアップのオプション情報(window.open第3引数) |\n| displayMethod | | | 認可判定・開閉局判定に基づく表示制御: NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |\n\n## noCacheタグ\n\n属性なし。\n\n## forConfirmationPageタグ\n\n属性なし。", "s14": "## codeSelectタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| name | ○ | | XHTMLのname属性 |\n| codeId | ○ | | コードID |\n| size | | | XHTMLのsize属性 |\n| multiple | | | XHTMLのmultiple属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| tabindex | | | XHTMLのtabindex属性 |\n| onfocus | | | XHTMLのonfocus属性 |\n| onblur | | | XHTMLのonblur属性 |\n| onchange | | | XHTMLのonchange属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| pattern | | 指定なし | 使用するパターンのカラム名 |\n| optionColumnName | | | 取得するオプション名称のカラム名 |\n| labelPattern | | $NAME$ | ラベルを整形するパターン。プレースホルダ: $NAME$(コード名称)/ $SHORTNAME$(略称)/ $OPTIONALNAME$(オプション名称、使用時はoptionColumnName必須)/ $VALUE$(コード値) |\n| listFormat | | br | リスト表示時のフォーマット。br / div / span / ul / ol / sp(スペース区切り) |\n| withNoneOption | | false | リスト先頭に選択なしのオプションを追加するか否か |\n| noneOptionLabel | | \"\" | withNoneOptionがtrueの場合に使用する選択なしオプションのラベル |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| nameAlias | | | name属性のエイリアス。複数指定する場合はカンマ区切り |", diff --git a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-thread_context.json b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-thread_context.json index 4be82dcdb..a7eb8a5f7 100644 --- a/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-thread_context.json +++ b/.claude/skills/nabledge-1.4/knowledge/component/libraries/libraries-thread_context.json @@ -16,6 +16,7 @@ "LanguageAttributeInHttpCookie", "LanguageAttributeInHttpSession", "LanguageAttributeInHttpUtil", + "I18nHandler", "defaultLanguage", "supportedLanguages", "cookieName", @@ -40,6 +41,7 @@ "TimeZoneAttributeInHttpCookie", "TimeZoneAttributeInHttpSession", "TimeZoneAttributeInHttpUtil", + "I18nHandler", "defaultTimeZone", "supportedTimeZones", "cookieName", @@ -101,24 +103,17 @@ }, { "id": "s6", - "title": "RequestIdAttributeの設定", + "title": "RequestIdAttribute / InternalRequestIdAttributeの設定", "hints": [ "RequestIdAttribute", - "リクエストID設定", - "設定プロパティ" - ] - }, - { - "id": "s7", - "title": "InternalRequestIdAttributeの設定", - "hints": [ "InternalRequestIdAttribute", + "リクエストID設定", "内部リクエストID設定", "設定プロパティ" ] }, { - "id": "s8", + "id": "s7", "title": "使用方法", "hints": [ "ThreadContextHandler", @@ -128,13 +123,15 @@ "LanguageAttribute", "TimeZoneAttribute", "ExecutionIdAttribute", + "ForwardingHandler", + "FwHeaderReader", "言語切り替え", "タイムゾーン切り替え", "国際化" ] }, { - "id": "s9", + "id": "s8", "title": "LanguageAttribute選択基準", "hints": [ "LanguageAttribute", @@ -149,6 +146,21 @@ "ログイン時言語取得" ] }, + { + "id": "s9", + "title": "TimeZoneAttribute選択基準", + "hints": [ + "TimeZoneAttribute", + "TimeZoneAttributeInHttpCookie", + "TimeZoneAttributeInHttpSession", + "TimeZoneAttributeInHttpSupport", + "TimeZoneAttributeInHttpUtil", + "タイムゾーン選択", + "国際化", + "タイムゾーン切り替え", + "ログイン時タイムゾーン取得" + ] + }, { "id": "s10", "title": "TimeZoneAttribute選択基準", @@ -181,15 +193,15 @@ } ], "sections": { - "s1": "スレッドコンテキストはスレッドローカル変数上の変数スコープ。ユーザIDやリクエストIDなど、実行コンテキスト経由での引き回しが難しいパラメータを格納する。\n\n- 多くの値は[../handler/ThreadContextHandler](../handlers/handlers-ThreadContextHandler.json)によって設定される\n- 子スレッドを起動した場合、親スレッドの値が暗黙的に引き継がれる\n- 子スレッドで値を変更する場合は、明示的に子スレッドで値を設定すること\n\n![クラス図](assets/libraries-thread_context/thread_context.jpg)\n\n## LanguageAttribute\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n\n## HttpLanguageAttribute\n\n**クラス**: `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute`\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n\n## LanguageAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n| cookieName | String | | nablarch_language | 言語を保持するクッキー名 |\n| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 |\n\n`LanguageAttributeInHttpUtil.keepLanguage(request, context, language)`を呼び出すと、クッキーとスレッドコンテキストの両方に言語が設定される。指定された言語がサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramで言語選択リンク):\n\n```jsp\n\n 英語\n \n\n\n 日本語\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String language = getLanguage(request, \"user.language\");\n if (StringUtil.hasValue(language)) {\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## LanguageAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultLanguage | String | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | String | ○ | | サポート対象言語 |\n| sessionKey | String | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づく言語をHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String language = // DBから取得\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", - "s2": "| クラス・インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.handler.threadcontext.ThreadContextAttribute` | スレッドコンテキストに属性を設定するインタフェース。実装クラスはコンテキストから属性値を取得する責務を持つ。 |\n\n## TimeZoneAttribute\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n\n## TimeZoneAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | String | ○ | | サポート対象タイムゾーン |\n| cookieName | String | | nablarch_timeZone | タイムゾーンを保持するクッキー名 |\n| cookiePath | String | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | String | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | int | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | boolean | | false(secure属性なし) | クッキーのsecure属性 |\n\n`TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone)`を呼び出すと、クッキーとスレッドコンテキストの両方にタイムゾーンが設定される。指定されたタイムゾーンがサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramでタイムゾーン選択リンク):\n\n```jsp\n\n ニューヨーク\n \n\n\n 東京\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String timeZone = getTimeZone(request, \"user.timeZone\");\n if (StringUtil.hasValue(timeZone)) {\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## TimeZoneAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|---|\n| defaultTimeZone | String | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | String | ○ | | サポート対象タイムゾーン |\n| sessionKey | String | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づくタイムゾーンをHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String timeZone = // DBから取得\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", + "s1": "スレッドコンテキストはスレッドローカル変数上の変数スコープ。ユーザIDやリクエストIDなど、実行コンテキスト経由での引き回しが難しいパラメータを格納する。\n\n- 多くの値は[../handler/ThreadContextHandler](../handlers/handlers-ThreadContextHandler.json)によって設定される\n- それ以外ハンドラでも、スレッドコンテキストに変数を設定するものが存在する\n- 業務アクションハンドラから任意の変数を設定することも可能\n- 子スレッドを起動した場合、親スレッドの値が暗黙的に引き継がれる\n- 子スレッドで値を変更する場合は、明示的に子スレッドで値を設定すること\n\n![クラス図](assets/libraries-thread_context/thread_context.jpg)\n\n## LanguageAttribute\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n\n## HttpLanguageAttribute\n\n**クラス**: `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute`\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n\n## LanguageAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n| cookieName | | nablarch_language | 言語を保持するクッキー名 |\n| cookiePath | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | | (secure属性なし) | クッキーのsecure属性 |\n\n`LanguageAttributeInHttpUtil.keepLanguage(request, context, language)`を呼び出すと、クッキーとスレッドコンテキストの両方に言語が設定される。指定された言語がサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramで言語選択リンク):\n\n```jsp\n\n 英語\n \n\n\n 日本語\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String language = getLanguage(request, \"user.language\");\n if (StringUtil.hasValue(language)) {\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## LanguageAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession`\n\n> **重要**: `LanguageAttributeInHttpUtil`を使用するため、コンポーネント名を`languageAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultLanguage | | システムデフォルトロケール | デフォルト言語 |\n| supportedLanguages | ○ | | サポート対象言語 |\n| sessionKey | | LanguageAttributeのgetKeyメソッドの戻り値 | 言語が格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づく言語をHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String language = // DBから取得\n LanguageAttributeInHttpUtil.keepLanguage(request, context, language);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", + "s2": "| クラス・インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.handler.threadcontext.ThreadContextAttribute` | スレッドコンテキストに属性を設定するインタフェース。実装クラスはコンテキストから属性値を取得する責務を持つ。 |\n\n## TimeZoneAttribute\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n\n## TimeZoneAttributeInHttpCookie\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | ○ | | サポート対象タイムゾーン |\n| cookieName | | nablarch_timeZone | タイムゾーンを保持するクッキー名 |\n| cookiePath | | コンテキストパス | クッキーのURIパス階層 |\n| cookieDomain | | リクエストURLのドメイン名 | クッキーのドメイン階層 |\n| cookieMaxAge | | ブラウザ終了まで | クッキーの最長存続期間(秒) |\n| cookieSecure | | (secure属性なし) | クッキーのsecure属性 |\n\n`TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone)`を呼び出すと、クッキーとスレッドコンテキストの両方にタイムゾーンが設定される。指定されたタイムゾーンがサポート対象外の場合は設定されない。\n\nJSP実装例(n:submitLinkとn:paramでタイムゾーン選択リンク):\n\n```jsp\n\n ニューヨーク\n \n\n\n 東京\n \n\n```\n\nハンドラ実装例:\n\n```java\npublic class I18nHandler implements HttpRequestHandler {\n public HttpResponse handle(HttpRequest request, ExecutionContext context) {\n String timeZone = getTimeZone(request, \"user.timeZone\");\n if (StringUtil.hasValue(timeZone)) {\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n }\n return context.handleNext(request);\n }\n}\n```\n\n> **注意**: I18nHandlerはアプリケーション共通ハンドラとして使用を想定しているため、`HttpRequest`の`getParamMap`/`getParam`メソッドで直接リクエストパラメータにアクセスしている。業務機能をアクションで実装する場合はバリデーション機能でリクエストパラメータを取得すること。\n\n## TimeZoneAttributeInHttpSession\n\n**クラス**: `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession`\n\n> **重要**: `TimeZoneAttributeInHttpUtil`を使用するため、コンポーネント名を`timeZoneAttribute`にする必要がある。\n\n```xml\n\n \n \n\n```\n\n| プロパティ名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| defaultTimeZone | | システムデフォルトタイムゾーン | デフォルトタイムゾーン |\n| supportedTimeZones | ○ | | サポート対象タイムゾーン |\n| sessionKey | | TimeZoneAttributeのgetKeyメソッドの戻り値 | タイムゾーンが格納されるセッション上のキー名 |\n\nログイン処理でユーザに紐づくタイムゾーンをHTTPセッションに設定する実装例:\n\n```java\npublic HttpResponse doLOGIN00101(HttpRequest request, ExecutionContext context) {\n String timeZone = // DBから取得\n TimeZoneAttributeInHttpUtil.keepTimeZone(request, context, timeZone);\n return new HttpResponse(\"/MENU00101.jsp\");\n}\n```", "s3": "## コアクラス\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.handler.threadcontext.ThreadContextHandler` | スレッドコンテキストを初期化するハンドラ |\n| `nablarch.common.handler.threadcontext.RequestIdAttribute` | [リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)をスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.InternalRequestIdAttribute` | [内部リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)をリクエストIDと同じ値に初期設定する |\n| `nablarch.common.handler.threadcontext.UserIdAttribute` | ログインユーザのユーザIDをスレッドコンテキストに設定するThreadContextAttribute。未ログイン時は未認証ユーザIDを設定 |\n| `nablarch.common.handler.threadcontext.LanguageAttribute` | 言語をスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.TimeZoneAttribute` | タイムゾーンをスレッドコンテキストに設定するThreadContextAttribute |\n| `nablarch.common.handler.threadcontext.ExecutionIdAttribute` | [実行時ID](libraries-01_Log.json)をスレッドコンテキストに設定するThreadContextAttribute |\n\n## LanguageAttributeのサブクラスとユーティリティ\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.web.handler.threadcontext.HttpLanguageAttribute` | HTTPヘッダ(Accept-Language)から言語を取得するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSupport` | HTTP上で言語の選択と保持を行うThreadContextAttributeの実装をサポートするクラス |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpCookie` | クッキーを使用して言語を保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpSession` | HTTPセッションを使用して言語を保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.LanguageAttributeInHttpUtil` | HTTP上で選択された言語を保持する処理を提供するユーティリティクラス |\n\n## TimeZoneAttributeのサブクラスとユーティリティ\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSupport` | HTTP上で選択されたタイムゾーンの保持を行うThreadContextAttributeの実装をサポートするクラス |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpCookie` | クッキーを使用してタイムゾーンを保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpSession` | HTTPセッションを使用してタイムゾーンを保持するThreadContextAttribute |\n| `nablarch.common.web.handler.threadcontext.TimeZoneAttributeInHttpUtil` | HTTP上で選択されたタイムゾーンを保持する処理を提供するユーティリティクラス |\n\nExecutionIdAttributeには設定値は存在しない。", "s4": "| プロパティ名 | 設定内容 |\n|---|---|\n| attributes | ThreadContextAttributeインタフェースを実装したクラスのリストを設定する |", "s5": "| プロパティ名 | 設定内容 |\n|---|---|\n| sessionKey | セッションからユーザIDを取得する際のキーを設定する。設定しなかった場合、\"USER_ID\"がキーとして使用される |\n| anonymousId | 未ログインユーザに対して設定するユーザIDを設定する。設定しなかった場合、未ログインユーザのユーザIDは設定されない |", - "s6": "RequestIdAttributeには設定値は存在しない。", - "s7": "InternalRequestIdAttributeには設定値は存在しない。", - "s8": "ThreadContextHandlerは、リクエスト毎にスレッドコンテキストの初期化を行う。実際にスレッドコンテキストに設定する値を取得する責務は、ThreadContextAttributeインタフェース実装クラスが持つ。\n\n## フレームワークが提供するThreadContextAttribute実装クラス\n\n- [リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)\n- [内部リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)\n- ユーザID\n- 言語\n- タイムゾーン\n- [実行時ID](libraries-01_Log.json)\n\n## ThreadContextHandler以外での属性更新\n\n| 属性 | 更新状況 |\n|---|---|\n| [リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json) | [../architectural_pattern/messaging](../../processing-pattern/mom-messaging/mom-messaging-messaging.json) のみ、[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json) によって更新 |\n| [内部リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json) | Web GUIでは内部フォワード時に[../handler/ForwardingHandler](../handlers/handlers-ForwardingHandler.json)で更新。メッセージングでは[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json)で更新 |\n| ユーザID | [../architectural_pattern/messaging](../../processing-pattern/mom-messaging/mom-messaging-messaging.json) のみ、[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json) によって更新 |\n\n## 各属性クラスの仕様\n\n**RequestIdAttribute**: URLの最後の\"/\"から\".\"の間の文字列をリクエストIDとする。\n\n**InternalRequestIdAttribute**: リクエストIDと同じ値に初期設定する。\n\n**UserIdAttribute**: HttpセッションからユーザIDを取得してスレッドコンテキストに設定する。取得できない場合は未ログインを示す特別なユーザIDを設定する。認証処理ではセッションにユーザIDを設定しておく必要がある。\n\n> **注意**: HttpセッションからユーザIDを取得するキーと未ログインユーザIDはプロパティで変更可能。\n\n**ExecutionIdAttribute**: 実行時IDをスレッドコンテキストに設定する。詳細は[execution_id](libraries-01_Log.json)参照。", - "s9": "LanguageAttributeクラスは、スレッドコンテキストに設定する言語を取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## LanguageAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| LanguageAttribute | リポジトリの設定で指定された言語をスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトロケールが使用される |\n| HttpLanguageAttribute | HTTPヘッダ(Accept-Language)から取得した言語をスレッドコンテキストに設定する。サポート対象の言語が取得できない場合は親クラスのLanguageAttributeに委譲 |\n| LanguageAttributeInHttpCookie | クッキーを使用した言語の保持を行う。サポート対象の言語が取得できない場合は親クラスのHttpLanguageAttributeに委譲 |\n| LanguageAttributeInHttpSession | HTTPセッションを使用した言語の保持を行う。言語の保持にHTTPセッションを使用することを除き、具体的な処理はLanguageAttributeInHttpCookieと同じ |\n| LanguageAttributeInHttpUtil | LanguageAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択した言語を保持する処理(言語選択処理やログイン処理でのクッキー/HTTPセッションへの言語設定)を提供するユーティリティクラス。リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | 言語の選択 | 言語の保存 | 説明 |\n|---|---|---|---|\n| LanguageAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。言語は常に固定となる。アプリ実装不要 |\n| HttpLanguageAttribute | ブラウザの言語設定 | ブラウザの言語設定 | ブラウザ設定に応じて切り替え。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。アプリ実装不要 |\n| LanguageAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリが言語選択画面を提供。ログイン前でも有効。ブラウザ単位で保持。選択言語をクッキーに設定する処理はLanguageAttributeInHttpUtilが提供 |\n| LanguageAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリが言語選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じ言語が適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づく言語の取得処理(HTTPセッションへの言語設定はLanguageAttributeInHttpUtilが提供)、②ユーザに言語を選択させる画面処理(選択言語のHTTPセッション設定はLanguageAttributeInHttpUtilが提供)、③選択された言語をユーザに紐付けてデータベースに保存する処理 |\n\nLanguageAttributeInHttpUtilを使用する場合、リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録すること。", + "s6": "RequestIdAttributeには設定値は存在しない。\n\nInternalRequestIdAttributeには設定値は存在しない。", + "s7": "ThreadContextHandlerは、リクエスト毎にスレッドコンテキストの初期化を行う。実際にスレッドコンテキストに設定する値を取得する責務は、ThreadContextAttributeインタフェース実装クラスが持つ。\n\n## フレームワークが提供するThreadContextAttribute実装クラス\n\n- [リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)\n- [内部リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json)\n- ユーザID\n- 言語\n- タイムゾーン\n- [実行時ID](libraries-01_Log.json)\n\n## ThreadContextHandler以外での属性更新\n\n| 属性 | 更新状況 |\n|---|---|\n| [リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json) | [../architectural_pattern/messaging](../../processing-pattern/mom-messaging/mom-messaging-messaging.json) のみ、[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json) によって更新 |\n| [内部リクエストID](../../about/about-nablarch/about-nablarch-concept-architectural_pattern.json) | Web GUIでは内部フォワード時に[../handler/ForwardingHandler](../handlers/handlers-ForwardingHandler.json)で更新。メッセージングでは[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json)で更新 |\n| ユーザID | [../architectural_pattern/messaging](../../processing-pattern/mom-messaging/mom-messaging-messaging.json) のみ、[../reader/FwHeaderReader](../readers/readers-FwHeaderReader.json) によって更新 |\n\n## 各属性クラスの仕様\n\n**RequestIdAttribute**: URLの最後の\"/\"から\".\"の間の文字列をリクエストIDとする。\n\n**InternalRequestIdAttribute**: リクエストIDと同じ値に初期設定する。\n\n**UserIdAttribute**: HttpセッションからユーザIDを取得してスレッドコンテキストに設定する。取得できない場合は未ログインを示す特別なユーザIDを設定する。認証処理ではセッションにユーザIDを設定しておく必要がある。\n\n> **注意**: HttpセッションからユーザIDを取得するキーと未ログインユーザIDはプロパティで変更可能。\n\n**ExecutionIdAttribute**: 実行時IDをスレッドコンテキストに設定する。詳細は[execution_id](libraries-01_Log.json)参照。", + "s8": "LanguageAttributeクラスは、スレッドコンテキストに設定する言語を取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## LanguageAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| LanguageAttribute | リポジトリの設定で指定された言語をスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトロケールが使用される |\n| HttpLanguageAttribute | HTTPヘッダ(Accept-Language)から取得した言語をスレッドコンテキストに設定する。サポート対象の言語が取得できない場合は親クラスのLanguageAttributeに委譲 |\n| LanguageAttributeInHttpCookie | クッキーを使用した言語の保持を行う。サポート対象の言語が取得できない場合は親クラスのHttpLanguageAttributeに委譲 |\n| LanguageAttributeInHttpSession | HTTPセッションを使用した言語の保持を行う。言語の保持にHTTPセッションを使用することを除き、具体的な処理はLanguageAttributeInHttpCookieと同じ |\n| LanguageAttributeInHttpUtil | LanguageAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択した言語を保持する処理(言語選択処理やログイン処理でのクッキー/HTTPセッションへの言語設定)を提供するユーティリティクラス。リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | 言語の選択 | 言語の保存 | 説明 |\n|---|---|---|---|\n| LanguageAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。言語は常に固定となる。アプリ実装不要 |\n| HttpLanguageAttribute | ブラウザの言語設定 | ブラウザの言語設定 | ブラウザ設定に応じて切り替え。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。アプリ実装不要 |\n| LanguageAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリが言語選択画面を提供。ログイン前でも有効。ブラウザ単位で保持。選択言語をクッキーに設定する処理はLanguageAttributeInHttpUtilが提供 |\n| LanguageAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリが言語選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じ言語が適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づく言語の取得処理(HTTPセッションへの言語設定はLanguageAttributeInHttpUtilが提供)、②ユーザに言語を選択させる画面処理(選択言語のHTTPセッション設定はLanguageAttributeInHttpUtilが提供)、③選択された言語をユーザに紐付けてデータベースに保存する処理 |\n\nLanguageAttributeInHttpUtilを使用する場合、リポジトリにLanguageAttributeInHttpSupportのサブクラスを\"languageAttribute\"という名前で登録すること。", + "s9": "TimeZoneAttributeクラスは、スレッドコンテキストに設定するタイムゾーンを取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## TimeZoneAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| TimeZoneAttribute | リポジトリの設定で指定されたタイムゾーンをスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトタイムゾーンが使用される |\n| TimeZoneAttributeInHttpCookie | クッキーを使用したタイムゾーンの保持を行う。サポート対象のタイムゾーンが取得できない場合は親クラスのTimeZoneAttributeに委譲 |\n| TimeZoneAttributeInHttpSession | HTTPセッションを使用したタイムゾーンの保持を行う。タイムゾーンの保持にHTTPセッションを使用することを除き、具体的な処理はTimeZoneAttributeInHttpCookieと同じ |\n| TimeZoneAttributeInHttpUtil | TimeZoneAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択したタイムゾーンを保持する処理(タイムゾーン選択処理やログイン処理でのクッキー/HTTPセッションへのタイムゾーン設定)を提供するユーティリティクラス。リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | タイムゾーンの選択 | タイムゾーンの保存 | 説明 |\n|---|---|---|---|\n| TimeZoneAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。タイムゾーンは常に固定となる。アプリ実装不要 |\n| TimeZoneAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリがタイムゾーン選択画面を提供。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。選択タイムゾーンをクッキーに設定する処理はTimeZoneAttributeInHttpUtilが提供 |\n| TimeZoneAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリがタイムゾーン選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じタイムゾーンが適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づくタイムゾーンの取得処理(HTTPセッションへのタイムゾーン設定はTimeZoneAttributeInHttpUtilが提供)、②ユーザにタイムゾーンを選択させる画面処理(選択タイムゾーンのHTTPセッション設定はTimeZoneAttributeInHttpUtilが提供)、③選択されたタイムゾーンをユーザに紐付けてデータベースに保存する処理 |\n\nTimeZoneAttributeInHttpUtilを使用する場合、リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録すること。", "s10": "TimeZoneAttributeクラスは、スレッドコンテキストに設定するタイムゾーンを取得する責務を持つ。国際化を行うアプリケーション向けにサブクラスを提供する。\n\n## TimeZoneAttributeおよびサブクラスの説明\n\n| クラス名 | 説明 |\n|---|---|\n| TimeZoneAttribute | リポジトリの設定で指定されたタイムゾーンをスレッドコンテキストに設定する。明示的に指定しなかった場合、システムのデフォルトタイムゾーンが使用される |\n| TimeZoneAttributeInHttpCookie | クッキーを使用したタイムゾーンの保持を行う。サポート対象のタイムゾーンが取得できない場合は親クラスのTimeZoneAttributeに委譲 |\n| TimeZoneAttributeInHttpSession | HTTPセッションを使用したタイムゾーンの保持を行う。タイムゾーンの保持にHTTPセッションを使用することを除き、具体的な処理はTimeZoneAttributeInHttpCookieと同じ |\n| TimeZoneAttributeInHttpUtil | TimeZoneAttributeInHttpSupportのサブクラスを使用するアプリケーション向けに、ユーザが選択したタイムゾーンを保持する処理(タイムゾーン選択処理やログイン処理でのクッキー/HTTPセッションへのタイムゾーン設定)を提供するユーティリティクラス。リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録する必要がある |\n\n## 選択基準\n\n| クラス名 | タイムゾーンの選択 | タイムゾーンの保存 | 説明 |\n|---|---|---|---|\n| TimeZoneAttribute | なし | なし | 国際化を行わないアプリケーションで使用する。タイムゾーンは常に固定となる。アプリ実装不要 |\n| TimeZoneAttributeInHttpCookie | 選択画面やリンクなど | クッキー | アプリがタイムゾーン選択画面を提供。ログイン前でも有効。ブラウザ(IE、Firefoxなど)単位で保持。選択タイムゾーンをクッキーに設定する処理はTimeZoneAttributeInHttpUtilが提供 |\n| TimeZoneAttributeInHttpSession | 選択画面やリンクなど | データベース | アプリがタイムゾーン選択画面を提供。ログイン後のみ有効。ユーザ単位で保持(複数マシンからの利用でも同じタイムゾーンが適用)。アプリでは以下の実装が必要: ①ログイン時にユーザに紐づくタイムゾーンの取得処理(HTTPセッションへのタイムゾーン設定はTimeZoneAttributeInHttpUtilが提供)、②ユーザにタイムゾーンを選択させる画面処理(選択タイムゾーンのHTTPセッション設定はTimeZoneAttributeInHttpUtilが提供)、③選択されたタイムゾーンをユーザに紐付けてデータベースに保存する処理 |\n\nTimeZoneAttributeInHttpUtilを使用する場合、リポジトリにTimeZoneAttributeInHttpSupportのサブクラスを\"timeZoneAttribute\"という名前で登録すること。", "s11": "基本的な属性を設定する場合の設定記述例:\n\n```xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```" } diff --git a/.claude/skills/nabledge-1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator.json b/.claude/skills/nabledge-1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator.json index b5b4f0f6e..f6fd8cf92 100644 --- a/.claude/skills/nabledge-1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator.json +++ b/.claude/skills/nabledge-1.4/knowledge/development-tools/toolbox/toolbox-01_DefInfoGenerator.json @@ -253,7 +253,9 @@ "エスケープ処理", "JSON出力仕様", "Apache POI", - "キャメル変換" + "キャメル変換", + "数値型セル書式", + ".0付与" ] }, { @@ -281,7 +283,7 @@ "s9": "## 入力ファイル読み取り設定\n\n設計書のレイアウトに以下の変更が生じた場合、コンポーネント定義ファイルを修正する。\n\n| 変更内容 | 修正対象プロパティ |\n|---|---|\n| 列の追加(読み取り対象カラムの位置がずれた場合) | `indexNamePairs` |\n| 行の追加(読み取り開始行がずれた場合) | `startRowIndex` |\n\n> **注意**: `excludedSheets` プロパティには取込対象外のシートを指定する。メッセージ設計書に言語シートを追加するなど、取込が不要なシートを追加した場合、`excludedSheets` プロパティの指定を追加すること。\n\n**ドメイン定義、精査処理定義、データタイプ定義**を読み取る設定は、メッセージ設計書(`DefinitionFileLoader`)と設定項目が同じであるため、それぞれのコンポーネント定義ファイルではメッセージ設計書の読込設定と同じクラスおよびプロパティ構成を使用する。\n\nコード設計情報の出力フォーマット。コード定義情報は、コードIDに対応する各セルの値を \"|\" で結合して出力する。キーに含まれる \".\" 以下の文字列(codeValue、sortOrderなど)は固定。\n\n```javascript\ndefine(function(){ return {\"\": \"\"\n\n// コードID情報\n, \"コードID\": [\"コード名称\", \"説明\"]\n\n// コード定義情報\n, \"コードID.codeValue\": [\"コード値\"]\n, \"コードID.sortOrder\": [\"ソート順\"]\n, \"コードID.codeValueName\": [\"名称\"]\n, \"コードID.SHORT_NAME\": [\"略称\"]\n, \"コードID.OPTIONAL_NAME01\": [\"オプション名称1\"]\n// OPTIONAL_NAME02〜09は省略\n, \"コードID.OPTIONAL_NAME10\": [\"オプション名称10\"]\n, \"コードID.PATTERN01\": [\"パターン1\"]\n// PATTERN02〜19は省略\n, \"コードID.PATTERN20\": [\"パターン20\"]\n\n};});\n```\n\n> **注意**: セルの書式が数値型の場合、整数を指定しても自動的に \".0\" が付与される。整数をそのまま取得したい場合は、セルの書式を標準または文字列にすること。", "s10": "## メッセージ設計書の読込設定\n\n```xml\n\n \n \n \n \n \n \n 表紙\n 変更履歴\n 目次\n en\n ch\n \n \n\n\n\n \n \n \n \n \n \n \n\n```\n\n外部インターフェース設計情報の出力フォーマット。階層構造型とそれ以外の設計書、どちらが入力の場合も同一フォーマットで出力する。入力設計書に存在しない項目は空文字で出力。\n\n親要素名の設定ルール:\n- 非階層構造型レコード: レコードタイプ名\n- 階層構造型レコード: オブジェクト定義行(項目IDが `[]` で囲まれた行)の項目IDから `[` と `]` を除去した値\n\n```javascript\ndefine(function(){ return {\"\": \"\"\n\n// 外部インターフェース仕様情報\n, \"ファイルIDまたは電文ID\": [\"相手先\", \"入出力取引ID/名称\"]\n\n// データレイアウト情報(プロパティ定義行のみ出力)\n, \"ファイルIDまたは電文ID.親要素名.項目ID\": [\"項目名\", \"ドメイン名\", \"データタイプ\", \"デフォルト値\", \"備考\", \"必須\", \"Byte\", \"開始位置\", \"パディング\", \"小数点位置\", \"フォーマット仕様\", \"寄せ字\", \"属性\", \"多重度\"]\n\n};});\n```", "s11": "## テーブル定義書の読込設定\n\n```xml\n\n \n \n \n \n \n \n \n \n \n \n \n \n 表紙\n 変更履歴\n 目次\n データ\n \n \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\n自動生成ツールの出力に関する仕様を定義するセクション。各設計書のJSONフォーマット(出力形式)と定義データ出力時のエスケープ処理規則(定義データの出力仕様)を含む。", - "s12": "## コード設計書の読込設定\n\n```xml\n\n \n \n \n \n \n \n \n codeValue\n sortOrder\n codeValueName\n SHORT_NAME\n OPTIONAL_NAME01\n OPTIONAL_NAME02\n OPTIONAL_NAME03\n OPTIONAL_NAME04\n OPTIONAL_NAME05\n OPTIONAL_NAME06\n OPTIONAL_NAME07\n OPTIONAL_NAME08\n OPTIONAL_NAME09\n OPTIONAL_NAME10\n PATTERN01\n PATTERN02\n PATTERN03\n PATTERN04\n PATTERN05\n PATTERN06\n PATTERN07\n PATTERN08\n PATTERN09\n PATTERN10\n PATTERN11\n PATTERN12\n PATTERN13\n PATTERN14\n PATTERN15\n PATTERN16\n PATTERN17\n PATTERN18\n PATTERN19\n PATTERN20\n \n \n \n \n \n 表紙\n 変更履歴\n 目次\n en\n \n \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\n定義データをJSON形式で出力する際の仕様。エスケープ処理の規則は「エスケープ処理」セクションを参照。設計書ごとにキャメル変換などは行わず、Apache POIで取得した値をそのまま出力する。", - "s13": "定義データをJSON形式で出力する際、以下の文字をエスケープ処理する:\n\n- `\\`(バックスラッシュ)\n- `\"`(ダブルクォート)\n- `/`(スラッシュ)\n- `\\b`(バックスペース)\n- `\\f`(フォームフィード)\n- `\\t`(タブ)\n- `\\n`(改行LF)\n- `\\r`(改行CR)\n\n> **注意**: `\\r` と `\\n` は除去される(エスケープ後の文字列から削除)。" + "s12": "## コード設計書の読込設定\n\n```xml\n\n \n \n \n \n \n \n \n codeValue\n sortOrder\n codeValueName\n SHORT_NAME\n OPTIONAL_NAME01\n OPTIONAL_NAME02\n OPTIONAL_NAME03\n OPTIONAL_NAME04\n OPTIONAL_NAME05\n OPTIONAL_NAME06\n OPTIONAL_NAME07\n OPTIONAL_NAME08\n OPTIONAL_NAME09\n OPTIONAL_NAME10\n PATTERN01\n PATTERN02\n PATTERN03\n PATTERN04\n PATTERN05\n PATTERN06\n PATTERN07\n PATTERN08\n PATTERN09\n PATTERN10\n PATTERN11\n PATTERN12\n PATTERN13\n PATTERN14\n PATTERN15\n PATTERN16\n PATTERN17\n PATTERN18\n PATTERN19\n PATTERN20\n \n \n \n \n \n 表紙\n 変更履歴\n 目次\n en\n \n \n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n```\n\n定義データをJSON形式で出力する際の仕様。エスケープ処理の規則は「エスケープ処理」セクションを参照。設計書ごとにキャメル変換などは行わず、Apache POIで取得した値をそのまま出力する。\n\nそのため、セルの書式が数値型の場合に整数を指定しても自動的に\".0\"が付与される。整数をそのまま取得したい場合、当該セルの書式を標準や文字列にすること。", + "s13": "定義データをJSON形式で出力する際、以下の文字をエスケープ処理する:\n\n- `\\`(バックスラッシュ)\n- `\"`(ダブルクォート)\n- `/`(スラッシュ)\n- `\\b`(バックスペース)\n- `\\f`(フォームフィード)\n- `\\t`(タブ)\n- `\\n`(改行LF)\n- `\\r`(改行CR)\n\n> **注意**: `\\r` と `\\n` は除去される。" } } \ No newline at end of file diff --git a/.claude/skills/nabledge-1.4/knowledge/index.toon b/.claude/skills/nabledge-1.4/knowledge/index.toon index abb8b2bc8..07f6aa6b5 100644 --- a/.claude/skills/nabledge-1.4/knowledge/index.toon +++ b/.claude/skills/nabledge-1.4/knowledge/index.toon @@ -102,7 +102,7 @@ files[406,]{title,type,category,processing_patterns,path}: データベースコネクション名とトランザクション名, component, libraries, , component/libraries/libraries-04_TransactionConnectionName.json トランザクションタイムアウト機能, component, libraries, , component/libraries/libraries-04_TransactionTimeout.json ファイルダウンロード, component, libraries, , component/libraries/libraries-05_FileDownload.json - メッセージングログの出力, component, libraries, , component/libraries/libraries-05_MessagingLog.json + libraries-05_MessagingLog, component, libraries, , not yet created 開閉局, component, libraries, , component/libraries/libraries-05_ServiceAvailability.json 静的データのキャッシュ, component, libraries, , component/libraries/libraries-05_StaticDataCache.json ファイルアップロード, component, libraries, , component/libraries/libraries-06_FileUpload.json diff --git a/tools/knowledge-creator/.cache/v1.4/catalog.json b/tools/knowledge-creator/.cache/v1.4/catalog.json index bdbae26da..d91414bed 100644 --- a/tools/knowledge-creator/.cache/v1.4/catalog.json +++ b/tools/knowledge-creator/.cache/v1.4/catalog.json @@ -36905,6 +36905,241 @@ } ] }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", + "format": "rst", + "filename": "thread_context.rst", + "type": "component", + "category": "libraries", + "id": "libraries-thread_context--s1", + "base_name": "libraries-thread_context", + "output_path": "component/libraries/libraries-thread_context--s1.json", + "assets_dir": "component/libraries/assets/libraries-thread_context--s1/", + "section_range": { + "start_line": 0, + "end_line": 345, + "sections": [ + "", + "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "インタフェース定義", + "クラス定義", + "ThreadContextHandlerの設定", + "UserIdAttributeの設定", + "RequestIdAttributeの設定", + "InternalRequestIdAttributeの設定" + ], + "section_ids": [ + "s1", + "s2", + "s3", + "s4", + "s5", + "s6", + "s7", + "s8" + ] + }, + "split_info": { + "is_split": true, + "part": 1, + "total_parts": 2, + "original_id": "libraries-thread_context", + "group_line_count": 345 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "thread-context-label" + ] + }, + { + "section_id": "s2", + "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "インタフェース定義", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "クラス定義", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "ThreadContextHandlerの設定", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "UserIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "RequestIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "InternalRequestIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "LanguageAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "TimeZoneAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "ExecutionIdAttributeの設定", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", + "format": "rst", + "filename": "thread_context.rst", + "type": "component", + "category": "libraries", + "id": "libraries-thread_context--s9", + "base_name": "libraries-thread_context", + "output_path": "component/libraries/libraries-thread_context--s9.json", + "assets_dir": "component/libraries/assets/libraries-thread_context--s9/", + "section_range": { + "start_line": 345, + "end_line": 707, + "sections": [ + "LanguageAttributeの設定", + "TimeZoneAttributeの設定", + "ExecutionIdAttributeの設定" + ], + "section_ids": [ + "s9", + "s10", + "s11" + ] + }, + "split_info": { + "is_split": true, + "part": 2, + "total_parts": 2, + "original_id": "libraries-thread_context", + "group_line_count": 362 + }, + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [ + "thread-context-label" + ] + }, + { + "section_id": "s2", + "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "インタフェース定義", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "クラス定義", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "ThreadContextHandlerの設定", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "UserIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s7", + "heading": "RequestIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s8", + "heading": "InternalRequestIdAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s9", + "heading": "LanguageAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s10", + "heading": "TimeZoneAttributeの設定", + "rst_labels": [] + }, + { + "section_id": "s11", + "heading": "ExecutionIdAttributeの設定", + "rst_labels": [] + } + ] + }, + { + "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/05_MessagingLog.rst", + "format": "rst", + "filename": "05_MessagingLog.rst", + "type": "component", + "category": "libraries", + "id": "libraries-05_MessagingLog", + "base_name": "libraries-05_MessagingLog", + "output_path": "component/libraries/libraries-05_MessagingLog.json", + "assets_dir": "component/libraries/assets/libraries-05_MessagingLog/", + "section_map": [ + { + "section_id": "s1", + "heading": "", + "rst_labels": [] + }, + { + "section_id": "s2", + "heading": "メッセージングログの出力", + "rst_labels": [] + }, + { + "section_id": "s3", + "heading": "MOM送信メッセージのログ出力に使用するフォーマット", + "rst_labels": [] + }, + { + "section_id": "s4", + "heading": "MOM受信メッセージのログ出力に使用するフォーマット", + "rst_labels": [] + }, + { + "section_id": "s5", + "heading": "HTTP送信メッセージのログ出力に使用するフォーマット", + "rst_labels": [] + }, + { + "section_id": "s6", + "heading": "HTTP受信メッセージのログ出力に使用するフォーマット", + "rst_labels": [] + } + ] + }, { "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/03_Common/04_Permission.rst", "format": "rst", @@ -38318,242 +38553,7 @@ "rst_labels": [] } ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/02_FunctionDemandSpecifications/01_Core/01/05_MessagingLog.rst", - "format": "rst", - "filename": "05_MessagingLog.rst", - "type": "component", - "category": "libraries", - "id": "libraries-05_MessagingLog", - "base_name": "libraries-05_MessagingLog", - "output_path": "component/libraries/libraries-05_MessagingLog.json", - "assets_dir": "component/libraries/assets/libraries-05_MessagingLog/", - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [] - }, - { - "section_id": "s2", - "heading": "メッセージングログの出力", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "MOM送信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "MOM受信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "HTTP送信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "HTTP受信メッセージのログ出力に使用するフォーマット", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", - "format": "rst", - "filename": "thread_context.rst", - "type": "component", - "category": "libraries", - "id": "libraries-thread_context--s1", - "base_name": "libraries-thread_context", - "output_path": "component/libraries/libraries-thread_context--s1.json", - "assets_dir": "component/libraries/assets/libraries-thread_context--s1/", - "section_range": { - "start_line": 0, - "end_line": 345, - "sections": [ - "", - "同一スレッド内でのデータ共有(スレッドコンテキスト)", - "インタフェース定義", - "クラス定義", - "ThreadContextHandlerの設定", - "UserIdAttributeの設定", - "RequestIdAttributeの設定", - "InternalRequestIdAttributeの設定" - ], - "section_ids": [ - "s1", - "s2", - "s3", - "s4", - "s5", - "s6", - "s7", - "s8" - ] - }, - "split_info": { - "is_split": true, - "part": 1, - "total_parts": 2, - "original_id": "libraries-thread_context", - "group_line_count": 345 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "thread-context-label" - ] - }, - { - "section_id": "s2", - "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "インタフェース定義", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "クラス定義", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "ThreadContextHandlerの設定", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "UserIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "RequestIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "InternalRequestIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "LanguageAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "TimeZoneAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ExecutionIdAttributeの設定", - "rst_labels": [] - } - ] - }, - { - "source_path": ".lw/nab-official/v1.4/document/fw/core_library/thread_context.rst", - "format": "rst", - "filename": "thread_context.rst", - "type": "component", - "category": "libraries", - "id": "libraries-thread_context--s9", - "base_name": "libraries-thread_context", - "output_path": "component/libraries/libraries-thread_context--s9.json", - "assets_dir": "component/libraries/assets/libraries-thread_context--s9/", - "section_range": { - "start_line": 345, - "end_line": 707, - "sections": [ - "LanguageAttributeの設定", - "TimeZoneAttributeの設定", - "ExecutionIdAttributeの設定" - ], - "section_ids": [ - "s9", - "s10", - "s11" - ] - }, - "split_info": { - "is_split": true, - "part": 2, - "total_parts": 2, - "original_id": "libraries-thread_context", - "group_line_count": 362 - }, - "section_map": [ - { - "section_id": "s1", - "heading": "", - "rst_labels": [ - "thread-context-label" - ] - }, - { - "section_id": "s2", - "heading": "同一スレッド内でのデータ共有(スレッドコンテキスト)", - "rst_labels": [] - }, - { - "section_id": "s3", - "heading": "インタフェース定義", - "rst_labels": [] - }, - { - "section_id": "s4", - "heading": "クラス定義", - "rst_labels": [] - }, - { - "section_id": "s5", - "heading": "ThreadContextHandlerの設定", - "rst_labels": [] - }, - { - "section_id": "s6", - "heading": "UserIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s7", - "heading": "RequestIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s8", - "heading": "InternalRequestIdAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s9", - "heading": "LanguageAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s10", - "heading": "TimeZoneAttributeの設定", - "rst_labels": [] - }, - { - "section_id": "s11", - "heading": "ExecutionIdAttributeの設定", - "rst_labels": [] - } - ] } ], - "generated_at": "2026-03-25T22:10:08+09:00" + "generated_at": "2026-03-31T17:27:16+09:00" } \ No newline at end of file diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json index 29a53c285..db40d83e5 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s1.json @@ -99,7 +99,7 @@ "s1": "リクエストに対して認可チェックを行う機能。ハンドラとして使用される(詳細は :doc:`../../handler/PermissionCheckHandler`)。\n\n> **注意**: 通常アーキテクトが本機能を使用して認可処理を局所化するため、アプリケーションプログラマは本機能を直接使用しない。", "s2": "### グループ単位とユーザ単位を併用した権限設定\n\nグループに権限を設定し、ユーザにグループを割り当てることでグループ単位の権限管理が可能。さらにユーザに直接権限を設定することでイレギュラーな権限付与にも対応可能。\n\n### 自由度の高いテーブル定義\n\nテーブル名・カラム名を自由に設定可能。カラムのデータ型もJavaの型に変換可能であれば任意のデータ型を使用できる。プロジェクトの命名規約に従ったテーブル定義が作成できる。", "s3": "### 実装済み\n\n- 機能(任意のリクエストのかたまり)単位で認可判定の設定を行うことができる\n- ユーザに対してグループを設定でき、グループ単位で認可判定の設定を行うことができる\n- リクエストIDを設定し、特定のリクエストIDを認可判定の対象から除外できる\n- ユーザに有効日(From/To)を設定できる\n- ユーザとグループの関連に有効日(From/To)を設定できる\n- 認可判定の結果に応じて画面項目(メニューやボタンなど)の表示・非表示を切り替えることができる\n\n### 未実装\n\n- 本機能で使用するマスタデータをメンテナンスできる\n- 本機能で使用するマスタの初期データを一括登録できる\n- 認証機能によりユーザIDがロックされているユーザの認可判定を失敗にできる\n\n### 未検討\n\n- データへのアクセスを制限できる\n- 機能単位の権限に有効日(From/To)を設定できる", - "s4": "リクエストIDを使用して認可判定を行う。リクエストIDの体系はアプリケーション毎に設計する。\n\n**認可単位**: ユーザが機能として認識する最小単位の概念。認可単位には認可を実現するために必要なリクエスト(Webアプリであれば画面のイベント)が複数紐付く。\n\n- グループに認可単位を紐付け → グループ権限\n- ユーザに認可単位を直接紐付け → ユーザ権限\n\n> **注意**: グループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。\n\n> **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。", + "s4": "リクエストIDを使用して認可判定を行う。リクエストIDの体系はアプリケーション毎に設計する。\n\n**認可単位**: ユーザが機能として認識する最小単位の概念。認可単位には認可を実現するために必要なリクエスト(Webアプリであれば画面のイベント)が複数紐付く。\n\n- グループに認可単位を紐付け → グループ権限\n- ユーザに認可単位を直接紐付け → ユーザ権限\n\nグループ権限とユーザ権限の例:\n\n| ユーザ | 説明 |\n|---|---|\n| Aさん | 人事部グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 |\n| Bさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。 |\n| Cさん | パートナーグループに紐づいているので、社員情報変更のみ使用できる。 |\n| Xさん | 部長グループと社員グループに紐づいているので、社員登録・社員削除・社員検索・社員情報変更を使用できる。 |\n| Yさん | 社員グループに紐づいているので、社員検索・社員情報変更を使用できる。さらにDさんは、社員登録認可単位に直接紐づいているので、社員登録も使用できる。 |\n\n> **注意**: Yさんのようにグループ権限とユーザ権限が異なる場合は、双方の権限に紐づく認可単位が足し合わされる。\n\n> **注意**: 通常はグループ権限を登録しユーザにグループを割り当てることで権限設定を行う。ユーザ権限はイレギュラーな権限付与に対応するために使用する。", "s5": "**インタフェース**:\n\n| インタフェース名 | 概要 |\n|---|---|\n| `nablarch.common.permission.Permission` | 認可インタフェース。認可判定の実現方法毎に実装クラスを作成する |\n| `nablarch.common.permission.PermissionFactory` | Permission生成インタフェース。認可情報の取得先毎に実装クラスを作成する |\n\n**Permissionの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermission` | 保持しているリクエストIDを使用して認可を行うPermissionの基本実装クラス |\n\n**PermissionFactoryの実装クラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.permission.BasicPermissionFactory` | BasicPermissionを生成するPermissionFactoryの基本実装クラス。DBのユーザ・グループ毎の認可単位テーブル構造からユーザに紐付く認可情報を取得する |\n\n**その他のクラス**:\n\n| クラス名 | 概要 |\n|---|---|\n| `nablarch.common.handler.PermissionCheckHandler` | 認可判定を行うハンドラ |\n| `nablarch.common.permission.PermissionUtil` | 権限管理に使用するユーティリティ |", "s6": "1. PermissionCheckHandlerは、リクエスト毎にユーザに紐付くPermissionを取得し、認可判定後にPermissionをスレッドローカルに格納する\n2. 個別アプリケーションで認可判定が必要な場合は、PermissionUtilからPermissionを取得して認可判定を行う\n3. 認証機能によりユーザIDがロックされている場合は認可失敗となる\n4. 認可判定の対象リクエストのチェックには、設定で指定されたリクエストIDを使用して行う(:ref:`ignoreRequestIdsSetting` 参照)\n5. ユーザIDとリクエストIDはPermissionCheckHandlerより先に処理するハンドラでThreadContextに設定する(:ref:`ThreadContextHandler` が行う)", "s7": "テーブル名・カラム名はBasicPermissionFactoryの設定で指定するため任意の名前を使用できる。DBの型もJavaの型に変換可能であれば任意の型を使用できる。\n\n> **注意**: システムアカウントテーブルは認証機能と同じテーブルを使用することを想定しているため、認証機能で使用するデータ項目(パスワード等)が含まれる。\n\n**グループ**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n\n**システムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| ユーザIDロック | boolean | |\n| 有効日(From) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**グループシステムアカウント**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| ユーザID | java.lang.String | ユニークキー |\n| 有効日(From) | java.lang.String | ユニークキー。書式 yyyyMMdd。指定しない場合は\"19000101\" |\n| 有効日(To) | java.lang.String | 書式 yyyyMMdd。指定しない場合は\"99991231\" |\n\n**認可単位**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**認可単位リクエスト**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| 認可単位ID | java.lang.String | ユニークキー |\n| リクエストID | java.lang.String | ユニークキー |\n\n**グループ権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| グループID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |\n\n**システムアカウント権限**:\n\n| 定義 | Javaの型 | 制約 |\n|---|---|---|\n| ユーザID | java.lang.String | ユニークキー |\n| 認可単位ID | java.lang.String | ユニークキー |" diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json index ac0f73b04..92d1e60c6 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-04_Permission--s10.json @@ -22,6 +22,8 @@ "BasicBusinessDateProvider", "SimpleDbTransactionManager", "BasicApplicationInitializer", + "BusinessDateProvider", + "Initializable", "permissionFactory", "ignoreRequestIds", "dbManager", diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s1.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s1.json index 0e60c1984..72e346eb0 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s1.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s1.json @@ -16,6 +16,84 @@ "checkboxタグ", "selectタグ", "submitタグ", + "compositeKeyRadioButtonタグ", + "CompositeKeyRadioButtonTag", + "fileタグ", + "FileTag", + "hiddenタグ", + "HiddenTag", + "plainHiddenタグ", + "PlainHiddenTag", + "radiobuttonsタグ", + "RadioButtonsTag", + "checkboxesタグ", + "CheckboxesTag", + "buttonタグ", + "ButtonTag", + "submitLinkタグ", + "SubmitLinkTag", + "popupSubmitタグ", + "PopupSubmitTag", + "popupButtonタグ", + "PopupButtonTag", + "popupLinkタグ", + "PopupLinkTag", + "downloadSubmitタグ", + "DownloadSubmitTag", + "downloadButtonタグ", + "DownloadButtonTag", + "downloadLinkタグ", + "DownloadLinkTag", + "paramタグ", + "ParamTag", + "changeParamNameタグ", + "ChangeParamNameTag", + "aタグ", + "ATag", + "imgタグ", + "ImgTag", + "linkタグ", + "LinkTag", + "scriptタグ", + "ScriptTag", + "errorsタグ", + "ErrorsTag", + "errorタグ", + "ErrorTag", + "noCacheタグ", + "NoCacheTag", + "codeSelectタグ", + "CodeSelectTag", + "codeRadioButtonsタグ", + "CodeRadioButtonsTag", + "codeCheckboxesタグ", + "CodeCheckboxesTag", + "codeCheckboxタグ", + "CodeCheckboxTag", + "codeタグ", + "CodeTag", + "messageタグ", + "MessageTag", + "writeタグ", + "WriteTag", + "prettyPrintタグ", + "PrettyPrintTag", + "rawWriteタグ", + "RawWriteTag", + "setタグ", + "SetTag", + "includeタグ", + "IncludeTag", + "includeParamタグ", + "IncludeParamTag", + "confirmationPageタグ", + "ConfirmationPageTag", + "ignoreConfirmationタグ", + "IgnoreConfirmationTag", + "forInputPageタグ", + "ForInputPageTag", + "forConfirmationPageタグ", + "ForConfirmationPageTag", "カスタムタグ", "WebView", "サブミット制御", diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s11.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s11.json index 5f9853a57..c58be0545 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s11.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s11.json @@ -13,6 +13,10 @@ "valueObject", "keyNames", "namePrefix", + "autofocus", + "label", + "disabled", + "onchange", "errorCss", "nameAlias", "複合キーチェックボックス", @@ -29,6 +33,10 @@ "valueObject", "keyNames", "namePrefix", + "autofocus", + "label", + "disabled", + "onchange", "errorCss", "nameAlias", "複合キーラジオボタン", @@ -44,7 +52,12 @@ "name", "disabled", "readonly", + "size", + "maxlength", + "onselect", + "onchange", "accept", + "autofocus", "multiple", "errorCss", "nameAlias", @@ -81,9 +94,19 @@ "title": "selectタグ", "hints": [ "select", + "name", "listName", "elementLabelProperty", "elementValueProperty", + "size", + "multiple", + "disabled", + "tabindex", + "onfocus", + "onblur", + "onchange", + "autofocus", + "nameAlias", "elementLabelPattern", "listFormat", "withNoneOption", @@ -99,9 +122,14 @@ "title": "radioButtonsタグ", "hints": [ "radioButtons", + "name", "listName", "elementLabelProperty", "elementValueProperty", + "disabled", + "onchange", + "autofocus", + "nameAlias", "elementLabelPattern", "listFormat", "errorCss", @@ -115,9 +143,14 @@ "title": "checkboxesタグ", "hints": [ "checkboxes", + "name", "listName", "elementLabelProperty", "elementValueProperty", + "disabled", + "onchange", + "autofocus", + "nameAlias", "elementLabelPattern", "listFormat", "errorCss", @@ -152,6 +185,11 @@ "title": "buttonタグ", "hints": [ "button", + "name", + "value", + "type", + "disabled", + "autofocus", "uri", "allowDoubleSubmission", "secure", @@ -167,6 +205,7 @@ "title": "submitLinkタグ", "hints": [ "submitLink", + "name", "uri", "allowDoubleSubmission", "secure", @@ -183,6 +222,10 @@ "title": "popupSubmitタグ", "hints": [ "popupSubmit", + "name", + "disabled", + "value", + "autofocus", "type", "uri", "popupWindowName", @@ -204,6 +247,11 @@ "title": "popupButtonタグ", "hints": [ "popupButton", + "name", + "value", + "type", + "disabled", + "autofocus", "uri", "popupWindowName", "popupOption", diff --git a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json index f59268c25..b4469ea08 100644 --- a/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json +++ b/tools/knowledge-creator/.cache/v1.4/knowledge/component/libraries/libraries-07_TagReference--s24.json @@ -254,14 +254,14 @@ } ], "sections": { - "s1": "## popupLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| popupWindowName | | | ポップアップのウィンドウ名。window.open関数の第2引数(JavaScript)に指定する |\n| popupOption | | | ポップアップのオプション情報。window.open関数の第3引数(JavaScript)に指定する |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |", + "s1": "## popupLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| popupWindowName | | | ポップアップのウィンドウ名。新しいウィンドウを開く際にwindwo.open関数の第2引数(JavaScript)に指定する |\n| popupOption | | | ポップアップのオプション情報。新しいウィンドウを開く際にwindwo.open関数の第3引数(JavaScript)に指定する |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |", "s2": "## downloadSubmitタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| type | ○ | | XHTMLのtype属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| disabled | | | XHTMLのdisabled属性 |\n| value | | | XHTMLのvalue属性 |\n| src | | | XHTMLのsrc属性 |\n| alt | | | XHTMLのalt属性 |\n| usemap | | | XHTMLのusemap属性 |\n| align | | | XHTMLのalign属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |", "s3": "## downloadButtonタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| value | | | XHTMLのvalue属性 |\n| type | | | XHTMLのtype属性 |\n| disabled | | | XHTMLのdisabled属性 |\n| autofocus | | | HTML5のautofocus属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |", "s4": "## downloadLinkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| name | | | XHTMLのname属性 |\n| uri | ○ | | URI。:ref:`WebView_SpecifyUri` を参照 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| allowDoubleSubmission | | true | 二重サブミットを許可するか否か。許可する場合はtrue、許可しない場合はfalse |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |\n| displayMethod | | | 認可判定と開閉局判定の結果による表示制御方法。NODISPLAY(非表示)/ DISABLED(非活性)/ NORMAL(通常表示) |", "s5": "## paramタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | サブミット時に使用するパラメータの名前 |\n| name | | | 値を取得するための名前。name属性とvalue属性のどちらか一方を指定する |\n| value | | | 値。直接値を指定する場合に使用する。name属性とvalue属性のどちらか一方を指定する |", "s6": "## changeParamNameタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| paramName | ○ | | サブミット時に使用するパラメータの名前 |\n| inputName | ○ | | 変更元となる元画面のinput要素のname属性 |", "s7": "## aタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| :ref:`WebView_FocusAttributesTag` | | | |\n| charset | | | XHTMLのcharset属性 |\n| type | | | XHTMLのtype属性 |\n| name | | | XHTMLのname属性 |\n| href | | | XHTMLのhref属性。:ref:`WebView_SpecifyUri` を参照 |\n| hreflang | | | XHTMLのhreflang属性 |\n| rel | | | XHTMLのrel属性 |\n| rev | | | XHTMLのrev属性 |\n| shape | | | XHTMLのshape属性 |\n| coords | | | XHTMLのcoords属性 |\n| target | | | XHTMLのtarget属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", - "s8": "## imgタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| src | ○ | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| alt | ○ | | XHTMLのalt属性 |\n| name | | | XHTMLのname属性 |\n| longdesc | | | XHTMLのlongdesc属性 |\n| height | | | XHTMLのheight属性 |\n| width | | | XHTMLのwidth属性 |\n| usemap | | | XHTMLのusemap属性 |\n| ismap | | | XHTMLのismap属性 |\n| align | | | XHTMLのalign属性 |\n| border | | | XHTMLのborder属性 |\n| hspace | | | XHTMLのhspace属性 |\n| vspace | | | XHTMLのvspace属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", + "s8": "## imgタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| src | ○ | | XHTMLのcharsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| alt | ○ | | XHTMLのalt属性 |\n| name | | | XHTMLのname属性 |\n| longdesc | | | XHTMLのlongdesc属性 |\n| height | | | XHTMLのheight属性 |\n| width | | | XHTMLのwidth属性 |\n| usemap | | | XHTMLのusemap属性 |\n| ismap | | | XHTMLのismap属性 |\n| align | | | XHTMLのalign属性 |\n| border | | | XHTMLのborder属性 |\n| hspace | | | XHTMLのhspace属性 |\n| vspace | | | XHTMLのvspace属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", "s9": "## linkタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| :ref:`WebView_GenericAttributesTag` | | | |\n| charset | | | XHTMLのcharset属性 |\n| href | | | XHTMLのhref属性。:ref:`WebView_SpecifyUri` を参照 |\n| hreflang | | | XHTMLのhreflang属性 |\n| type | | | XHTMLのtype属性 |\n| rel | | | XHTMLのrel属性 |\n| rev | | | XHTMLのrev属性 |\n| media | | | XHTMLのmedia属性 |\n| target | | | XHTMLのtarget属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", "s10": "## scriptタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| type | ○ | | XHTMLのtype属性 |\n| id | | | XHTMLのid属性 |\n| charset | | | XHTMLのcharset属性 |\n| language | | | XHTMLのlanguage属性 |\n| src | | | XHTMLのsrc属性。:ref:`WebView_SpecifyUri` を参照 |\n| defer | | | XHTMLのdefer属性 |\n| xmlSpace | | | XHTMLのxml:space属性 |\n| secure | | | URIをhttpsにするか否か。httpsにする場合はtrue、しない場合はfalse |", "s11": "## errorsタグ\n\n| 属性名 | 必須 | デフォルト値 | 説明 |\n|---|---|---|---|\n| cssClass | | nablarch_errors | リスト表示においてulタグに使用するCSSクラス名 |\n| infoCss | | nablarch_info | 情報レベルのメッセージに使用するCSSクラス名 |\n| warnCss | | nablarch_warn | 警告レベルのメッセージに使用するCSSクラス名 |\n| errorCss | | nablarch_error | エラーレベルのメッセージに使用するCSSクラス名 |\n| filter | | all | リストに含めるメッセージのフィルタ条件。all(全てのメッセージを表示)/ global(入力項目に対応しないメッセージのみを表示。ValidationResultMessageのプロパティ名が入っているメッセージを取り除いて出力) |", From 842a0a966556bc79969c13bf357796ed99a88c4f Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 31 Mar 2026 17:35:14 +0900 Subject: [PATCH 12/16] chore: update work notes with today's findings and next task Co-Authored-By: Claude Sonnet 4.6 --- .pr/00274/notes.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.pr/00274/notes.md b/.pr/00274/notes.md index 916311403..d1bd1a0d3 100644 --- a/.pr/00274/notes.md +++ b/.pr/00274/notes.md @@ -2,6 +2,38 @@ ## 2026-03-31 +### Bugs fixed today + +#### Bug 1: Round 3 (Final Verification) runs on all files instead of targets (`run.py`) + +`_run_final_verification()` に `effective_target` が渡されていなかった。 +Phase C/D ともに全ファイルを対象にしていた。 +→ `target_ids` パラメータを追加し、Phase C/D 両方に渡すよう修正。コミット `2885a33f`。 + +#### Bug 2: diff guard が `index`-only な修正を誤って拒否する (`phase_e_fix.py`) + +`hints_missing` findingの場合、Phase E は `index[sN].hints` を修正するが +`sections` は変わらない。diff guard の「変更なし」チェックが `sections` しか +見ていなかったため、正しい修正を拒否していた。 +→ `index` エントリの変更も確認するよう修正。コミット `2885a33f`。 + +### 残課題: Phase D false positive による diff guard エラー + +**症状**: `libraries-04_Permission--s10` が Round 2 で diff guard エラー + +**再現の流れ**: +1. Round 1: Phase D が `hints_missing` (BusinessDateProvider, Initializable) を検出 → Phase E が修正 → `[FIXED]` +2. Round 2: Phase D が同じ hints_missing を**また報告**(すでに hints 配列に存在するのに) +3. Phase E: 修正不要と判断して何も変更しない → diff guard が「変更なし」として拒否 + +**確認済み**: Round 2 終了時点のキャッシュに `BusinessDateProvider`, `Initializable` は +すでに存在している。Phase D の誤検知(false positive)が根本原因。 + +**次のアクション**: +- Phase D が Round 1 で修正済みの hints を Round 2 で再検知する原因を調査 +- Phase D の findingsロジック(content_check.md プロンプトまたは検証ロジック)を修正 +- `libraries-07_TagReference--s1` も Round 3 で 2 findings 残存しており関連する可能性あり + ### TODO -- [ ] Define revised approach for Phase E and Phase D reliability +- [ ] Investigate and fix Phase D false positive: re-detecting already-fixed hints in subsequent rounds From 9697dea975bbd80902cb99da6da78985b87cb54a Mon Sep 17 00:00:00 2001 From: kiyotis Date: Fri, 3 Apr 2026 14:04:16 +0900 Subject: [PATCH 13/16] chore: update work notes with Phase D false positive investigation results --- .pr/00274/notes.md | 66 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/.pr/00274/notes.md b/.pr/00274/notes.md index d1bd1a0d3..582c1455f 100644 --- a/.pr/00274/notes.md +++ b/.pr/00274/notes.md @@ -34,6 +34,70 @@ Phase C/D ともに全ファイルを対象にしていた。 - Phase D の findingsロジック(content_check.md プロンプトまたは検証ロジック)を修正 - `libraries-07_TagReference--s1` も Round 3 で 2 findings 残存しており関連する可能性あり +## 2026-04-03 + +### Investigation Result: Phase D False Positive Root Cause (Confirmed) + +**The issue is NOT a false positive — it's a prompt compliance failure.** + +**R1 State**: +- Hints array (38 items): Contains `businessDateProvider` (lowercase) but NOT `BusinessDateProvider` (PascalCase) +- Phase D detection: Correctly identifies `BusinessDateProvider` as missing → findings reported + +**R2 State**: +- Hints array (40 items): Now contains BOTH `businessDateProvider` AND `BusinessDateProvider` ✅ +- Prior round findings: Passed to Phase D with R1 findings (BusinessDateProvider + Initializable missing) +- Phase D instruction in prompt: "If a location was clean in the previous round and the knowledge file content at that location has not changed, do not report a new finding for it now." + +**Problem Identified**: +- Phase D prompt correctly receives prior_round_findings (JSON with BusinessDateProvider missing) +- BUT: Phase D ignores the guidance and re-reports the same finding in R2 findings +- Likely cause: LLM disregards the "do not report findings that were in prior_round_findings" instruction + - The current phrasing uses negative framing ("do NOT report") + - LLM may interpret this as "check if content changed" rather than "skip if already reported" + +**Actual cache state**: +- R1 cache after fix: index[0].hints includes BusinessDateProvider, Initializable +- R2 cache read: Same hints array (no change to cache) +- R2 Phase D input: Receives the updated cache with BusinessDateProvider present +- R2 findings: Still reports BusinessDateProvider as missing (false positive) + +**Why diff guard fails**: +1. R2 Phase D: "BusinessDateProvider is missing" (false) +2. R2 Phase E: Receives finding, has nothing to fix (already in index) +3. Phase E diff guard: "No changes in allowed sections" → rejects with error + +### Root Cause Determination + +**The root cause is: Phase D prompt fails to exclude findings that appear in prior_round_findings** + +This is NOT a cache merge issue or a finding format issue — it's a **prompt compliance issue**. + +The prompt says "do NOT report" but should explicitly say: +- "For each finding in prior_round_findings, skip re-reporting it unless the knowledge file content at that location has CHANGED" +- Need to identify locations from prior_round_findings and actively exclude them from new findings + +### Remediation Tasks Required + +1. **Explicit exclusion rule in Phase D prompt** (content_check.md) + - Current phrasing: Negative ("do NOT") + - Required phrasing: Positive list of locations to skip + - Add: "Extract all (location, category) pairs from prior_round_findings. Skip any finding whose (location, category) matches a prior finding UNLESS the section content has demonstrably changed." + +2. **Content change detection** (optional, but important) + - Current check: "knowledge file content at that location has not changed" + - Need to clarify: What counts as a change? + - For hints_missing: The hints array changing should NOT count as "content change" if the original section text is unchanged + - For section_count issues: Section structure changing = content changed + +3. **Add test case to verify fix** + - Scenario: hints_missing in R1 → fixed in cache → R2 should not re-report + - Verify: phase_d_content_check.py correctly skips prior findings + ### TODO -- [ ] Investigate and fix Phase D false positive: re-detecting already-fixed hints in subsequent rounds +- [ ] Update content_check.md Phase D prompt with explicit prior_round_findings exclusion logic +- [ ] Add logic/documentation to clarify what "content change" means for each finding category +- [ ] Add test case in test_severity_flip.py for prior_round_findings handling +- [ ] Re-run v1.4 with fixed prompt to verify false positive is eliminated +- [ ] Update PR task list after fix is confirmed From c762ec9346fa3857b145a1a84e2ec43a83ed4cf9 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Fri, 3 Apr 2026 14:21:58 +0900 Subject: [PATCH 14/16] fix: strengthen Phase D prior_round_findings handling and clarify E-4 constraint - Add explicit exclusion logic in content_check.md for prior_round_findings (location+category matching) - Provide clear guidance on what 'content change' means for different finding categories - Add concrete examples showing what violations look like - Enhance fix.md E-4 rule with examples to prevent adjacent text corruption - Unify V4 severity notation with V1/V2 in General Rules - All changes address root cause: LLM compliance failure with implicit negative instructions --- .../prompts/content_check.md | 44 +++++++++++++++++-- tools/knowledge-creator/prompts/fix.md | 19 ++++++-- 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/tools/knowledge-creator/prompts/content_check.md b/tools/knowledge-creator/prompts/content_check.md index 8180868e7..d5ed242e7 100644 --- a/tools/knowledge-creator/prompts/content_check.md +++ b/tools/knowledge-creator/prompts/content_check.md @@ -32,13 +32,46 @@ If the source justifies the current state (e.g., the source section is genuinely {CONTENT_WARNINGS} -## Prior Round Findings +## Prior Round Findings and Exclusion Rules -The following findings were reported in the previous round. -Use these as an anchor: do NOT report new findings for locations that were not flagged before, unless the knowledge file content at that location has changed since the previous round. +The following findings were reported in the previous round: {PRIOR_FINDINGS} +**CRITICAL: Exclusion rule for this round** + +For each finding in the prior round, extract its `(location, category)` pair. +Skip reporting a new finding if ALL of the following conditions are met: +1. The `location` string matches a prior finding's location (exact match) +2. The `category` matches a prior finding's category (exact match) +3. The source content at that location has NOT changed since the previous round + +**How to determine if content has changed:** +- For `hints_missing`: Content changes if the source text (not the hints array) has been modified. Adding hints to the knowledge file does NOT count as "content changed" — the source text is what matters. +- For `section_count`: Content changes if the number of source sections/headings has changed. +- For `cross_reference`: Content changes if the referenced target or source text has changed. +- For all other categories: Apply the same principle: judge based on source content, not knowledge file content. + +**Example 1 (SKIP reporting):** +``` +Prior finding: {location: "sections.s1 / index[0].hints", category: "hints_missing", description: "BusinessDateProvider missing"} +Current cache: index[0].hints now contains BusinessDateProvider ✅ +Source s1 text: Unchanged (still mentions "nablarch.core.date.BusinessDateProvider") +Action: SKIP this finding → Do NOT report it again +``` + +**Example 2 (REPORT new finding):** +``` +Prior finding: {location: "sections.s1 / index[0].hints", category: "hints_missing", description: "BusinessDateProvider missing"} +Current cache: index[0].hints now contains BusinessDateProvider ✅ +Source s1 text: NEW mention of "Initializable" added +Action: REPORT if Initializable is missing from index[0].hints (different location in hints, or new requirement) +``` + +**Implementation:** +Before generating findings, build a set of (location, category) pairs from prior_round_findings. +Then, for each finding you identify, check if it matches this set. If it matches AND source content is unchanged, skip it. + ## General Rules **D-1: Severity stability rule** @@ -47,6 +80,9 @@ Apply severity criteria consistently across all checks (V1–V5). If a location was clean in the previous round and the knowledge file content at that location has not changed, do not report a new finding for it now. Justify every severity assignment in the description field using the criteria below (e.g., "critical: missing required configuration property"). +**Severity defaults by check type:** +- **V3 and V4 findings are minor by definition**: Section-level structural issues (count mismatches, sequential ID violations, incomplete hints) do not affect content correctness or usability. They are formatting/completeness issues. + ## Validation Checklist ### V1: Omission Check @@ -110,7 +146,7 @@ All findings in this section are minor by definition. - For RST: if h2 has >= 2000 chars plain text AND h3 exists but knowledge doesn't split → report. - Check that section IDs follow sequential format: `s1`, `s2`, `s3`, ... If any section ID is not in this format, report as issue. -### V4: Hints Completeness (severity: minor) +### V4: Hints Completeness For each section, check hints include: - PascalCase class names from content diff --git a/tools/knowledge-creator/prompts/fix.md b/tools/knowledge-creator/prompts/fix.md index af740765d..c1898fcf6 100644 --- a/tools/knowledge-creator/prompts/fix.md +++ b/tools/knowledge-creator/prompts/fix.md @@ -48,10 +48,23 @@ Do not correct RST special syntax, typos, or non-standard notation found in the If the source contains `.. code-block:: jave` (typo), preserve it as-is. Your role is to extract information faithfully, not to fix source errors. -**E-4: Adjacent content preservation** +**E-4: Adjacent content preservation (CRITICAL)** -When editing content within a section, copy all existing content outside the edited location exactly as it appears. -Do not alter sentences, values, or terms that are not directly related to the finding being fixed. +When editing content within a section to fix a finding, preserve all text outside the edited location exactly as it appears. +Do not alter sentences, values, terms, or word order that are not directly related to the finding being fixed. + +Critical examples of WRONG edits: +- Finding: `hints_missing: [Validator]` + - Source: "The **Validator** and **Processor** are used in validation." + - WRONG FIX: "The **Processor** is used in validation." (deleted "Validator" from adjacent text) + - CORRECT: "The **Validator** and **Processor** are used in validation. [Added hint: Validator]" + +- Finding: hints incomplete + - Source: "normal termination of the request" + - WRONG FIX: "abnormal termination of the request" (word inversion) + - CORRECT: Keep "normal termination" and add the missing hint or clarification separately + +Verify after editing: Read the fixed section aloud. Does it convey the same information as before, with only the targeted issue fixed? **Scope constraint** From 24cecf21db6c167f2e44e88fec46f0428dc98f09 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 7 Apr 2026 11:34:45 +0900 Subject: [PATCH 15/16] chore: document Phase E Round 2 error root cause and remediation approach MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Analyzed test run 20260331T171824: libraries-04_Permission--s10 error - Root cause: Phase D re-reports same findings (prompt compliance failure) * prior_round_findings is correctly passed to prompt * But LLM ignores "do NOT report same location" instruction * Results in unnecessary Phase E modification → diff guard error - Knowledge file was already fixed in R1, so no changes in R2 → error - Proposed remediation: strengthen prior_round_findings logic in content_check.md * Define "content change" explicitly (RST source changes, not KB updates) * Make prior_round_findings exclusion explicit (location + category matching) * Add concrete examples to guide LLM compliance Co-Authored-By: Claude Haiku 4.5 --- .pr/00274/notes.md | 77 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/.pr/00274/notes.md b/.pr/00274/notes.md index 582c1455f..02d8b9d25 100644 --- a/.pr/00274/notes.md +++ b/.pr/00274/notes.md @@ -94,10 +94,73 @@ The prompt says "do NOT report" but should explicitly say: - Scenario: hints_missing in R1 → fixed in cache → R2 should not re-report - Verify: phase_d_content_check.py correctly skips prior findings -### TODO - -- [ ] Update content_check.md Phase D prompt with explicit prior_round_findings exclusion logic -- [ ] Add logic/documentation to clarify what "content change" means for each finding category -- [ ] Add test case in test_severity_flip.py for prior_round_findings handling -- [ ] Re-run v1.4 with fixed prompt to verify false positive is eliminated -- [ ] Update PR task list after fix is confirmed +## 2026-04-07 + +### 根本原因(事実ベース) + +テスト実行 20260331T171824 でエラーが発生: `libraries-04_Permission--s10` + +**事実1: prior_round_findings は正しく渡されている** +- R2 Phase D プロンプトに Prior Round Findings セクション (Line 413-419) が存在 +- BusinessDateProvider, Initializable のfindingsが含まれている + +**事実2: プロンプト指示は明確** +- "Do NOT report new findings for locations that were not flagged before" +- "If a location was clean and content has not changed, do not report" + +**事実3: 同じ findings が再報告されている(Prompt Compliance Failure)** +- R1 findings: hints_missing (BusinessDateProvider), hints_missing (Initializable) +- R2 findings: 全く同じfindings が再報告 +- LLM が prior_round_findings 指示を無視している + +**事実4: 知識ファイルは修正済み** +- R2 Phase E の出力JSON (line 25-26): + - 'BusinessDateProvider' ✅ hints に含まれている + - 'Initializable' ✅ hints に含まれている +- つまり R1 Phase E で修正が成功していた + +**事実5: ソースファイル(RST)は変わっていない** +- source_evidence に記録されたテキスト内容は R1 → R2 で同じ +- ソース側での追加・削除・変更がない + +### 発生メカニズム + +``` +R1 Phase D: findings を報告 (hints_missing 2件) + ↓ (prior_round_findings に記録される) +R2 Phase D: 同じfindings を再報告 ← ❌ LLM が指示を無視 + ↓ (Phase E が「修正が必要」と判定) +R2 Phase E: hints を修正しようとするが、実際のキャッシュは既に修正済み + ↓ +diff guard が「変更がない」と検出 → ERROR: Diff guard: no changes in allowed sections + ↓ +キャッシュは修正済み状態で更新されない +R3 Phase D: 既に修正済みなので clean +``` + +### あるべき姿 + +R2 Phase D で: +1. prior_round_findings に (hints_missing, sections.s1/.../index[0].hints) が存在 +2. 知識ファイル内容がR1から変わっていない +3. ソースファイル(RST)も変わっていない +4. → findings をスキップ(報告しない) +5. 結果: R2 Phase D findings = 空(clean) + +### 対応案 + +content_check.md の prior_round_findings ロジックを強化: + +1. **コンテンツ変更の定義を明確化** + - 「ソース変更」= RST に行が追加・削除・変更されること + - 「知識ファイル更新」≠ ソース変更(hints 追加等は修正によるもの) + - ソースが変わらない → prior_round_findings は完全スキップ + +2. **prior_round_findings チェックの明示化** + - location + category で完全一致するfindings を明示的にリスト化 + - 一致したら必ずスキップ(条件なし) + +3. **具体例を追加** + - 「前回のR1: hints_missing で BusinessDateProvider を報告」 + - 「今回のR2: ソースRST を見直す → BusinessDateProvider 関連の行は変わっていない」 + - 「判断: 知識ファイルは修正済み、ソース変わらず → 報告しない」 From f430e02e143073b84fe9eb0ed26ca6e2ba6f0bb5 Mon Sep 17 00:00:00 2001 From: kiyotis Date: Tue, 7 Apr 2026 11:38:15 +0900 Subject: [PATCH 16/16] chore: add knowledge generation report for nabledge-1.4 (run 20260331T171824) Co-Authored-By: Claude Haiku 4.5 --- .../reports/20260331T171824-files.md | 559 ++++++++++++++++++ .../reports/20260331T171824.json | 161 +++++ .../reports/20260331T171824.md | 118 ++++ 3 files changed, 838 insertions(+) create mode 100644 tools/knowledge-creator/reports/20260331T171824-files.md create mode 100644 tools/knowledge-creator/reports/20260331T171824.json create mode 100644 tools/knowledge-creator/reports/20260331T171824.md diff --git a/tools/knowledge-creator/reports/20260331T171824-files.md b/tools/knowledge-creator/reports/20260331T171824-files.md new file mode 100644 index 000000000..0eb98aaaf --- /dev/null +++ b/tools/knowledge-creator/reports/20260331T171824-files.md @@ -0,0 +1,559 @@ +# ファイル別詳細 + +対象ファイル数: 553 + +| ファイルID | RST(B/KB) | JSON(B/KB) | サイズ比 | B_ターン数 | B_実行時間(秒) | B_コスト($) | B_入力tok(K) | B_cache作成tok(K) | B_cache読込tok(K) | B_出力tok(K) | C構造チェック | D1_結果 | D1_重大 | D1_軽微 | D1_ターン数 | D1_実行時間(秒) | D1_コスト($) | E1_ターン数 | E1_実行時間(秒) | E1_コスト($) | D2_結果 | D2_重大 | D2_軽微 | D2_ターン数 | D2_実行時間(秒) | D2_コスト($) | E2_ターン数 | E2_実行時間(秒) | E2_コスト($) | D3_結果 | D3_重大 | D3_軽微 | D3_ターン数 | D3_実行時間(秒) | D3_コスト($) | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| about-nablarch-top--s1 | 6.7 | 3.7 | 0.56 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-support_service--s1 | 5.3 | 5.4 | 1.01 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-contents | 13.6 | 5.4 | 0.40 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-versionup_policy--s1 | 19.1 | 12.1 | 0.63 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-concept-about_nablarch--s1 | 2.7 | 2.3 | 0.83 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-restriction | 3.6 | 2.3 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-contents_type | 3.5 | 1.7 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-development_policy--s1 | 5.1 | 6.5 | 1.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-platform--s1 | 1.6 | 2.2 | 1.33 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-document | 264 | 174 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-glossary--s1 | 11.2 | 11.9 | 1.06 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-guide--s1 | 5.8 | 193 | 0.03 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-aboutThis--s1 | 2.0 | 2.6 | 1.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_UnitTestOutline--s1 | 23.3 | 10.3 | 0.44 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_UnitTestOutline--s6 | 23.3 | 2.9 | 0.12 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-03_dbInputBatch | 9.3 | 7.1 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-05_fileOutputBatch | 6.0 | 4.8 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-01_userDeleteBatchSpec | 9.1 | 6.3 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-02_basic--s1 | 14.4 | 10.3 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-04_Explanation_batch | 1.2 | 222 | 0.18 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-01_userInputBatchSpec | 8.3 | 5.9 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-06_residentBatch | 2.5 | 1.7 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-04_fileInputBatch--s1 | 19.8 | 13.2 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-04_fileInputBatch--s4 | 19.8 | 6.1 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-05_UnitTestGuide | 1.4 | 182 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-mail | 1.4 | 1.5 | 1.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_RequestUnitTest-02_RequestUnitTest--s1 | 37.9 | 10.2 | 0.27 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_RequestUnitTest--s12 | 37.9 | 12.0 | 0.32 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-fileupload--s1 | 4.2 | 3.7 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-delayed_receive--s1 | 2.6 | 2.4 | 0.93 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-http_send_sync-02_RequestUnitTest--s1 | 3.0 | 4.0 | 1.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-http_real--s1 | 8.1 | 5.0 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-delayed_send--s1 | 5.0 | 4.5 | 0.90 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-batch-02_RequestUnitTest--s1 | 29.1 | 10.6 | 0.36 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-batch--s10 | 29.1 | 8.2 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-send_sync-02_RequestUnitTest--s1 | 15.1 | 9.9 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-real--s1 | 13.1 | 8.4 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-03_DealUnitTest | 1.6 | 1.6 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-delayed_receive | 390 | 235 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-http_send_sync-03_DealUnitTest--s1 | 2.9 | 2.5 | 0.84 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-delayed_send | 387 | 763 | 1.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-batch-03_DealUnitTest--s1 | 6.8 | 4.0 | 0.59 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-send_sync-03_DealUnitTest--s1 | 18.7 | 8.5 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-real | 1.6 | 1.2 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_entityUnitTest--s1 | 38.5 | 10.1 | 0.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_entityUnitTest--s7 | 38.5 | 9.9 | 0.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_entityUnitTest--s12 | 38.5 | 3.8 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_ClassUnitTest | 203 | 194 | 0.96 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_componentUnitTest--s1 | 17.9 | 8.1 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Explanation_other | 313 | 217 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_sendUserResisteredMailSpec | 1.4 | 1.2 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_basic | 5.4 | 4.0 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Explanation_mail | 787 | 222 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-03_sendUserRegisterdMail | 12.4 | 5.5 | 0.44 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-02_WindowScope | 3.3 | 3.1 | 0.92 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-08_TestTools | 298 | 192 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-02-MasterDataSetup | 176 | 180 | 1.02 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-02_ConfigMasterDataSetupTool--s1 | 3.2 | 2.8 | 0.87 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_MasterDataSetupTool--s1 | 3.1 | 2.8 | 0.89 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| java-static-analysis-02_JspStaticAnalysisInstall--s1 | 5.8 | 4.3 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| java-static-analysis-04_JspStaticAnalysis | 151 | 186 | 1.23 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| java-static-analysis-01_JspStaticAnalysis--s1 | 14.0 | 10.6 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01-HttpDumpTool | 189 | 189 | 1.00 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-02_SetUpHttpDumpTool--s1 | 3.3 | 3.7 | 1.12 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_HttpDumpTool--s1 | 3.7 | 5.5 | 1.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-03-HtmlCheckTool--s1 | 8.2 | 7.7 | 0.94 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| java-static-analysis-05_JavaStaticAnalysis | 2.3 | 1.9 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| java-static-analysis-UnpublishedApi--s1 | 16.9 | 12.0 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-01_NablarchOutline | 14.5 | 9.6 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-06_initial_view--s1 | 9.9 | 6.5 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-03_datasetup--s1 | 2.9 | 2.4 | 0.84 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-03_DevelopmentStep | 1.8 | 1.7 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-08_complete--s1 | 11.3 | 4.2 | 0.38 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-05_create_form--s1 | 8.8 | 4.3 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-07_confirm_view--s1 | 6.8 | 4.4 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_spec--s1 | 7.6 | 4.2 | 0.56 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-04_generate_form_base--s1 | 4.6 | 3.4 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-04_Explanation_messaging | 536 | 237 | 0.44 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-01_userRegisterMessageReceiveSpec--s1 | 4.5 | 3.7 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-02_basic-04_Explanation_delayed_receive--s1 | 2.6 | 2.3 | 0.90 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-04_Explanation_delayed_receive | 882 | 255 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-03_mqDelayedReceive--s1 | 11.1 | 8.4 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-02_basic-04_Explanation_http_send_sync | 2.5 | 2.4 | 0.96 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-04_Explanation_http_send_sync | 889 | 259 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-01_userSendSyncMessageSpec | 9.2 | 5.7 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-03_userSendSyncMessageAction--s1 | 15.4 | 10.0 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-02_basic-04_Explanation_delayed_send--s1 | 4.1 | 3.7 | 0.90 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-04_Explanation_delayed_send | 878 | 252 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-01_userDeleteInfoMessageSendSpec--s1 | 3.9 | 3.0 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-03_mqDelayedSend--s1 | 12.3 | 8.2 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-02_basic | 4.5 | 2.7 | 0.59 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-04_Explanation_send_sync | 877 | 249 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-01_userSendSyncMessageSpec | 8.5 | 5.7 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-03_userSendSyncMessageAction--s1 | 8.1 | 7.2 | 0.89 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-03_userQueryMessageAction | 4.5 | 3.7 | 0.83 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-01_userResisterMessageSpec | 9.0 | 7.2 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-02_basic-04_Explanation_http_real | 1.6 | 1.7 | 1.02 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-04_Explanation_http_real | 886 | 254 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-03_userQueryMessageAction | 4.5 | 3.7 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-01_userResisterMessageSpec | 8.9 | 6.7 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-02_basic-04_Explanation_real--s1 | 6.4 | 7.6 | 1.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-04_Explanation_real | 874 | 244 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_DbAccessTest--s1 | 21.5 | 10.5 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_DbAccessTest--s14 | 21.5 | 5.2 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-RequestUnitTest_real--s1 | 10.7 | 8.1 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-06_TestFWGuide | 394 | 204 | 0.52 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-RequestUnitTest_send_sync--s1 | 8.4 | 6.8 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-04_MasterDataRestore--s1 | 7.0 | 6.9 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-RequestUnitTest_http_send_sync | 1.3 | 1.0 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_Abstract--s1 | 33.9 | 5.5 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-01_Abstract--s8 | 33.9 | 10.4 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_RequestUnitTest-06_TestFWGuide--s1 | 33.8 | 10.5 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-02_RequestUnitTest--s7 | 33.8 | 8.6 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-RequestUnitTest_batch--s1 | 12.4 | 9.2 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-03_Tips--s1 | 30.8 | 6.2 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-03_Tips--s10 | 30.8 | 11.3 | 0.37 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-03_Tips--s31 | 30.8 | 2.9 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_sampleApplicationExplanation--s1 | 8.7 | 7.0 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-09_examples | 475 | 187 | 0.39 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-04_validation--s1 | 30.6 | 8.9 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-04_validation--s8 | 30.6 | 8.3 | 0.27 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-02_basic--s1 | 11.4 | 8.1 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-04_Explanation | 1.1 | 229 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-06_sharingInputAndConfirmationJsp--s1 | 6.1 | 5.2 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-07_insert--s1 | 21.8 | 10.5 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-07_insert--s9 | 21.8 | 168 | 0.01 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-12_keitai--s1 | 8.1 | 4.4 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-05_screenTransition--s1 | 4.3 | 5.2 | 1.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-08_utilities | 613 | 571 | 0.93 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-03_listSearch--s1 | 22.6 | 8.7 | 0.38 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-03_listSearch--s10 | 22.6 | 5.5 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-11_exclusiveControl--s1 | 9.9 | 5.5 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-10_submitParameter--s1 | 7.6 | 6.7 | 0.89 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Other--s1 | 21.1 | 5.8 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Other--s14 | 21.1 | 4.0 | 0.19 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Validation--s1 | 15.6 | 8.5 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Validation--s10 | 15.6 | 4.3 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Log | 45 | 146 | 3.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-Web_Log--s1 | 6.7 | 5.2 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-DB | 62 | 157 | 2.53 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s1 | 53.9 | 7.9 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s8 | 53.9 | 5.5 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s12 | 53.9 | 7.9 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s16 | 53.9 | 1.9 | 0.04 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s18 | 53.9 | 14.5 | 0.27 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-01_DbAccessSpec_Example--s19 | 53.9 | 248 | 0.00 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-CustomTag--s1 | 1.7 | 192 | 0.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-basic--s1 | 36.5 | 5.7 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-basic--s8 | 36.5 | 10.7 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-basic--s9 | 36.5 | 1.2 | 0.03 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-screenTransition--s1 | 24.2 | 7.5 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-screenTransition--s8 | 24.2 | 6.8 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-function--s1 | 62.6 | 6.3 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-function--s4 | 62.6 | 9.0 | 0.14 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-function--s10 | 62.6 | 10.2 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-function--s11 | 62.6 | 6.3 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-inputAndOutput--s1 | 50.1 | 6.5 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-inputAndOutput--s3 | 50.1 | 6.5 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-inputAndOutput--s8 | 50.1 | 8.2 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-source--s1 | 1.8 | 173 | 0.09 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-faq--s1 | 916 | 152 | 0.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-1-faq | 140 | 150 | 1.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-1 | 140 | 149 | 1.06 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-1-faq | 140 | 145 | 1.04 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-1-faq | 140 | 150 | 1.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-1-faq | 425 | 190 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-doc--s1 | 22.7 | 7.2 | 0.32 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-tool | 5.8 | 4.2 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_EntityGenerator--s1 | 25.7 | 17.5 | 0.68 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_EntityGenerator--s15 | 25.7 | 5.3 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_JspVerifier--s1 | 10.1 | 7.9 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-PublishedApiConfigGenerator--s1 | 6.7 | 4.3 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-ShellGenerator | 1.0 | 1.5 | 1.52 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-02_SetUpJspGeneratorTool--s1 | 3.6 | 4.4 | 1.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_JspGenerator | 10.8 | 8.8 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_AuthGenerator--s1 | 12.8 | 11.1 | 0.87 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-ConfigGenerator--s1 | 8.4 | 7.6 | 0.90 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-fw--s1 | 3.3 | 185 | 0.05 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-determining_stereotypes | 5.1 | 3.1 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-basic_policy | 437 | 160 | 0.37 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-introduction | 16.3 | 4.1 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-overview_of_NAF--s1 | 11.3 | 5.3 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-platform | 882 | 1.8 | 2.09 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-link | 9.7 | 159 | 0.02 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-bigdecimal | 1.5 | 1.6 | 1.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-PostResubmitPreventHandler--s1 | 6.9 | 5.0 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ForwardingHandler--s1 | 5.9 | 4.3 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ProcessStopHandler--s1 | 7.8 | 5.3 | 0.68 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MessagingAction--s1 | 6.2 | 4.6 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ThreadContextHandler--s1 | 4.8 | 4.3 | 0.88 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpResponseHandler--s1 | 20.2 | 9.4 | 0.46 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-RequestHandlerEntry--s1 | 10.0 | 5.8 | 0.58 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpMessagingResponseBuildingHandler--s1 | 6.5 | 5.0 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-FileBatchAction--s1 | 8.2 | 6.0 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-LoopHandler--s1 | 8.6 | 5.6 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-KeitaiAccessHandler--s1 | 5.9 | 3.8 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-handler | 1.9 | 167 | 0.09 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ResourceMapping--s1 | 10.4 | 6.3 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpRequestJavaPackageMapping--s1 | 4.3 | 2.8 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-AsyncMessageReceiveAction--s1 | 8.3 | 4.7 | 0.57 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MessagingContextHandler--s1 | 5.1 | 3.4 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MultiThreadExecutionHandler--s1 | 9.7 | 5.9 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-Main--s1 | 11.3 | 7.9 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-AsyncMessageSendAction--s1 | 10.3 | 7.1 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-SessionConcurrentAccessHandler--s1 | 7.6 | 4.7 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-BatchAction--s1 | 10.0 | 7.2 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpErrorHandler--s1 | 13.2 | 6.8 | 0.52 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-NablarchTagHandler--s1 | 10.5 | 6.3 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpCharacterEncodingHandler--s1 | 5.2 | 4.0 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpMessagingErrorHandler--s1 | 14.0 | 7.5 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-NoInputDataBatchAction--s1 | 5.8 | 5.0 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpRewriteHandler--s1 | 21.3 | 10.6 | 0.50 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-RequestPathJavaPackageMapping--s1 | 16.1 | 8.2 | 0.51 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ThreadContextClearHandler--s1 | 2.2 | 2.3 | 1.04 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-NablarchServletContextListener--s1 | 4.3 | 3.2 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpMethodBinding--s1 | 25.8 | 13.3 | 0.52 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpMethodBinding--s8 | 25.8 | 5.7 | 0.22 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-PermissionCheckHandler--s1 | 6.6 | 4.7 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpAccessLogHandler--s1 | 4.5 | 3.3 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-HttpMessagingRequestParsingHandler--s1 | 7.0 | 5.5 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-WebFrontController--s1 | 4.3 | 3.4 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ProcessResidentHandler--s1 | 6.6 | 5.0 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-DbConnectionManagementHandler--s1 | 6.3 | 3.8 | 0.59 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-FileRecordWriterDisposeHandler--s1 | 3.0 | 2.7 | 0.91 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MessageReplyHandler--s1 | 6.5 | 4.5 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MultipartHandler--s1 | 9.4 | 6.4 | 0.68 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-DuplicateProcessCheckHandler--s1 | 7.1 | 4.9 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-MessageResendHandler--s1 | 11.9 | 8.2 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-ServiceAvailabilityCheckHandler--s1 | 5.6 | 3.8 | 0.68 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-RetryHandler--s1 | 11.9 | 6.9 | 0.58 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-StatusCodeConvertHandler--s1 | 4.0 | 2.8 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-GlobalErrorHandler--s1 | 8.9 | 4.3 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-TransactionManagementHandler--s1 | 10.7 | 7.0 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-RequestThreadLoopHandler--s1 | 13.5 | 6.4 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| handlers-DataReadHandler--s1 | 5.8 | 4.7 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_ServiceAvailability--s1 | 15.9 | 12.7 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_ExclusiveControl--s1 | 34.6 | 12.1 | 0.35 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_ExclusiveControl--s17 | 34.6 | 9.5 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_CodeManager--s1 | 33.9 | 13.4 | 0.39 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_CodeManager--s21 | 33.9 | 9.9 | 0.29 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-99_Utility--s1 | 9.9 | 4.0 | 0.40 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_WebView--s1 | 8.7 | 7.8 | 0.89 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-06_IdGenerator--s1 | 20.0 | 11.7 | 0.59 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_HowToSettingCustomTag--s1 | 18.1 | 6.8 | 0.37 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_DisplayTag--s1 | 61.5 | 10.4 | 0.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_DisplayTag--s8 | 61.5 | 5.9 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_DisplayTag--s12 | 61.5 | 6.9 | 0.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_DisplayTag--s20 | 61.5 | 4.2 | 0.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_CustomTag--s1 | 6.7 | 5.3 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_SubmitTag--s1 | 54.6 | 9.6 | 0.18 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_SubmitTag--s14 | 54.6 | 11.1 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_SubmitTag--s18 | 54.6 | 8.0 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_FormTag--s1 | 30.2 | 14.7 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_FormTag--s16 | 30.2 | 7.4 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_FacilitateTag--s1 | 6.9 | 6.1 | 0.88 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_BasicRules--s1 | 14.2 | 10.0 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_OtherTag | 2.4 | 1.9 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_FormTagList--s1 | 25.5 | 12.1 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_FormTagList--s12 | 25.5 | 4.2 | 0.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_DbAccessSpec--s1 | 22.0 | 9.9 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_DbAccessSpec--s2 | 22.0 | 6.1 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_Repository--s1 | 10.6 | 8.4 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_StaticDataCache--s1 | 28.1 | 13.3 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_StaticDataCache--s22 | 28.1 | 7.1 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-06_SystemTimeProvider--s1 | 19.3 | 11.8 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-03_TransactionManager--s1 | 4.6 | 4.5 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_Log--s1 | 99.1 | 14.6 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_Log--s13 | 99.1 | 8.0 | 0.08 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_Log--s17 | 99.1 | 17.2 | 0.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_Log--s26 | 99.1 | 15.2 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_Message--s1 | 21.5 | 9.8 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_Message--s18 | 21.5 | 4.2 | 0.19 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_Validation--s1 | 6.7 | 5.2 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_SqlLog--s1 | 27.0 | 14.4 | 0.53 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_SqlLog--s17 | 27.0 | 6.6 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-03_PerformanceLog--s1 | 11.1 | 7.9 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_HttpAccessLog--s1 | 26.2 | 14.1 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_HttpAccessLog--s6 | 26.2 | 5.4 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_04_Repository_override--s1 | 18.8 | 15.5 | 0.83 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_04_Repository_override--s17 | 18.8 | 1.1 | 0.06 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_01_Repository_config--s1 | 64.8 | 8.6 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_01_Repository_config--s10 | 64.8 | 7.4 | 0.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_01_Repository_config--s18 | 64.8 | 13.3 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_01_Repository_config--s28 | 64.8 | 7.3 | 0.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_02_Repository_initialize | 3.9 | 2.4 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-02_03_Repository_factory | 2.4 | 2.3 | 0.96 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_TransactionConnectionName--s1 | 9.0 | 6.3 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_QueryCache--s1 | 24.8 | 11.4 | 0.46 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_QueryCache--s14 | 24.8 | 10.0 | 0.40 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_TransactionTimeout--s1 | 9.8 | 5.3 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Connection--s1 | 31.2 | 10.2 | 0.33 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Connection--s6 | 31.2 | 7.0 | 0.23 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Statement--s1 | 34.4 | 9.5 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Statement--s7 | 34.4 | 5.6 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_ObjectSave--s1 | 51.5 | 2.6 | 0.05 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_ObjectSave--s4 | 51.5 | 11.1 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_ObjectSave--s5 | 51.5 | 11.4 | 0.22 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_03_validation_recursive--s1 | 18.6 | 10.3 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_03_validation_recursive--s8 | 18.6 | 4.0 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_01_validation_architecture--s1 | 12.9 | 9.3 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_05_custom_validator--s1 | 12.5 | 8.3 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_06_direct_call_of_validators--s1 | 2.4 | 2.4 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_04_validation_form_inheritance--s1 | 14.0 | 6.5 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_02_validation_usage--s1 | 31.8 | 11.1 | 0.35 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-08_02_validation_usage--s8 | 31.8 | 6.3 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-06_FileUpload | 936 | 1.0 | 1.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_FileDownload--s1 | 34.5 | 17.0 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_FileDownload--s15 | 34.5 | 1.7 | 0.05 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-07_UserAgent--s1 | 9.1 | 5.6 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-messaging | 1.4 | 1.8 | 1.30 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-messaging_receive--s1 | 17.6 | 10.7 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-batch_resident_thread_sync--s1 | 27.5 | 6.8 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| http-messaging-messaging_http--s1 | 16.1 | 10.4 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| mom-messaging-messaging_request_reply--s1 | 23.5 | 15.5 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-concept-architectural_pattern--s1 | 58.1 | 7.7 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-concept--s8 | 58.1 | 11.6 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-concept--s13 | 58.1 | 11.2 | 0.19 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-web_gui--s1 | 16.5 | 9.8 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-batch_resident--s1 | 24.2 | 13.9 | 0.57 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-batch-architectural_pattern | 791 | 994 | 1.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-batch_single_shot--s1 | 12.2 | 7.9 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-04_RDBMS_Policy--s1 | 9.9 | 4.8 | 0.49 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-reader | 312 | 171 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-ResumeDataReader--s1 | 9.5 | 6.4 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-MessageReader | 4.5 | 2.8 | 0.63 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-DatabaseRecordReader | 2.0 | 1.6 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-FwHeaderReader | 5.2 | 3.2 | 0.63 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-ValidatableFileDataReader--s1 | 15.5 | 7.8 | 0.50 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-FileDataReader | 2.3 | 1.6 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| readers-DatabaseTableQueueReader | 3.4 | 2.5 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-file_access--s1 | 10.7 | 5.0 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-messaging_sender_util--s1 | 25.4 | 14.0 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-enterprise_messaging_mom--s1 | 34.3 | 9.7 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-enterprise_messaging_mom--s10 | 34.3 | 9.0 | 0.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-validation_basic_validators--s1 | 31.9 | 10.2 | 0.32 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-validation_basic_validators--s6 | 31.9 | 9.9 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-enterprise_messaging_overview--s1 | 3.9 | 2.8 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-enterprise_messaging_http--s1 | 18.2 | 8.6 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-enterprise_messaging_http--s12 | 18.2 | 3.7 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-validation_advanced_validators--s1 | 7.0 | 4.7 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-messaging_sending_batch--s1 | 15.3 | 6.6 | 0.43 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-record_format--s1 | 93.2 | 5.1 | 0.06 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-record_format--s6 | 93.2 | 7.3 | 0.08 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-record_format--s7 | 93.2 | 12.0 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-record_format--s9 | 93.2 | 6.7 | 0.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-record_format--s11 | 93.2 | 15.2 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-validation-core_library | 1.8 | 187 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-FAQ | 732 | 151 | 0.21 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-batch-batch | 138 | 171 | 1.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-4 | 3.2 | 2.4 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-8 | 1.2 | 1.0 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-9 | 991 | 1.4 | 1.41 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-5 | 1.8 | 1.7 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-2 | 2.7 | 2.1 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-7 | 2.2 | 1.4 | 0.65 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-3 | 1.0 | 1013 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-1-FAQ | 4.5 | 2.7 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| nablarch-batch-6 | 945 | 937 | 0.99 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-test | 108 | 167 | 1.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-4 | 2.4 | 1.1 | 0.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-5 | 3.5 | 2.0 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| testing-framework-3 | 2.5 | 1.6 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-validation-validation | 130 | 188 | 1.45 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-2 | 1.2 | 1.0 | 0.88 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-3 | 1.8 | 1.4 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-1-FAQ | 2.3 | 1.3 | 0.57 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-all | 125 | 165 | 1.32 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-4 | 693 | 807 | 1.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-5 | 1.7 | 1.1 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-2 | 1.0 | 856 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-3 | 3.3 | 1.1 | 0.32 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-1-FAQ | 1.8 | 1.6 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-6 | 7.0 | 4.0 | 0.56 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-11 | 1.2 | 1.2 | 0.96 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-14 | 1.1 | 1.1 | 0.98 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-web | 193 | 182 | 0.94 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-15 | 2.0 | 1.7 | 0.83 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-4 | 867 | 791 | 0.91 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-12 | 2.6 | 1.9 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-13 | 2.4 | 2.0 | 0.83 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-8 | 963 | 772 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-9 | 2.3 | 1.9 | 0.85 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-5 | 1.4 | 812 | 0.56 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-7 | 671 | 231 | 0.34 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-3 | 1.7 | 1.3 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-10 | 3.0 | 2.6 | 0.87 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-1-FAQ | 2.3 | 2.0 | 0.87 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-6 | 1.2 | 1.2 | 1.00 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-16 | 858 | 1.1 | 1.26 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-source--s1 | 724 | 179 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-about--s1 | 1.7 | 1.7 | 1.00 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-00_Introduction--s1 | 4.1 | 3.9 | 0.94 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_Utility--s1 | 23.9 | 5.3 | 0.22 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_Utility--s6 | 23.9 | 11.3 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_Encryption--s1 | 8.5 | 6.2 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_ConnectionFramework--s1 | 17.6 | 8.5 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_ConnectionFramework--s10 | 17.6 | 2.6 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-doc-workflow--s1 | 6.1 | 5.6 | 0.92 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-toc-workflow | 38 | 150 | 3.95 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowInstanceElement--s1 | 2.8 | 3.4 | 1.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowProcessElement--s1 | 10.0 | 10.3 | 1.03 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowArchitecture--s1 | 67.2 | 6.8 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowArchitecture--s2 | 67.2 | 10.5 | 0.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowArchitecture--s6 | 67.2 | 8.5 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowApplicationApi--s1 | 33.5 | 11.4 | 0.34 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowApplicationApi--s22 | 33.5 | 9.1 | 0.27 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-WorkflowProcessSample--s1 | 9.3 | 9.6 | 1.03 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-doc | 2.2 | 1.5 | 0.68 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-toc-sample_application | 38 | 183 | 4.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-SampleApplicationViewImplementation--s1 | 7.2 | 4.3 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-SampleApplicationExtension--s1 | 2.7 | 2.3 | 0.88 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-SampleApplicationDesign--s1 | 4.6 | 5.6 | 1.22 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-SampleApplicationImplementation--s1 | 13.7 | 8.4 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| workflow-doc-tool--s1 | 26.5 | 19.4 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-0402_ExtendedFieldType--s1 | 8.2 | 7.0 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-02_ExtendedValidation--s1 | 11.5 | 9.0 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-doc | 714 | 172 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-useragent_sample--s1 | 16.2 | 5.3 | 0.33 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-useragent_sample--s3 | 16.2 | 9.0 | 0.56 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-06_Captcha--s1 | 19.3 | 10.3 | 0.53 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-01_Authentication--s1 | 17.6 | 11.0 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-03_ListSearchResult--s1 | 73.4 | 7.6 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-03_ListSearchResult--s16 | 73.4 | 7.4 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-03_ListSearchResult--s18 | 73.4 | 9.8 | 0.13 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-03_ListSearchResult--s24 | 73.4 | 14.6 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-08_HtmlMail--s1 | 17.5 | 14.2 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-07_UserAgent--s1 | 20.3 | 12.3 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-04_ExtendedFormatter--s1 | 7.5 | 6.2 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-0401_ExtendedDataFormatter--s1 | 9.5 | 8.2 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-05_DbFileManagement--s1 | 10.5 | 8.1 | 0.77 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-0101_PBKDF2PasswordEncryptor--s1 | 9.6 | 5.0 | 0.52 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-known_issues | 542 | 161 | 0.30 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-doc | 1.5 | 170 | 0.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-plugin_build--s1 | 47.6 | 11.4 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-plugin_build--s12 | 47.6 | 11.3 | 0.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-plugin_build--s24 | 47.6 | 5.6 | 0.12 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-reference_js_framework--s1 | 1.7 | 3.1 | 1.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-related_documents | 1022 | 1.2 | 1.24 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-about_this_book | 345 | 164 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-book_layout | 1.3 | 160 | 0.12 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-testing--s1 | 11.4 | 9.6 | 0.84 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-directory_layout | 7.5 | 4.8 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-plugins--s1 | 10.1 | 8.0 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-reference_ui_plugin | 35.0 | 21.7 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-reference_ui_standard--s1 | 28.4 | 14.1 | 0.50 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-reference_ui_standard--s20 | 28.4 | 5.5 | 0.19 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-box_title | 2.4 | 1.9 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-column_label | 10.5 | 5.7 | 0.55 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_label_block | 3.9 | 2.0 | 0.51 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_condition | 7.5 | 5.3 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-column_checkbox | 8.1 | 5.7 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_checkbox | 6.7 | 4.9 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-button_submit--s1 | 8.4 | 7.8 | 0.93 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_send_request | 6.0 | 4.4 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-reference_jsp_widgets | 1.7 | 187 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_alert | 4.4 | 3.7 | 0.84 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_label_id_value | 4.2 | 3.1 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-column_radio | 6.4 | 4.9 | 0.75 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_label | 6.4 | 4.4 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-table_row | 7.8 | 7.2 | 0.92 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-button_block | 1.8 | 2.0 | 1.12 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-column_code | 10.4 | 6.1 | 0.58 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_hint | 2.8 | 2.8 | 0.98 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_toggle_readonly | 4.2 | 3.8 | 0.91 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-column_link | 7.7 | 5.6 | 0.72 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-box_img | 11.9 | 7.0 | 0.58 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_desc | 1.5 | 1.4 | 0.95 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_password | 5.6 | 4.2 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_pulldown | 6.6 | 4.7 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_listen_subwindow | 4.3 | 3.2 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_block | 6.6 | 4.1 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_file | 3.5 | 2.6 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-link_submit--s1 | 4.4 | 4.1 | 0.92 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_code_pulldown | 8.4 | 5.5 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_textarea | 5.5 | 4.0 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_write_to | 5.0 | 3.4 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_author | 2.4 | 2.5 | 1.04 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_base | 3.0 | 3.0 | 1.02 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_listen | 9.8 | 7.0 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_code_radio | 8.0 | 4.9 | 0.61 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_layout | 4.2 | 3.4 | 0.80 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_calendar | 6.0 | 4.3 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-table_search_result | 6.6 | 4.8 | 0.73 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_confirm | 4.6 | 4.1 | 0.88 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_updated_date | 2.4 | 2.6 | 1.07 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_listbuilder | 6.2 | 4.7 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_toggle_property | 4.1 | 3.1 | 0.74 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-tab_group--s1 | 5.6 | 3.7 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_toggle_disabled | 631 | 887 | 1.41 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-table_treelist | 8.6 | 7.2 | 0.84 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_radio | 6.3 | 4.5 | 0.71 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-box_content | 2.3 | 1.8 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-table_plain | 7.1 | 5.6 | 0.79 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_created_date | 2.4 | 2.4 | 0.97 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_text | 6.9 | 4.6 | 0.67 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_validation | 4.8 | 4.1 | 0.86 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_label_code | 7.1 | 4.9 | 0.69 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-event_window_close | 2.4 | 1.9 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-field_code_checkbox | 8.0 | 4.9 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-spec_updated_by | 2.4 | 2.6 | 1.08 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-ui_development_workflow--s1 | 2.8 | 1.9 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-required_knowledge | 84 | 173 | 2.06 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-grand_design--s1 | 5.8 | 3.7 | 0.64 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-intention--s1 | 8.7 | 8.3 | 0.95 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-jsp_widgets--s1 | 20.8 | 12.2 | 0.59 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-configuration_files--s1 | 2.5 | 2.2 | 0.90 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-css_framework--s1 | 13.1 | 10.3 | 0.78 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-inbrowser_jsp_rendering--s1 | 15.0 | 7.2 | 0.48 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-multicol_css_framework--s1 | 19.6 | 7.2 | 0.37 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-multicol_css_framework--s10 | 19.6 | 5.2 | 0.27 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-jsp_page_templates--s1 | 21.6 | 12.9 | 0.60 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-generating_form_class-internals--s1 | 48.8 | 9.6 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-showing_specsheet_view--s1 | 5.6 | 3.9 | 0.70 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-js_framework--s1 | 23.1 | 12.3 | 0.53 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-js_framework--s15 | 23.1 | 5.7 | 0.25 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-architecture_overview--s1 | 8.1 | 4.7 | 0.58 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-modifying_code_and_testing--s1 | 9.3 | 7.6 | 0.82 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-initial_setup--s1 | 18.2 | 9.9 | 0.54 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-initial_setup--s7 | 18.2 | 1.9 | 0.10 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-update_bundle_plugin--s1 | 9.1 | 6.0 | 0.66 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-redistribution--s1 | 5.0 | 6.1 | 1.23 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-guide--s1 | 2.7 | 2.8 | 1.04 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-template_list--s1 | 18.4 | 5.7 | 0.31 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-develop_environment--s1 | 1.8 | 1.7 | 0.94 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-widget_list | 9.1 | 4.3 | 0.47 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-project_structure | 4.0 | 2.0 | 0.50 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-create_screen_item_list | 1.7 | 1.4 | 0.85 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-generating_form_class-widget_usage--s1 | 1.8 | 2.0 | 1.11 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| ui-framework-create_with_widget--s1 | 12.6 | 10.2 | 0.81 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| biz-samples-doc--s1 | 7.5 | 8.8 | 1.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-top-nablarch--s1 | 33.0 | 178 | 0.01 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-top-nablarch--s2 | 33.0 | 5.0 | 0.15 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-top-nablarch--s3 | 33.0 | 1.8 | 0.05 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-09_confirm_operation | 856 | 1.2 | 1.46 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| web-application-02_flow | 270 | 582 | 2.16 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_FailureLog--s1 | 45.9 | 15.8 | 0.34 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_FailureLog--s7 | 45.9 | 8.0 | 0.17 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-01_FailureLog--s11 | 45.9 | 4.2 | 0.09 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| about-nablarch-02_I18N | 10.5 | 8.0 | 0.76 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-file_upload_utility | 18.7 | 9.9 | 0.53 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-mail--s1 | 39.7 | 11.1 | 0.28 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-mail--s6 | 39.7 | 18.5 | 0.46 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_DefInfoGenerator--s1 | 26.8 | 16.8 | 0.62 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| toolbox-01_DefInfoGenerator--s13 | 26.8 | 12.4 | 0.46 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-thread_context--s1 | 53.0 | 21.4 | 0.40 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-thread_context--s9 | 53.0 | 10.6 | 0.20 | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-05_MessagingLog | 23.8 | - | - | - | - | - | - | - | - | - | skip | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | +| libraries-04_Permission--s1 | 38.3 | 9.9 | 0.26 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 97 | 0.3420 | 2 | 47 | 0.3247 | - | - | - | 2 | 58 | 0.2190 | - | - | - | clean | 0 | 0 | 2 | 54 | 0.1866 | +| libraries-04_Permission--s10 | 38.3 | 12.8 | 0.33 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 54 | 0.3023 | 2 | 41 | 0.3236 | - | - | - | 2 | 36 | 0.2001 | 2 | 45 | 0.2515 | clean | 0 | 0 | 2 | 39 | 0.1760 | +| libraries-07_TagReference--s1 | 102.6 | 22.1 | 0.22 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 98 | 0.4011 | 2 | 91 | 0.4653 | - | - | - | 2 | 66 | 0.2657 | - | - | - | has_issues | 0 | 2 | 2 | 132 | 0.3320 | +| libraries-07_TagReference--s11 | 102.6 | 16.7 | 0.16 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 58 | 0.3305 | 2 | 58 | 0.3959 | - | - | - | 2 | 94 | 0.3009 | 2 | 57 | 0.3109 | clean | 0 | 0 | 2 | 70 | 0.2366 | +| libraries-07_TagReference--s24 | 102.6 | 15.5 | 0.15 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 50 | 0.2069 | - | - | - | - | - | - | 2 | 42 | 0.1818 | - | - | - | clean | 0 | 0 | 2 | 43 | 0.1925 | +| libraries-07_TagReference--s39 | 102.6 | 11.7 | 0.11 | - | - | - | - | - | - | - | pass | - | - | - | 2 | 63 | 0.2156 | - | - | - | - | - | - | 2 | 49 | 0.1861 | - | - | - | clean | 0 | 0 | 2 | 48 | 0.1859 | diff --git a/tools/knowledge-creator/reports/20260331T171824.json b/tools/knowledge-creator/reports/20260331T171824.json new file mode 100644 index 000000000..5c47bf8cd --- /dev/null +++ b/tools/knowledge-creator/reports/20260331T171824.json @@ -0,0 +1,161 @@ +{ + "meta": { + "run_id": "20260331T171824", + "version": "1.4", + "started_at": "2026-03-31T08:18:24.883740+00:00", + "phases": "ACDEM", + "max_rounds": 2, + "concurrency": 4, + "test_mode": false, + "finished_at": "2026-03-31T08:27:16.154388+00:00", + "duration_sec": 531 + }, + "phase_b": null, + "phase_c": { + "total": 6, + "pass": 6, + "fail": 0, + "pass_rate": 1.0 + }, + "phase_d_rounds": [ + { + "round": 1, + "total": 6, + "clean": 2, + "has_issues": 4, + "clean_rate": 0.333, + "findings": { + "total": 14, + "critical": 0, + "minor": 14, + "by_category": { + "hints_missing": 13, + "omission": 1 + } + }, + "metrics": { + "count": 6, + "tokens": { + "input": 18, + "cache_creation": 321463, + "cache_read": 410983, + "output": 31302 + }, + "cost_usd": 1.7984, + "avg_turns": 2.0, + "avg_duration_sec": 70.4, + "p95_duration_sec": 97.0 + } + }, + { + "round": 2, + "total": 6, + "clean": 4, + "has_issues": 2, + "clean_rate": 0.667, + "findings": { + "total": 3, + "critical": 0, + "minor": 3, + "by_category": { + "hints_missing": 3 + } + }, + "metrics": { + "count": 12, + "tokens": { + "input": 36, + "cache_creation": 544405, + "cache_read": 922366, + "output": 55570 + }, + "cost_usd": 3.1519, + "avg_turns": 2.0, + "avg_duration_sec": 64.2, + "p95_duration_sec": 97.0 + } + } + ], + "phase_e_rounds": [ + { + "round": 1, + "fixed": 4, + "error": 0, + "metrics": { + "count": 4, + "tokens": { + "input": 12, + "cache_creation": 286130, + "cache_read": 233637, + "output": 24423 + }, + "cost_usd": 1.5095, + "avg_turns": 2.0, + "avg_duration_sec": 59.8, + "p95_duration_sec": 58.8 + } + }, + { + "round": 2, + "fixed": 1, + "error": 1, + "metrics": { + "count": 6, + "tokens": { + "input": 18, + "cache_creation": 376364, + "cache_read": 397818, + "output": 36072 + }, + "cost_usd": 2.0718, + "avg_turns": 2.0, + "avg_duration_sec": 57.1, + "p95_duration_sec": 58.8 + } + } + ], + "totals": { + "tokens": { + "input": 84, + "cache_creation": 1528362, + "cache_read": 1964804, + "output": 147367 + }, + "cost_usd": 8.5316 + }, + "final_verification": { + "round": 3, + "phase_c": { + "total": 6, + "pass": 6, + "fail": 0 + }, + "phase_d": { + "total": 6, + "clean": 5, + "has_issues": 1, + "findings": { + "total": 2, + "critical": 0, + "minor": 2, + "by_category": { + "omission": 1, + "hints_missing": 1 + } + }, + "metrics": { + "count": 18, + "tokens": { + "input": 54, + "cache_creation": 742661, + "cache_read": 1458513, + "output": 82589 + }, + "cost_usd": 4.4615, + "avg_turns": 2.0, + "avg_duration_sec": 64.4, + "p95_duration_sec": 98.4 + } + } + } +} \ No newline at end of file diff --git a/tools/knowledge-creator/reports/20260331T171824.md b/tools/knowledge-creator/reports/20260331T171824.md new file mode 100644 index 000000000..43cd6168f --- /dev/null +++ b/tools/knowledge-creator/reports/20260331T171824.md @@ -0,0 +1,118 @@ +# Knowledge Creator レポート + +| 項目 | 値 | +|------|-------| +| 実行ID | `20260331T171824` | +| 開始時刻 | 2026-03-31 17:18:24 JST | +| 終了時刻 | 2026-03-31 17:27:16 JST | +| 実行時間 | 531秒 | +| バージョン | nabledge-1.4 | +| フェーズ | ACDEM | +| 最大ラウンド数 | 2 | +| 並列数 | 4 | +| テストモード | なし | + +## フェーズC: 構造チェック + +| 指標 | 値 | +|--------|-------| +| 対象件数 | 6 | +| 合格件数 | 6 | +| 不合格件数 | 0 | +| 合格率 | 100.0% | + +## フェーズD/E: 内容チェックと修正 + +### ラウンド 1 + +**フェーズD (内容チェック)** + +| 指標 | 値 | +|--------|-------| +| 対象件数 | 6 | +| 問題なし件数 | 2 | +| 問題あり件数 | 4 | +| 問題なし率 | 33.3% | +| 指摘事項 合計 | 14 | +| 指摘事項 重大 | 0 | +| 指摘事項 軽微 | 14 | +| カテゴリ別 | hints_missing:13, omission:1 | +| APIコスト | $1.7984 | +| 平均ターン数 | 2.0 | +| 平均実行時間 | 70.4秒 | + +**フェーズE (修正)** + +| 指標 | 値 | +|--------|-------| +| 修正件数 | 4 | +| エラー件数 | 0 | +| APIコスト | $1.5095 | +| 平均ターン数 | 2.0 | +| 平均実行時間 | 59.8秒 | + +### ラウンド 2 + +**フェーズD (内容チェック)** + +| 指標 | 値 | +|--------|-------| +| 対象件数 | 6 | +| 問題なし件数 | 4 | +| 問題あり件数 | 2 | +| 問題なし率 | 66.7% | +| 指摘事項 合計 | 3 | +| 指摘事項 重大 | 0 | +| 指摘事項 軽微 | 3 | +| カテゴリ別 | hints_missing:3 | +| APIコスト | $3.1519 | +| 平均ターン数 | 2.0 | +| 平均実行時間 | 64.2秒 | + +**フェーズE (修正)** + +| 指標 | 値 | +|--------|-------| +| 修正件数 | 1 | +| エラー件数 | 1 | +| APIコスト | $2.0718 | +| 平均ターン数 | 2.0 | +| 平均実行時間 | 57.1秒 | + +## ファイルサイズ比較 (RST -> JSON) + +| 指標 | 値 | +|--------|-------| +| サイズデータありファイル数 | 552 | +| RST合計サイズ | 9297.4KB | +| JSON合計サイズ | 3141.0KB | +| 全体比率 (JSON/RST) | 0.34 | +| RST平均サイズ | 16.8KB | +| JSON平均サイズ | 5.7KB | + +## 合計 + +| 指標 | 値 | +|--------|-------| +| 総APIコスト | $8.5316 | +| トークン数 入力 | 84 | +| トークン数 キャッシュ作成 | 1528.4K | +| トークン数 キャッシュ読込 | 1964.8K | +| トークン数 出力 | 147.4K | + +## 最終検証 (Round 3) + +**Phase C**: 6/6 pass, 0 fail + +**Phase D**: 5/6 clean, 1 has_issues + +| 指標 | 値 | +|--------|-------| +| 指摘事項 合計 | 2 | +| 指摘事項 重大 | 0 | +| 指摘事項 軽微 | 2 | +| カテゴリ別 | omission:1, hints_missing:1 | + +--- + +*ファイル別詳細は `20260331T171824-files.md` を参照してください。*