Class S101UpdateApplicator
Applies S-101 sequential updates (application profile 2) onto a base
cell (profile 1) to produce an "up-to-date" document, mirroring the
pure document-to-document merge of EncDotNet.S57.S57Document.ApplyChanges.
public static class S101UpdateApplicator
- Inheritance
-
S101UpdateApplicator
- Inherited Members
Remarks
Records are keyed by record id (RCID) within each record class. Record-level
RUIN selects insert / delete / modify; for feature and information
records, Modify merges attributes and associations using their inlined
per-element instructions (ATIN / SAUI / FAUI / IUIN).
Spatial records (point / multi-point / curve / composite-curve / surface) carry
no inline element instructions, so Modify replaces the record wholesale.
An update whose edition (DSID/DSED) differs from the base cell's is rejected,
and application stops there; S-100 Part 10a, S-98 20.4.3.
Methods
Apply(S101Document, IReadOnlyList<S101Document>, out S101UpdateReport)
Applies an ordered list of update documents onto baseDocument,
best-effort, and reports the outcome.
public static S101Document Apply(S101Document baseDocument, IReadOnlyList<S101Document> orderedUpdates, out S101UpdateReport report)
Parameters
baseDocumentS101DocumentThe base cell (application profile
1).orderedUpdatesIReadOnlyList<S101Document>Update documents in ascending update-number order. The list may be empty (returns the base unchanged).
reportS101UpdateReportReceives a structured, best-effort outcome report.
Returns
- S101Document
The merged document. On any failure, the most up-to-date usable document produced so far (at minimum the base) is returned and the failure is noted in
report.