Class TLcdS57Line

All Implemented Interfaces:
ILcdDataObject, ILcdS57FeatureObject, ILcdS57Object, ILcdBounded, ILcdCurve, ILcdPointList, ILcdPointList2, ILcdPolyline, ILcdPolypoint, ILcdShape, ILcd2DEditablePointList, ILcd2DEditablePolyline, ILcd2DEditablePolypoint, ILcd2DEditableShape, ILcdCache, ILcdCloneable, ILcdFeatured, ILcdInvalidateable, Serializable, Cloneable

Represents a Line feature in the S-57 domain model.
See Also:
  • Constructor Details

    • TLcdS57Line

      public TLcdS57Line(ILcd2DEditablePointList aPointList)
      Deprecated.
      This constructor should no longer be used. Use the constructor with edges instead.
      Creates a new S-57 Line feature with the specified geometry.
      Parameters:
      aPointList - the geometry defining the geographical extent for this Line feature.
    • TLcdS57Line

      public TLcdS57Line(TLcdS57FeatureObject aFeatureObject, TLcdS57Edge[] aEdges, int[] aEdgeOrientations, int[] aEdgeUsages, int[] aEdgeMasks)
      Creates a new S-57 Line feature with the specified properties.
      Parameters:
      aFeatureObject - the S-57 feature object describing the object class and attributes of this Line feature.
      aEdges - the edges defining the geographical extent of this Line feature.
      aEdgeOrientations - array containing for each edge the orientation in which it should be traversed. See getEdgeOrientation(int) for more information on allowable values.
      aEdgeUsages - array containing for each edge the usage of the edge. See getEdgeUsage(int) for more information on allowable values.
      aEdgeMasks - array containing for each edge the mask of the edge. See getEdgeMask(int) for more information on allowable values.
  • Method Details

    • getEdgeCount

      public int getEdgeCount()
      Returns the number of edges this line consists of.
      Returns:
      the number of edges this line consists of.
    • getEdge

      public TLcdS57Edge getEdge(int aIndex)
      Returns the edge that is part of this line, at the given index.
      Parameters:
      aIndex - the edge that is part of this line, at the given index.
      Returns:
      the edge that is part of this line, at the given index.
    • getEdgeOrientation

      public int getEdgeOrientation(int aIndex)
      Returns the orientation of the edge that is part of this line, at the given index. The orientation indicates in which direction the edge should be traversed to iterate over all points of this line in forward direction. One of TLcdS57Constants.ORIENTATION_FORWARD or TLcdS57Constants.ORIENTATION_REVERSE.
      Parameters:
      aIndex - the orientation of the edge that is part of this line, at the given index.
      Returns:
      the orientation of the edge at the given index.
    • getEdgeUsage

      public int getEdgeUsage(int aIndex)
      Returns the usage of the edge that is part of this line, at the given index. The usage indicates whether the edge is part of the outer or inner boundary of an area. One of TLcdS57Constants.USAGE_EXTERIOR, TLcdS57Constants.USAGE_INTERIOR or TLcdS57Constants.USAGE_EXTERIOR_TRUNCATED.
      Parameters:
      aIndex - the usage of the edge that is part of this line, at the given index.
      Returns:
      the usage of the edge at the given index.
    • getEdgeMask

      public int getEdgeMask(int aIndex)
      Returns the mask of the edge that is part of this line, at the given index. The mask indicates whether the edge should be rendered or not. In some cases, e.g. for areas which are truncated by cell borders, the edges on the cell border should not be rendered. One of TLcdS57Constants.MASK_MASK, TLcdS57Constants.MASK_SHOW or TLcdS57Constants.MASK_NOT_APPLICABLE.
      Parameters:
      aIndex - the mask of the edge that is part of this line, at the given index.
      Returns:
      the mask of the edge at the given index.
    • setMinimumAdjacentDepth

      public void setMinimumAdjacentDepth(float aMinimumAdjacentDepth)
      Sets the minimum depth of this line and of adjacent DEPARE and DRGARE objects (only applicable for DEPARE and DEPCNT lines). The depths are retrieved from the VALSOU and DRVAL1 attributes, if specified. The minimum value can be used as the safety depth value (e.g. in the S-52 DEPCNT procedure).

      The minimumAdjacentDepth property is part of the set of preprocessor variables.

      Parameters:
      aMinimumAdjacentDepth - the minimum depth of this line and of adjacent DEPARE and DRGARE objects.
      See Also:
    • getMinimumAdjacentDepth

      public float getMinimumAdjacentDepth()
      Returns the minimum depth of this line and of adjacent DEPARE and DRGARE objects (only applicable for DEPARE and DEPCNT lines). The depths are retrieved from the VALSOU and DRVAL1 attributes, if specified. The minimum value can be used as the safety depth value (e.g. in the S-52 DEPCNT procedure).

      The minimumAdjacentDepth property is part of the set of preprocessor variables.

      Returns:
      the minimum depth of this line and of adjacent DEPARE and DRGARE objects.
      See Also:
    • setMinimumDepth

      public void setMinimumDepth(float aMinimumDepth)
      Sets the minimum depth of this line and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK lines). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The minimum value can be used as a default depth value (e.g. in the S-52 DEPVAL procedure).

      The minimumDepth property is part of the set of preprocessor variables.

      Parameters:
      aMinimumDepth - the minimum depth of this line and of containing and intersecting DEPARE and DRGARE objects
      See Also:
    • getMinimumDepth

      public float getMinimumDepth()
      Returns the minimum depth of this line and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK lines). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The minimum value can be used as a default depth value (e.g. in the S-52 DEPVAL procedure).

      The minimumDepth property is part of the set of preprocessor variables.

      Returns:
      the minimum depth of this line and of containing and intersecting DEPARE and DRGARE objects.
      See Also:
    • setMaximumDepth

      public void setMaximumDepth(float aMaximumDepth)
      Sets the maximum depth of this line and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK lines). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The maximum value can be used to determine whether the object is an isolated danger (e.g. in the S-52 UDWHAZ procedure).

      The maximumDepth property is part of the set of preprocessor variables.

      Parameters:
      aMaximumDepth - the maximum depth of this line and of containing and intersecting DEPARE and DRGARE objects.
      See Also:
    • getMaximumDepth

      public float getMaximumDepth()
      Returns the maximum depth of this line and of containing and intersecting DEPARE and DRGARE objects (only applicable for OBSTRN, UWTROC, and WRECK lines). The depths are retrieved from the DRVAL1 and DRVAL2 attributes, if specified. The maximum value can be used to determine whether the object is an isolated danger (e.g. in the S-52 UDWHAZ procedure).

      The maximumDepth property is part of the set of preprocessor variables.

      Returns:
      the maximum depth of this line and of containing and intersecting DEPARE and DRGARE objects.
      See Also:
    • invalidateObject

      public void invalidateObject()
      Description copied from interface: ILcdInvalidateable
      Invalidates all cached values of this object. Call this method whenever one or more of this object's compositing values has been changed, to notify this object it needs to recompute its cached values.
      Specified by:
      invalidateObject in interface ILcdInvalidateable
      Overrides:
      invalidateObject in class ALcd2DEditablePolypoint
    • clearCache

      public void clearCache()
      Description copied from interface: ILcdCache
      Clears the cache.
      Specified by:
      clearCache in interface ILcdCache
      Overrides:
      clearCache in class ALcd2DEditablePolypoint
    • calculateBounds

      protected void calculateBounds()
      Description copied from class: ALcd2DEditablePolypoint
      Computes the bounds of the polypoint. The resulting bounds are stored in fBounds.
      Overrides:
      calculateBounds in class TLcdXYPolypoint
    • contains2D

      public boolean contains2D(double aX, double aY)
      Checks if the point (aX,aY) lies on one of the line segments of the TLcdXYPolyline.
      Specified by:
      contains2D in interface ILcdShape
      Overrides:
      contains2D in class TLcdXYPolyline
      Parameters:
      aX - the x coordinate of the point.
      aY - the y coordinate of the point.
      Returns:
      the boolean result of the containment test.
    • setIdentifier

      public void setIdentifier(ILcdS57Identifier aIdentifier)
    • setGroup

      public void setGroup(int aGroup)
    • setRelationships

      public void setRelationships(ILcdS57Relationship[] aRelationships)
    • getIdentifier

      public ILcdS57Identifier getIdentifier()
      Description copied from interface: ILcdS57FeatureObject
      Gets the identifier of this shape.
      Specified by:
      getIdentifier in interface ILcdS57FeatureObject
    • getGroup

      public int getGroup()
      Description copied from interface: ILcdS57FeatureObject
      Returns the group to which the S-57 object belongs, this can be 1 (= skin of the earth) or 2 (= all other objects).
      Specified by:
      getGroup in interface ILcdS57FeatureObject
      Returns:
      the group to which the S-57 object belongs
    • getShape

      public int getShape()
      Description copied from interface: ILcdS57FeatureObject
      Gets the type of the shape: POINT, LINE, AREA or NONE.
      Specified by:
      getShape in interface ILcdS57FeatureObject
    • getRelationshipCount

      public int getRelationshipCount()
      Description copied from interface: ILcdS57FeatureObject
      Returns the number of relationships in which this S-57 object is involved.
      Specified by:
      getRelationshipCount in interface ILcdS57FeatureObject
      Returns:
      the number of relationships in which this S-57 object is involved.
    • getRelationship

      public ILcdS57Relationship getRelationship(int aIndex)
      Description copied from interface: ILcdS57FeatureObject
      Returns the relationship at index aIndex.
      Specified by:
      getRelationship in interface ILcdS57FeatureObject
      Parameters:
      aIndex - index of the relationship to return
      Returns:
      the relationship at the specified position.
    • getDataType

      public TLcdDataType getDataType()
      Description copied from interface: ILcdDataObject
      Returns the type of this data object. This can never be null.
      Specified by:
      getDataType in interface ILcdDataObject
      Returns:
      the type of this data object
    • getValue

      public Object getValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject

      Returns the value of the given property.

      If the property is a collection, the returned value will never be null. If the property has not been set, an empty collection of the appropriate type will be returned (Set, List or Map).

      The property must not be null, and must be declared in the data object's type or in one of its super types. Otherwise an IllegalArgumentException is thrown.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be returned
      Returns:
      the value of the given property for this data object
    • getValue

      public Object getValue(String aPropertyName)
      Description copied from interface: ILcdDataObject

      Convenience method that returns the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.getValue(TLcdDataProperty) for more information.

      Specified by:
      getValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be returned
      Returns:
      the value of the property with the given name
      See Also:
    • setValue

      public void setValue(TLcdDataProperty aProperty, Object aValue)
      Description copied from interface: ILcdDataObject

      Sets the value of the given property for this data object. The implementation is allowed to throw an exception if the given value can't be set.

      The given property must be declared in the data object's type or in one of its super types. In other words, getDataType().getProperties().contains( aProperty ) should always be true. Otherwise, the implementation should throw an IllegalArgumentException.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which the value is to be set
      aValue - the value to set
      See Also:
    • setValue

      public void setValue(String aPropertyName, Object aValue)
      Description copied from interface: ILcdDataObject

      Convenience method that sets the value of the property with the given name.

      If more than one property exists with the given name, the most specific property should be used (this is the property defined by the most specialized type in this object's data type hierarchy).

      See ILcdDataObject.setValue(TLcdDataProperty, Object) for more information.

      Specified by:
      setValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property of which the value is to be set
      aValue - the value to set
    • hasValue

      public boolean hasValue(TLcdDataProperty aProperty)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.

      • aProperty is from the right data type, and this instance has a value for it: returns true
      • aProperty is from the right data type, and this instance has no value for it: returns false
      • aProperty is not from the right data type: not allowed, you will get IllegalArgumentException
      • aProperty is null: not allowed, you will get NullPointerException

      A multivalued property is considered to have a value if it has at least one value.

      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aProperty - the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the given property, false otherwise.
    • hasValue

      public boolean hasValue(String aPropertyName)
      Description copied from interface: ILcdDataObject
      Indicates whether this data object has a value for the given property.
      See ILcdDataObject.hasValue(TLcdDataProperty) for more information.
      Specified by:
      hasValue in interface ILcdDataObject
      Parameters:
      aPropertyName - the name of the property for which to return whether a value is present or not.
      Returns:
      true if this data object has a value for the property with the given name, false otherwise.
    • canSetFeature

      public boolean canSetFeature(int aIndex)
      Description copied from interface: ILcdFeatured
      Checks whether the specified feature is editable.
      Specified by:
      canSetFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      Returns:
      true if the feature can be set, false otherwise.
    • getFeature

      public Object getFeature(int aIndex) throws IndexOutOfBoundsException
      Description copied from interface: ILcdFeatured
      Returns the feature Object at the given index.
      Specified by:
      getFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      Returns:
      the feature Object at the given index.
      Throws:
      IndexOutOfBoundsException - when an index is chosen greater than the result of getFeatureCount.
      See Also:
    • getFeatureCount

      public int getFeatureCount()
      Description copied from interface: ILcdFeatured
      Returns the number of features.
      Specified by:
      getFeatureCount in interface ILcdFeatured
      Returns:
      the number of features.
    • setFeature

      public void setFeature(int aIndex, Object aFeature) throws IllegalArgumentException
      Description copied from interface: ILcdFeatured
      Sets the feature Object at the given index.
      Specified by:
      setFeature in interface ILcdFeatured
      Parameters:
      aIndex - a valid feature index.
      aFeature - the new feature Object.
      Throws:
      IllegalArgumentException - if the feature can't be set.
      See Also:
    • equals

      public boolean equals(Object o)
      Description copied from class: ALcd2DEditablePolypoint
      Returns whether the given object has the same class, the same focus point, and the same coordinates.
      Overrides:
      equals in class ALcd2DEditablePolypoint
    • hashCode

      public int hashCode()
      Description copied from class: ALcdShape
      The hash code of this shape is the hash code of its class, in order to be consistent with the ALcdShape.equals(Object) method. Extensions should refine this implementation, based on their properties.
      Overrides:
      hashCode in class ALcd2DEditablePolypoint
    • toString

      public String toString()
      Overrides:
      toString in class ALcd2DEditablePolypoint
    • clone

      public Object clone()
      Description copied from class: TLcdXYPolyline
      Creates and returns a copy of this object.

      The contained editable points list is cloned. If cloning is not possible, a warning is sent to the log and a shallow copy is returned.

      The cache, the bounds and the focus point are not copied or cloned at all, but recalculated when needed.

      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class TLcdXYPolyline
      See Also: