Class AbstractBasicFeature

java.lang.Object
com.vividsolutions.jump.feature.AbstractBasicFeature
All Implemented Interfaces:
Feature, Serializable, Cloneable, Comparable
Direct Known Subclasses:
BasicFeature

public abstract class AbstractBasicFeature extends Object implements Feature, Serializable
Default implementation of the Feature interface. Subclasses need implement only the four remaining Feature methods: #getAttribute, #setAttribute, #getAttributes, #setAttributes
See Also:
  • Constructor Details

    • AbstractBasicFeature

      public AbstractBasicFeature(FeatureSchema featureSchema)
      Creates a new Feature based on the given metadata.
      Parameters:
      featureSchema - the metadata containing information on each column
  • Method Details

    • setSchema

      public void setSchema(FeatureSchema schema)
      A low-level accessor that is not normally used.
      Specified by:
      setSchema in interface Feature
    • getID

      public int getID()
      Returns a number that uniquely identifies this feature. This number is not persistent.
      Specified by:
      getID in interface Feature
      Returns:
      n, where this feature is the nth Feature created by this application
    • setAttribute

      public void setAttribute(String attributeName, Object newAttribute)
      Sets the specified attribute.
      Specified by:
      setAttribute in interface Feature
      Parameters:
      attributeName - the name of the attribute to set
      newAttribute - the new attribute
    • setGeometry

      public void setGeometry(org.locationtech.jts.geom.Geometry geometry)
      Convenience method for setting the spatial attribute. JUMP Workbench PlugIns and CursorTools should not use this method directly, but should use an EditTransaction, so that the proper events are fired.
      Specified by:
      setGeometry in interface Feature
      Parameters:
      geometry - the new spatial attribute
    • getAttribute

      public Object getAttribute(String name)
      Returns the specified attribute. Throws an ArrayOutOfBoundException if attributeName does not exists.
      Specified by:
      getAttribute in interface Feature
      Parameters:
      name - the name of the attribute to get
      Returns:
      the attribute
    • getString

      public String getString(int attributeIndex)
      Returns a String representation of the attribute at the given index. If the attribute at the given index is null, the method returns null.
      Specified by:
      getString in interface Feature
      Parameters:
      attributeIndex - the array index of the attribute
      Returns:
      a String representation of the attribute.
    • getInteger

      public int getInteger(int attributeIndex)
      Returns a integer attribute.
      Specified by:
      getInteger in interface Feature
      Parameters:
      attributeIndex - the index of the attribute to retrieve
      Returns:
      the integer attribute with the given name
    • getDouble

      public double getDouble(int attributeIndex)
      Returns a double attribute.
      Specified by:
      getDouble in interface Feature
      Parameters:
      attributeIndex - the index of the attribute to retrieve
      Returns:
      the double attribute with the given name
    • getString

      public String getString(String attributeName)
      Returns a String representation of the attribute at the given index. If the attribute at the given index is null, the method returns null.
      Specified by:
      getString in interface Feature
      Parameters:
      attributeName - the name of the attribute to retrieve
      Returns:
      the String attribute with the given name
    • getGeometry

      public org.locationtech.jts.geom.Geometry getGeometry()
      Convenience method for returning the spatial attribute.
      Specified by:
      getGeometry in interface Feature
      Returns:
      the feature's spatial attribute
    • getSchema

      public FeatureSchema getSchema()
      Returns the feature's metadata
      Specified by:
      getSchema in interface Feature
      Returns:
      the metadata describing the names and types of the attributes
    • clone

      public Feature clone()
      Clones this Feature. Geometry and PrimaryKey will also be cloned. Warning : clone method does not follow general contract of clone (which recommends using super.clone) but makes a deep copy of the Object using BasicFeature constructor.
      Specified by:
      clone in interface Feature
      Overrides:
      clone in class Object
      Returns:
      a new Feature with the same attributes as this Feature
    • clone

      public Feature clone(boolean deep)
      Clones this Feature.
      Specified by:
      clone in interface Feature
      Parameters:
      deep - whether or not to clone the geometry
      Returns:
      a new Feature with the same attributes as this Feature
    • clone

      public Feature clone(boolean deep, boolean copyPK)
      Clones this Feature.
      Specified by:
      clone in interface Feature
      Parameters:
      deep - whether or not to clone the geometry
      copyPK - whether or not to copy external PK attribute if exists
      Returns:
      a new Feature with the same attributes as this Feature
    • clone

      public static BasicFeature clone(Feature feature, boolean deep, boolean copyPK)
      Util static method used to create a new BasicFeature from a feature.
      Parameters:
      feature - the feature to be cloned
      deep - if deep, the geometry is cloned.
      copyPK - if copyPK is true and a PK is defined, the PK is copied otherwise, the PK is set to null.
      Returns:
      a new BasicFeature
    • compareTo

      public int compareTo(Object o)
      Specified by:
      compareTo in interface Comparable
    • compare

      public static int compare(Feature a, Feature b)
      Static method to compare two features. The method uses feature ID to compare them in a first time, and if equals, it uses the feature hashcode.
      Parameters:
      a - the first feature to be compared
      b - the second feature to be compared
      Returns:
      a positive integer if a > b, a negative integer if a invalid input: '<' b and 0 if a and b have same ID and same hashcode.
    • setUserData

      public void setUserData(Object key, Object value)
      Sets a new value in userData replacing the old one for this key.
    • getUserData

      public Object getUserData(Object key)
      Gets the userData value for this key.
    • removeUserData

      public void removeUserData(Object key)
      Removes the userData value for this key.
    • removeAllUserData

      public void removeAllUserData(Object key)
      Remove all the userData keys and nullify the userData map itself.