Interface ValueReference<R,V>

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 Details

    • getFunctionName

      default ScopedName getFunctionName()
      Returns the name of the value reference function. The default implementation returns "fes:ValueReference".
      Specified by:
      getFunctionName in interface Expression<R,V>
      Returns:
      "ValueReference" in a scope at implementation choice.
    • getParameters

      default List<Expression<? super R,?>> getParameters()
      Returns an empty list since value references have no parameters.
      Specified by:
      getParameters in interface Expression<R,V>
      Returns:
      an empty list.
    • getXPath

      String getXPath()
      Returns the path to the property whose value will be returned by the apply(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. the Feature), 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: addresses[street="Oxfordstrasse"]/number
      Implementations may support a larger set of XPath rules if desired.
      Returns:
      path to the property whose value will be returned by the apply(R) method.
      See Also: