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 Link icon

    • TLcdS57Identifier Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

    • getId Link icon

      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 Link icon

      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 Link icon

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

      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 Link icon

      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 Link icon

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

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

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

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode Link icon

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

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

      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: