Interface FeaturePath
-
- All Known Implementing Classes:
FeaturePathImpl
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 totypeInit()
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 Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
addFeature(Feature feat)
Add a new feature at the end of the path.java.lang.Boolean
getBooleanValue(FeatureStructure fs)
Returns the Boolean value of a boolean valued feature path.java.lang.Byte
getByteValue(FeatureStructure fs)
Returns the Byte value of a byte valued feature path.java.lang.Double
getDoubleValue(FeatureStructure fs)
Returns the Double value of a double valued feature path.Feature
getFeature(int i)
Get feature at position.java.lang.String
getFeaturePath()
Returns the feature path as string.java.lang.Float
getFloatValue(FeatureStructure fs)
Returns the Float value of a float valued feature path.FeatureStructure
getFSValue(FeatureStructure fs)
Returns the FeatureStructure of a FeatureStructure valued feature path.java.lang.Integer
getIntValue(FeatureStructure fs)
Returns the Integer value of an integer valued feature path.java.lang.Long
getLongValue(FeatureStructure fs)
Returns the Long value of a long valued feature path.java.lang.Short
getShortValue(FeatureStructure fs)
Returns the Short value of a short valued feature path.java.lang.String
getStringValue(FeatureStructure fs)
Returns the String value of a string valued feature path.TypeClass
getTypClass(FeatureStructure fs)
Deprecated.use getTypeClass (spelling fix)Type
getType(FeatureStructure fs)
Returns the type of the feature path.TypeClass
getTypeClass(FeatureStructure fs)
Returns the type class of the feature path.java.lang.String
getValueAsString(FeatureStructure fs)
Returns the feature path value as string for the given FeatureStructure.void
initialize(java.lang.String featurePath)
Initialize the feature path object with the given feature path string.java.lang.String
ll_getValueAsString(int fsRef, LowLevelCAS llCas)
Returns the feature path value as string for the given FeatureStructure.int
size()
Get length of path.void
typeInit(Type featurePathType)
Check the feature path for the given type and initialize internal structures for faster access to the feature path value.
-
-
-
Method Detail
-
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 at0
).- 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(java.lang.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
java.lang.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
java.lang.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 valuellCas
- 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 TypeClass getTypClass(FeatureStructure fs)
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
java.lang.String getFeaturePath()
Returns the feature path as string.- Returns:
- Returns the feature path as string.
-
getStringValue
java.lang.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
java.lang.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
java.lang.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
java.lang.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
java.lang.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
java.lang.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
java.lang.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
java.lang.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
FeatureStructure getFSValue(FeatureStructure fs)
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
-
-