Class S421DatasetProcessor
IDatasetProcessor for IHO S-421 Route Plan GML datasets. Drives the standard S-100 Part 9 XSLT vector portrayal pipeline inherited from GmlDatasetProcessorBase<TFeature> and exposes route xlink references as navigable links in pick reports.
public sealed class S421DatasetProcessor : GmlDatasetProcessorBase<S421Feature>, IDatasetProcessor, IVectorPortrayalSource, IHeadlessImageRenderer, IDisplayModeAwareDatasetProcessor, ILoadedDatasetProjection
- Inheritance
-
S421DatasetProcessor
- Implements
- Inherited Members
Remarks
Normally created through the S421 registration (used by DatasetPipelineFactory) rather than constructed directly.
Constructors
S421DatasetProcessor(IAssetSource, string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)
Initializes a new S421DatasetProcessor by reading
the dataset file relativePath from
source. Used by exchange-set bulk loading.
public S421DatasetProcessor(IAssetSource source, string relativePath, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)
Parameters
sourceIAssetSourcerelativePathstringcatalogueManagerPortrayalCatalogueManagerauthorityProviderIDisplayPlaneAuthorityProviderfeatureCatalogueManagerFeatureCatalogueManager
S421DatasetProcessor(string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)
Initializes a new S421DatasetProcessor by reading and parsing the
dataset file at path. The file is read in full and
closed before the constructor returns.
public S421DatasetProcessor(string path, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)
Parameters
pathstringPath to the S-421 GML dataset file.
catalogueManagerPortrayalCatalogueManagerSupplies the S-421 portrayal catalogue.
authorityProviderIDisplayPlaneAuthorityProviderResolves the default S-98 display plane for the dataset's content.
featureCatalogueManagerFeatureCatalogueManagerOptional source of the S-421 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<S421Feature> Features { get; }
Property Value
MinExtentPadding
Minimum extent padding in degrees. Default is 0.01; override for specs that need wider padding (e.g. S-421 uses 0.05).
protected override double MinExtentPadding { get; }
Property Value
PreferLiveDrawing
Whether this product's datasets are sparse overlays a renderer may draw directly every frame (PreferLiveDrawing). Off by default; a product turns it on only when every dataset it can produce is small.
protected override bool PreferLiveDrawing { get; }
Property Value
Remarks
A route plan is a handful of legs and waypoints, and a SECOM collection can hold a hundred of them, so each is drawn directly rather than tiled.
ProductDescription
Human-readable product description for info strings (e.g. "Navigational Warnings", "Marine Aids to Navigation").
protected override string ProductDescription { get; }
Property Value
Methods
BuildFeatureReferences(S421Feature)
Builds feature references for the pick UI. Override to expose xlink/information references as navigable links.
protected override IReadOnlyList<FeatureReference> BuildFeatureReferences(S421Feature feature)
Parameters
featureS421Feature
Returns
BuildInfoSuffix()
Appends spec-specific lines to the info string. Override to add counts like "Information types: N".
protected override string BuildInfoSuffix()
Returns
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.
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().