Class S128ProductEntry
A strongly-typed façade over a navigational-product S128Feature
(one of ElectronicProduct, PhysicalProduct, S100Service).
public sealed class S128ProductEntry
- Inheritance
-
S128ProductEntry
- Inherited Members
Remarks
S-128 catalogues describe individual nautical products. This façade exposes the most commonly queried attributes — product number, edition, currency status, coverage geometry, and outgoing references — without forcing callers to traverse the underlying S128Feature directly.
Currency status is heuristic: S-128 2.0.0 has no single status
enumeration on a product feature, so Status is derived
from serviceStatus (S100Service), the presence of a
theReference arcrole indicating supersession, and edition/update
dates. See the project README for the full heuristic.
Constructors
S128ProductEntry(S128Feature)
Initializes a new entry over the given product-class feature.
public S128ProductEntry(S128Feature feature)
Parameters
featureS128Feature
Exceptions
- ArgumentException
Thrown when
featureis not one of the navigational product feature types.
Properties
Classification
The catalogue element classification text (S-128 § 12 catalogueElementClassification).
public string? Classification { get; }
Property Value
CoverageRing
Coverage exterior ring of the entry's first surface geometry, or an empty array if the feature is geometry-less.
public IReadOnlyList<GeoPosition> CoverageRing { get; }
Property Value
EditionNumber
The product edition number (S-128 § 12 attribute editionNumber).
public string? EditionNumber { get; }
Property Value
Feature
The underlying parsed feature.
public S128Feature Feature { get; }
Property Value
FeatureType
The feature class (ElectronicProduct | PhysicalProduct |
S100Service).
public string FeatureType { get; }
Property Value
Id
The feature's gml:id.
public string Id { get; }
Property Value
IssueDate
The product issue date (ISO 8601).
public string? IssueDate { get; }
Property Value
NotForNavigation
True when the feature carries notForNavigation = "true".
public bool NotForNavigation { get; }
Property Value
ProductFeatureTypes
The set of FC feature-type codes that represent navigational products.
public static IReadOnlySet<string> ProductFeatureTypes { get; }
Property Value
ProductNumber
The product number or dataset name carried by the feature
(productNumber if present, otherwise datasetName).
public string? ProductNumber { get; }
Property Value
ProductSpecificationName
The referenced product specification (e.g. "S-101", "S-104",
"S-57") parsed from the productSpecification/name
complex sub-attribute.
public string? ProductSpecificationName { get; }
Property Value
ProductSpecificationVersion
The version of the referenced product specification (e.g. "1.4.1"),
parsed from the productSpecification/version complex sub-attribute.
(S-128 § 12.)
public string? ProductSpecificationVersion { get; }
Property Value
ReferencedProducts
Outgoing references that mark this entry as superseded by another
(theReference with arcrole containing "theReference" and
a ProductMapping/categoryOfProductMapping of 1).
public IEnumerable<S128XlinkReference> ReferencedProducts { get; }
Property Value
Remarks
In the IHO 2.0.0 sample the link is encoded inline as
<S128:theReference xlink:href="#ID0002" .../><ProductMapping>...</ProductMapping>;
we surface the href list and leave caller-side mapping interpretation
to the caller.
Status
Heuristic currency status of the product. See type remarks.
public S128ProductStatus Status { get; }
Property Value
UpdateDate
The product update / edition date.
public string? UpdateDate { get; }
Property Value
UpdateNumber
The product update number (S-128 § 12 attribute updateNumber).
public string? UpdateNumber { get; }
Property Value
Methods
IsProductFeature(S128Feature)
Returns true if the given feature is a catalogue product entry.
public static bool IsProductFeature(S128Feature feature)
Parameters
featureS128Feature