Interface IDatasetProcessorFactory
Creates an IDatasetProcessor for a dataset on the local file
system, without the caller having to know which S-100 product the file
belongs to or how that product's processor is constructed. This is the
renderer-neutral, product-agnostic seam a reusable host (e.g. the Mapsui
Map.AddS100 extension) depends on so it can turn a dropped file into a
processor while referencing neither the concrete
DatasetPipelineFactory nor any per-product assembly.
DatasetPipelineFactory is the built-in implementation.
public interface IDatasetProcessorFactory
Methods
CreateProcessor(string)
Creates a processor for the dataset file at path,
detecting the product specification from the file. Throws
NotSupportedException when the file is unrecognized
or no processor is registered for its product.
IDatasetProcessor CreateProcessor(string path)
Parameters
pathstring
Returns
CreateProcessor(string, string?)
Creates a processor for the file at path, honouring an
optional caller-declared product specification
(declaredProductSpec) — e.g. a --spec hint or an
exchange-set catalogue spec — instead of detecting the product from the
file. The default implementation ignores the declared spec and behaves
exactly like CreateProcessor(string); a factory that can map
a declared product (e.g. the bundled factory) overrides this. Defining it
on the interface lets a host request the declared-spec behaviour through
any IDatasetProcessorFactory — including a decorator that
forwards the call — rather than depending on a concrete factory type.
IDatasetProcessor CreateProcessor(string path, string? declaredProductSpec)
Parameters
pathstringPath to the dataset file on the local file system.
declaredProductSpecstringThe caller-declared product specification (e.g.
"S-101"), ornull/blank to detect the product from the file instead.
Returns
- IDatasetProcessor
The dataset processor for the file.
CreateProcessorWithFilesystemUpdates(string)
Creates a processor for the base cell file at path,
discovering and applying any sibling sequential update files that live in
the same directory (S-57 / S-101 Part 10a). Products that never carry
.000 sequential updates, or a base cell with no updates on disk,
behave identically to CreateProcessor(string).
IDatasetProcessor CreateProcessorWithFilesystemUpdates(string path)
Parameters
pathstring