Class S129DatasetProcessor
IDatasetProcessor for IHO S-129 Under Keel Clearance Management GML datasets. Drives the standard S-100 Part 9 XSLT vector portrayal pipeline inherited from GmlDatasetProcessorBase<TFeature>, then fills any under-keel-clearance areas the portrayal left unfilled (see PostProcessInstructions(IReadOnlyList<DrawingInstruction>)).
public sealed class S129DatasetProcessor : GmlDatasetProcessorBase<S129Feature>, IDatasetProcessor, IVectorPortrayalSource, IHeadlessImageRenderer, IDisplayModeAwareDatasetProcessor, ILoadedDatasetProjection
- Inheritance
-
S129DatasetProcessor
- Implements
- Inherited Members
Remarks
Normally created through the S129 registration (used by DatasetPipelineFactory) rather than constructed directly.
Constructors
S129DatasetProcessor(IAssetSource, string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)
Initializes a new S129DatasetProcessor by reading
the dataset file relativePath from
source. Used by exchange-set bulk loading.
public S129DatasetProcessor(IAssetSource source, string relativePath, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)
Parameters
sourceIAssetSourcerelativePathstringcatalogueManagerPortrayalCatalogueManagerauthorityProviderIDisplayPlaneAuthorityProviderfeatureCatalogueManagerFeatureCatalogueManager
S129DatasetProcessor(string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)
Initializes a new S129DatasetProcessor by reading and parsing the
dataset file at path. The file is read in full and
closed before the constructor returns.
public S129DatasetProcessor(string path, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)
Parameters
pathstringPath to the S-129 GML dataset file.
catalogueManagerPortrayalCatalogueManagerSupplies the S-129 portrayal catalogue.
authorityProviderIDisplayPlaneAuthorityProviderResolves the default S-98 display plane for the dataset's content.
featureCatalogueManagerFeatureCatalogueManagerOptional source of the S-129 feature catalogue, used to decode attribute values in feature info; null leaves them undecoded.
Properties
Features
The parsed features from the dataset.
protected override IReadOnlyList<S129Feature> Features { get; }
Property Value
ProductDescription
Human-readable product description for info strings (e.g. "Navigational Warnings", "Marine Aids to Navigation").
protected override string ProductDescription { get; }
Property Value
Methods
CreateFeatureXmlSource()
Creates the spec-appropriate feature XML source.
protected override IFeatureXmlSource CreateFeatureXmlSource()
Returns
CreateLoadedData()
Allocates the LoadedDatasetData variant wrapping this processor's already-parsed model. Never re-reads the source bytes.
public override LoadedDatasetData CreateLoadedData()
Returns
- LoadedDatasetData
The catalog payload wrapping the resident model (e.g. an
S125DatasetDataorS102CoverageData).
Remarks
Each GML subclass wraps its resident, already-parsed model in the
matching LoadedDatasetData variant (e.g.
new S125DatasetData(_dataset)) — no second parse.
PostProcessInstructions(IReadOnlyList<DrawingInstruction>)
Gives every area instruction that the portrayal left without a fill
colour or pattern a semi-transparent (0.7) fallback fill keyed on the
feature type: RED for non-navigable areas, GOLDN for
almost non-navigable areas, and CHMGD otherwise. All other
instructions pass through unchanged.
protected override IReadOnlyList<DrawingInstruction> PostProcessInstructions(IReadOnlyList<DrawingInstruction> instructions)
Parameters
instructionsIReadOnlyList<DrawingInstruction>Drawing instructions produced by the portrayal pipeline.
Returns
- IReadOnlyList<DrawingInstruction>
A new list with the fallback fills applied.
ValidateDataset()
Runs the product's rule pack, or returns null when the product
has none. Called once by Validate(), which caches the
result.
protected override ValidationReport? ValidateDataset()
Returns
Remarks
Overrides should typically delegate to
ValidationRunner.Run(...) so that an
InvalidOperationException from the typed
projection (e.g. an empty dataset) surfaces as an empty report rather
than propagating out of Validate().