- Type Parameters:
R
- the type of resources (e.g.Feature
) used as inputs.V
- the type of values fetched by the expression.
- All Superinterfaces:
Expression<R,
,V> Function<R,
V>
@UML(identifier="ValueReference",
specification=ISO_19143)
public interface ValueReference<R,V>
extends Expression<R,V>
Expression whose value is computed by retrieving the value indicated by a name in a resource.
ValueReference
can used to specify the name of any property of an object whose value
shall be tested by a predicate in a filter expression.
The most common application of this is to retrieve a feature's property
using a property name or an XPath expression.- Since:
- 3.1
-
Method Summary
Modifier and TypeMethodDescriptiondefault ScopedName
Returns the name of the value reference function.default List<Expression<? super R,
?>> Returns an empty list since value references have no parameters.getXPath()
Returns the path to the property whose value will be returned by theapply(R)
method.Methods inherited from interface Expression
apply, toValueType
-
Method Details
-
getFunctionName
Returns the name of the value reference function. The default implementation returns"fes:ValueReference"
.- Specified by:
getFunctionName
in interfaceExpression<R,
V> - Returns:
"ValueReference"
in a scope at implementation choice.
-
getParameters
Returns an empty list since value references have no parameters.- Specified by:
getParameters
in interfaceExpression<R,
V> - Returns:
- an empty list.
-
getXPath
String getXPath()Returns the path to the property whose value will be returned by theapply(R)
method. If all characters are Unicode identifier part, then the XPath expression is simply a property name. Otherwise (i.e. if the returned path contains characters such as`:`
,`/`
or'['
), the returned string uses a simplified form of the XPath query language described below.XPath syntax
The path is relative to the resource element (e.g. theFeature
), except in the case of a join operation, in which case the path is relative to the parent of the resource element. The following set of XPath rules shall be supported:- Abbreviated form of the child axis specifier (i.e. the default form with no specifier).
- Abbreviated form of the attribute axis specifier (i.e. the
'@'
character). - Predicate with a positive non-zero integer to indicate which child of the context node should be selected.
- Predicate of the form
"child=value"
to identify a specific object property by constraining the child elements of the property.
Example:Implementations may support a larger set of XPath rules if desired.addresses[street="Oxfordstrasse"]/number
- Returns:
- path to the property whose value will be returned by the
apply(R)
method. - See Also:
-