Class TLcdS57Identifier

java.lang.Object
com.luciad.format.s57.TLcdS57Identifier
All Implemented Interfaces:
ILcdS57Identifier, ILcdCloneable, ILcdFeatured, Serializable, Cloneable

public class TLcdS57Identifier extends Object implements ILcdS57Identifier, Serializable, ILcdFeatured, ILcdCloneable
An implementation of the ILcdS57Identifier interface.
See Also:
  • Constructor Details

    • TLcdS57Identifier

      public TLcdS57Identifier(int aObjectClassCode, ILcdS57Attribute[] aAttributes)
      Constructs a new S-57 editable identifier, initialized with the given object class code.

      The attributes array should be ordered ascendingly according to the attribute code. The attributes array should be ordered ascendingly according to the attribute code. The attributes array should be ordered ascendingly according to the attribute code.

      Parameters:
      aObjectClassCode -
    • TLcdS57Identifier

      public TLcdS57Identifier(TLcdS57ObjectClassDescriptor aObjectClassDescriptor, ILcdS57Attribute[] aAttributes)
      Constructs a new S-57 editable identifier, initialized with the given object class descriptor.

      The attributes array should be ordered ascendingly according to the attribute code.

      Parameters:
      aObjectClassDescriptor -
    • TLcdS57Identifier

      public TLcdS57Identifier(TLcdS57ObjectClassDescriptor aObjectClassDescriptor, ILcdS57Attribute[] aAttributes, int aIdentifier)
      Constructs a new S-57 editable identifier, initialized with the given object class descriptor.

      The attributes array should be ordered ascendingly according to the attribute code.

      Parameters:
      aObjectClassDescriptor -
    • TLcdS57Identifier

      public TLcdS57Identifier(TLcdS57ObjectClassDescriptor aObjectClassDescriptor, ILcdS57Attribute[] aAttributes, int aIdentifier, long aLongName)
      Constructs a new S-57 editable identifier, initialized with the given object class descriptor, attributes, id and long name.
      Parameters:
      aObjectClassDescriptor - The object class descriptor, leave null for an unknown descriptor.
      aAttributes - The attributes, ordered ascendingly according to the attribute code.
      aIdentifier - The identifier, leave -1 if unknown.
      aLongName - The long name, leave -1 if unknown.
      Since:
      2017.0
  • Method Details

    • getId

      public int getId()
      Returns the id of this S-57 identifier, uniquely identifying the S-57 feature within the model.
      Returns:
      the id of this S-57 identifier, uniquely identifying the S-57 feature within the model.
    • getLongName

      public long getLongName()
      Description copied from interface: ILcdS57Identifier
      Gets the "Long Name" of this S-57 feature object.

      The "Long Name" is also known as "feature object identifier", or LNAM. It is a representation of the FOID (Feature Object Identifier) fields.

      More specifically, it is a "binary concatenation" (FIDS << 48) | (FIDN << 16) | AGEN, where:

      • AGEN (Producing Agency)
      • FIDN (Feature Identification Number)
      • FIDS (Feature Identification Subdivision)

      Specified by:
      getLongName in interface ILcdS57Identifier
      Returns:
      The long name, or -1 if unknown
    • getObjectClassDescriptor

      public TLcdS57ObjectClassDescriptor getObjectClassDescriptor()
      Returns the S-57 object class descriptor, describing this identifier.
      Returns:
      the S-57 object class descriptor, describing this identifier.
    • addAttribute

      public void addAttribute(ILcdS57Attribute aAttribute)
      Adds the given attribute to this S-57 identifier. If an attribute with the same code already exists, it is replaced by the new one.
      Parameters:
      aAttribute - the attribute to be added to this S-57 identifier.
    • removeAttribute

      public void removeAttribute(ILcdS57Attribute aAttribute)
      Removes the specified attribute from this S-57 identifier.
      Parameters:
      aAttribute - the attribute to be removed.
      Throws:
      IllegalArgumentException - if the specified attribute is not an attribute of this S-57 identifier.
    • getS57ObjectClass

      public int getS57ObjectClass()
      Description copied from interface: ILcdS57Identifier
      Gets the object class.
      Specified by:
      getS57ObjectClass in interface ILcdS57Identifier
    • getS57AttributeCount

      public int getS57AttributeCount()
      Description copied from interface: ILcdS57Identifier
      Gets the number of TLcdS57Attributes stored in this identifier.
      Specified by:
      getS57AttributeCount in interface ILcdS57Identifier
    • getS57Attribute

      public ILcdS57Attribute getS57Attribute(int aIndex)
      Description copied from interface: ILcdS57Identifier
      Gets the TLcdS57Attribute at a given index.
      Specified by:
      getS57Attribute in interface ILcdS57Identifier
    • getS57AttributeForCode

      public ILcdS57Attribute getS57AttributeForCode(int aRequestedCode)
      Description copied from interface: ILcdS57Identifier
      Gets the TLcdS57Attribute that has the given code.
      Specified by:
      getS57AttributeForCode in interface ILcdS57Identifier
    • isSimilar

      public boolean isSimilar(ILcdS57Identifier aIdentifier)
      Description copied from interface: ILcdS57Identifier
      Returns whether the given identifier is similar to this identifier, meaning they have the same object class and attribute values, but that the given identifier can have more attributes than this one.
      Specified by:
      isSimilar in interface ILcdS57Identifier
    • 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)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

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

      public Object clone()
      Description copied from interface: ILcdCloneable

      Makes Object.clone() public.

      When for example extending from java.lang.Object, it can be implemented like this:
      
       public Object clone() {
         try {
           return super.clone();
         } catch ( CloneNotSupportedException e ) {
           // Cannot happen: extends from Object and implements Cloneable (see also Object.clone)
           throw new RuntimeException( e );
         }
       }
       
      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class Object
      See Also: