|
1 | 1 | /** |
2 | | - * Core ECS primitives that hold entity/component graphs and shared traversal |
3 | | - * state. |
| 2 | + * Core primitives of the <strong>legacy ECS engine</strong> — entity/component |
| 3 | + * graphs and shared traversal state for the original {@code Entity}-based |
| 4 | + * layout / pagination / render pipeline. |
4 | 5 | * |
5 | | - * <p>This package contains the foundation used by the runtime pipeline. In the |
6 | | - * normal PDF pipeline the high-level flow is:</p> |
| 6 | + * <p>This is <em>not</em> the engine behind the public API. The canonical |
| 7 | + * pipeline ({@code GraphCompose.document() -> DocumentSession -> LayoutCompiler |
| 8 | + * -> LayoutGraph -> PdfFixedLayoutBackend}) in {@code com.demcha.compose.document.*} |
| 9 | + * imports nothing from this package directly, and the former |
| 10 | + * {@code GraphCompose.pdf(...)} surface that drove the ECS has been removed. The |
| 11 | + * ECS <em>execution</em> engine — the {@code EntityManager.processSystems()} loop |
| 12 | + * and the layout / pagination / render systems it drives — is dead: it runs only |
| 13 | + * under the legacy engine regression tests.</p> |
7 | 14 | * |
8 | | - * <ol> |
9 | | - * <li>builders populate {@code Entity} graphs and attach components</li> |
10 | | - * <li>{@code LayoutSystem} resolves geometry, hierarchy depth, and layer order</li> |
11 | | - * <li>{@code PageBreaker} assigns final page-aware {@code Placement}</li> |
12 | | - * <li>a backend renderer such as {@code PdfRenderingSystemECS} consumes the resolved entities</li> |
13 | | - * </ol> |
| 15 | + * <p>One vestigial holdover keeps {@code SystemECS} and {@code EntityManager} |
| 16 | + * referenced from live code: the canonical |
| 17 | + * {@code engine.measurement.TextMeasurementSystem} still |
| 18 | + * {@code extends SystemECS} with a no-op {@code process(EntityManager)}. |
| 19 | + * Decoupling that base — so {@code engine.core} becomes genuinely unreferenced by |
| 20 | + * the canonical pipeline — is a tracked follow-up.</p> |
14 | 21 | * |
15 | | - * <p>The package is intentionally split further into subpackages with narrower |
16 | | - * responsibilities:</p> |
| 22 | + * <p>The genuinely shared engine packages are elsewhere and are <em>not</em> |
| 23 | + * deprecated: {@code engine.components} (value types), {@code engine.measurement} |
| 24 | + * (text-measurement contracts), {@code engine.font}, and |
| 25 | + * {@code engine.render} (backend-neutral render-pass contracts) are all used by |
| 26 | + * the canonical pipeline.</p> |
17 | 27 | * |
18 | | - * <ul> |
19 | | - * <li>{@code engine.layout}: low-level layout systems</li> |
20 | | - * <li>{@code engine.pagination}: page-breaking helpers</li> |
21 | | - * <li>{@code engine.measurement}: text measurement contracts</li> |
22 | | - * <li>{@code engine.render}: backend-neutral render-pass contracts and dispatch helpers</li> |
23 | | - * </ul> |
24 | | - * |
25 | | - * <p>Project policy is to keep backend-specific lifecycle concerns out of the |
26 | | - * shared engine layer wherever possible. The engine should reason in terms of |
27 | | - * resolved geometry, entity ordering, and render-session seams, while PDFBox, |
28 | | - * DOCX, or PPTX specifics stay in backend-owned packages.</p> |
| 28 | + * @deprecated Legacy ECS engine, superseded by the canonical |
| 29 | + * {@code com.demcha.compose.document.layout} pipeline. No public entry point |
| 30 | + * runs it and it is not on the canonical hot path; it is retained only for the |
| 31 | + * legacy engine regression tests (aside from the vestigial {@code SystemECS} |
| 32 | + * base of {@code TextMeasurementSystem}, a tracked cleanup) — a candidate for |
| 33 | + * removal. Do not extend it or spend optimization effort here. |
29 | 34 | */ |
| 35 | +@Deprecated |
30 | 36 | package com.demcha.compose.engine.core; |
0 commit comments