Interface FeaturePath


public interface FeaturePath

Interface for a feature path. A feature path is a sequence of features, specified as shortFeatureNames (strings). The feature path can either be initialized using the addFeature() or the initialize() method.

A single feature path object can apply to many different types. The method typeInit() is (optionally) used to bind a feature path object to a particular starting Type. This binding remains until another call to typeInit() is made. It is used to speed up application of the featurePath to an instance, but is not required - the application will dynamically lookup features along the path as needed.

If no typeInit call is made, or if the current binding is not correct for the Feature Structure, then the mapping of the features in the feature path specification to actual features is recomputed during the the evaluation of the particular getter invocation.

After these calls the feature path value can be applied to a particular Feature Structure and a value can be extracted using the provided getter methods.

The feature path elements are separated by "/". So a valid feature path is /my/feature/path.

The feature path syntax also allows some built-in functions on the last feature path element. Built-in functions are added with a ":" followed by the function name. E.g. "/my/path:fsId()". The allowed built-in functions are:

  • coveredText()
  • fsId()
  • typeName()

Built-in functions are only evaluated if getValueAsString() is called.

All the intervening features except for the last must be features whose values are other Feature Structures.

Features whose range is an Array are not permitted, unless they occur at the end of the Feature Path. In that case, the value returned must be returned by one of the getValueAsString methods.

  • Method Details

    • size

      int size()
      Get length of path.
      Returns:
      An integer >= 0.
    • getFeature

      Feature getFeature(int i)
      Get feature at position.
      Parameters:
      i - The position in the path (starting at 0).
      Returns:
      The feature, or null if there is no such feature.
    • addFeature

      void addFeature(Feature feat)
      Add a new feature at the end of the path.
      Parameters:
      feat - The feature to be added.
    • initialize

      void initialize(String featurePath) throws CASException
      Initialize the feature path object with the given feature path string.
      Parameters:
      featurePath - The featurePath that is used for this feature path object.
      Throws:
      CASException - Throws an exception if the feature path syntax is invalid.
    • typeInit

      void typeInit(Type featurePathType) throws CASException
      Check the feature path for the given type and initialize internal structures for faster access to the feature path value.
      Parameters:
      featurePathType - The type the feature path should be used on.
      Throws:
      CASException - Throws an exception if the feature path is not valid for the given type
    • getValueAsString

      String getValueAsString(FeatureStructure fs)
      Returns the feature path value as string for the given FeatureStructure. If the feature path ends in a built-in function it is evaluated and the built-in function value is returned; this is the only method which evaluates built-in functions If the feature path ends with an array the array is converted to a comma separated string.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the value of the feature path as String or null if the feature path was not set or some features along the path were null.
    • ll_getValueAsString

      String ll_getValueAsString(int fsRef, LowLevelCAS llCas)
      Returns the feature path value as string for the given FeatureStructure. If the feature path contains a built-in function it is evaluated and the built-in function value is returned. If the feature path ends with an array the array is converted to a comma separated string.
      Parameters:
      fsRef - FeatureStructure reference (LowLevel API) to evaluate the feature path value
      llCas - LowLevelCAS for the fsRef
      Returns:
      Returns the value of the feature path as String
    • getType

      Type getType(FeatureStructure fs)
      Returns the type of the feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path type
      Returns:
      Returns the type of the feature path or null if the feature path is not set.
    • getTypClass

      Deprecated.
      use getTypeClass (spelling fix)
      Returns the type class of the feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path type class
      Returns:
      Returns the type class of the feature path or null if the feature path is not set
    • getTypeClass

      TypeClass getTypeClass(FeatureStructure fs)
      Returns the type class of the feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path type class
      Returns:
      Returns the type class of the feature path or null if the feature path is not set
    • getFeaturePath

      String getFeaturePath()
      Returns the feature path as string.
      Returns:
      Returns the feature path as string.
    • getStringValue

      String getStringValue(FeatureStructure fs)
      Returns the String value of a string valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the String value of a string valued feature path or null if the feature path was not set
    • getIntValue

      Integer getIntValue(FeatureStructure fs)
      Returns the Integer value of an integer valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Integer value of a integer valued feature path or null if the feature path was not set
    • getBooleanValue

      Boolean getBooleanValue(FeatureStructure fs)
      Returns the Boolean value of a boolean valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Boolean value of a boolean valued feature path or null if the feature path was not set
    • getByteValue

      Byte getByteValue(FeatureStructure fs)
      Returns the Byte value of a byte valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Byte value of a byte valued feature path or null if the feature path was not set
    • getDoubleValue

      Double getDoubleValue(FeatureStructure fs)
      Returns the Double value of a double valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Double value of a double valued feature path or null if the feature path was not set
    • getFloatValue

      Float getFloatValue(FeatureStructure fs)
      Returns the Float value of a float valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Float value of a float valued feature path or null if the feature path was not set
    • getLongValue

      Long getLongValue(FeatureStructure fs)
      Returns the Long value of a long valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Long value of a long valued feature path or null if the feature path was not set
    • getShortValue

      Short getShortValue(FeatureStructure fs)
      Returns the Short value of a short valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the Short value of a short valued feature path or null if the feature path was not set
    • getFSValue

      Returns the FeatureStructure of a FeatureStructure valued feature path.
      Parameters:
      fs - FeatureStructure to evaluate the feature path value
      Returns:
      Returns the FeatureStructure value of a FeatureStructure valued feature path or null if the feature path was not set