Package org.apache.sis.filter
Class DefaultFilterFactory<R,G,T>
Object
AbstractFactory
DefaultFilterFactory<R,G,T>
 Type Parameters:
R
 the type of resources (e.g.AbstractFeature
) to use as inputs.G
 base class of geometry objects. The implementationneutral type is GeoAPIGeometry
, but this factory allows the use of other implementations such as JTSGeometry
or ESRIGeometry
.T
 base class of temporal objects.
 All Implemented Interfaces:
Factory
 Direct Known Subclasses:
DefaultFilterFactory.Features
A factory of default
Filter
and Expression
implementations.
This base class operates on resources of arbitrary type <R>
.
Concrete subclass operates on resources of specific type such as AbstractFeature
.
Upcoming API change
In a future version, all
In a future version, all
Filter
and Expression
parameters may be replaced by parameters
of the same names but from the org.opengis.filter
package instead of org.apache.sis.filter
.
This change is pending next GeoAPI release.
In addition, return types may become more specialized types.
 Since:
 1.1
Defined in the sisfeature
module

Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A filter factory operating onAbstractFeature
instances. 
Constructor Summary
ModifierConstructorDescriptionprotected
DefaultFilterFactory
(Class<G> spatial, Class<T> temporal, WraparoundMethod wraparound) Creates a new factory for geometries and temporal objects of the given types. 
Method Summary
Modifier and TypeMethodDescriptionadd
(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric addition of the first and second operand.after
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is after the second.and
(Collection<? extends Filter<? super R>> operands) Creates aAND
filter between two or more filters.Creates aAND
filter between two filters.anyInteracts
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates a shortcut operator semantically equivalent to NOT (Before OR Meets OR MetBy OR After).bbox
(Expression<? super R, ? extends G> geometry, Envelope bounds) Creates an operator that checks if the bounding box of the feature's geometry interacts with the bounding box provided in the filter properties.before
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is before the second.begins
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand begins at the second.begunBy
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand begun by the second.between
(Expression<? super R, ?> expression, Expression<? super R, ?> lowerBoundary, Expression<? super R, ?> upperBoundary) Filter operation for a range check.beyond
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2, Quantity<Length> distance) Creates an operator that checks if all of a feature's geometry is more distant than the given distance from the given geometry.contains
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand contains the second.crosses
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand crosses the second.disjoint
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first operand is disjoint from the second.divide
(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric quotient resulting from dividing the first operand by the second.during
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is during the second.endedBy
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is ended by the second.ends
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand ends at the second.equal
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that compares that two subexpressions are equal to each other.equals
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the geometry of the two operands are equal.Returns a factory operating onAbstractFeature
instances.Expression<R,
?> function
(String name, Expression<? super R, ?> parameter) Creates an implementationspecific function with a single parameter.Expression<R,
?> function
(String name, Expression<? super R, ?>[] parameters) Creates an implementationspecific function.Expression<R,
?> function
(String name, Expression<? super R, ?> param1, Expression<? super R, ?> param2) Creates an implementationspecific function with two parameters.greater
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is greater than its second subexpression.greaterOrEqual
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is greater than its second subexpression.intersects
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the two geometric operands intersect.isNil
(Expression<? super R, ?> expression, String nilReason) An operator that tests if an expression's value is nil.isNull
(Expression<? super R, ?> expression) An operator that tests if an expression's value isnull
.less
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is less than its second subexpression.lessOrEqual
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is less than or equal to its second subexpression.like
(Expression<? super R, ?> expression, String pattern) Character string comparison operator with pattern matching and default wildcards.like
(Expression<? super R, ?> expression, String pattern, char wildcard, char singleChar, char escape, boolean isMatchingCase) Character string comparison operator with pattern matching and specified wildcards.<V> Expression<R,
V> literal
(V value) Creates a constant, literal value that can be used in expressions.meets
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand meets the second.metBy
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is met by the second.multiply
(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric product of their first and second operand.Creates aNOT
filter for the given filter.notEqual
(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that compares that its two subexpressions are not equal to each other.or
(Collection<? extends Filter<? super R>> operands) Creates aOR
filter between two or more filters.Creates aOR
filter between two filters.overlappedBy
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is overlapped by the second.overlaps
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the interior of the first geometric operand somewhere overlaps the interior of the second geometric operand.Expression<R,
?> Creates an expression whose value is computed by retrieving the value indicated by a path in a resource.abstract <V> Expression<R,
V> Creates an expression retrieving the value as an instance of the specified class.resourceId
(String rid) Creates a predicate to identify an identifiable resource within a filter expression.subtract
(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric difference between the first and second operand.tcontains
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is contained by the second.tequals
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is equals to the second.touches
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the two geometric operands touch each other, but do not overlap.toverlaps
(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand overlaps the second.within
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand is completely contained by the constant geometric operand.within
(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2, Quantity<Length> distance) Creates an operator that checks if any part of the first geometry lies within the given distance of the second geometry.Methods inherited from class AbstractFactory
getVendor

Constructor Details

DefaultFilterFactory
Creates a new factory for geometries and temporal objects of the given types. Thespatial
argument can be one of the following classes:Authorized spatial class argument values Library Spatial class ESRI com.esri.core.geometry.Geometry
JTS org.locationtech.jts.geom.Geometry
Java2D java.awt.Shape
Default java.lang.Object
Authorized temporal class argument values Library Temporal class Default java.lang.Object
 Parameters:
spatial
 type of spatial objects, orObject.class
for default.temporal
 type of temporal objects, orObject.class
for default.wraparound
 the strategy to use for representing a region crossing the antimeridian.


Method Details

forFeatures
Returns a factory operating onAbstractFeature
instances. The geometry library will be the system default. Returns:
 factory operating on
AbstractFeature
instances.  TODO:
 The type of temporal object is not yet determined.

resourceId
Creates a predicate to identify an identifiable resource within a filter expression. Parameters:
rid
 identifier of the resource that shall be selected by the predicate. Returns:
 the predicate.

property
Creates an expression whose value is computed by retrieving the value indicated by a path in a resource. If all characters in the path are Unicode identifier parts, then the XPath expression is simply a property name. Parameters:
xpath
 the path to the property whose value will be returned by theapply(R)
method. Returns:
 an expression evaluating the referenced property value.

property
Creates an expression retrieving the value as an instance of the specified class. Thexpath
argument follows the rule described inproperty(String)
.The desired type of property values can be specified. For example if the property values should be numbers, then
type
can beNumber.class
. If property values can be of any type with no conversion desired, thentype
should beObject.class
. Type Parameters:
V
 the type of the values to be fetched (compiletime value oftype
). Parameters:
xpath
 the path to the property whose value will be returned by theapply(R)
method.type
 the type of the values to be fetched (runtime value of<V>
). Returns:
 an expression evaluating the referenced property value.

literal
Creates a constant, literal value that can be used in expressions. The given value should be data objects such as strings, numbers, dates or geometries. Type Parameters:
V
 the type of the value of the literal. Parameters:
value
 the literal value. May benull
. Returns:
 a literal for the given value.

equal
Filter operator that compares that two subexpressions are equal to each other. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
=expression2
.

notEqual
Filter operator that compares that its two subexpressions are not equal to each other. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
≠expression2
.

less
Filter operator that checks that its first subexpression is less than its second subexpression. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
<expression2
.

greater
Filter operator that checks that its first subexpression is greater than its second subexpression. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
>expression2
.

lessOrEqual
public Filter<R> lessOrEqual(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is less than or equal to its second subexpression. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
≤expression2
.

greaterOrEqual
public Filter<R> greaterOrEqual(Expression<? super R, ?> expression1, Expression<? super R, ?> expression2) Filter operator that checks that its first subexpression is greater than its second subexpression. Parameters:
expression1
 the first of the two expressions to be used by this comparator.expression2
 the second of the two expressions to be used by this comparator. Returns:
 a filter evaluating
expression1
≥expression2
.

between
public Filter<R> between(Expression<? super R, ?> expression, Expression<? super R, ?> lowerBoundary, Expression<? super R, ?> upperBoundary) Filter operation for a range check. The lower and upper boundary values are inclusive. Parameters:
expression
 the expression to be compared by this comparator.lowerBoundary
 the lower bound (inclusive) as an expression.upperBoundary
 the upper bound (inclusive) as an expression. Returns:
 a filter evaluating (
expression
≥lowerBoundary
) & (expression
≤upperBoundary
).

like
Character string comparison operator with pattern matching and default wildcards. The wildcard character is'%'
, the single character is'_'
and the escape character is'\\'
. The comparison is casesensitive. Parameters:
expression
 source of values to compare against the pattern.pattern
 pattern to match against expression values. Returns:
 a character string comparison operator with pattern matching.

like
public Filter<R> like(Expression<? super R, ?> expression, String pattern, char wildcard, char singleChar, char escape, boolean isMatchingCase) Character string comparison operator with pattern matching and specified wildcards. Parameters:
expression
 source of values to compare against the pattern.pattern
 pattern to match against expression values.wildcard
 pattern character for matching any sequence of characters.singleChar
 pattern character for matching exactly one character.escape
 pattern character for indicating that the next character should be matched literally.isMatchingCase
 specifies how a filter expression processor should perform string comparisons. Returns:
 a character string comparison operator with pattern matching.

isNull
An operator that tests if an expression's value isnull
. This corresponds to checking whether the property exists in the realworld. Parameters:
expression
 source of values to compare againstnull
. Returns:
 a filter that checks if an expression's value is
null
.

isNil
An operator that tests if an expression's value is nil. The difference withNullOperator
is that a value should exist but can not be provided for the reason given bynilReason
. Possible reasons are: inapplicable — there is no value.
 template — the value will be available later.
 missing — the correct value is not readily available to the sender of this data. Furthermore, a correct value may not exist.
 unknown — the correct value is not known to, and not computable by, the sender of this data. However, a correct value probably exists..
 withheld — the value is not divulged.
 Other strings at implementation choice.
 Parameters:
expression
 source of values to compare against nil values.nilReason
 the reason why the value is nil, ornull
for accepting any reason. Returns:
 a filter that checks if an expression's value is nil for the specified reason.
 See Also:

and
Creates aAND
filter between two filters. Parameters:
operand1
 the first operand of the AND operation.operand2
 the second operand of the AND operation. Returns:
 a filter evaluating
operand1 AND operand2
.

and
Creates aAND
filter between two or more filters. Parameters:
operands
 a collection of at least 2 operands. Returns:
 a filter evaluating
operand1 AND operand2 AND operand3
…  Throws:
IllegalArgumentException
 if the given collection contains less than 2 elements.

or
Creates aOR
filter between two filters. Parameters:
operand1
 the first operand of the OR operation.operand2
 the second operand of the OR operation. Returns:
 a filter evaluating
operand1 OR operand2
.

or
Creates aOR
filter between two or more filters. Parameters:
operands
 a collection of at least 2 operands. Returns:
 a filter evaluating
operand1 OR operand2 OR operand3
…  Throws:
IllegalArgumentException
 if the given collection contains less than 2 elements.

not
Creates aNOT
filter for the given filter. Parameters:
operand
 the operand of the NOT operation. Returns:
 a filter evaluating
NOT operand
.

bbox
Creates an operator that checks if the bounding box of the feature's geometry interacts with the bounding box provided in the filter properties. Parameters:
geometry
 expression fetching the geometry to check for interaction with bounds.bounds
 the bounds to check geometry against. Returns:
 a filter checking for any interactions between the bounding boxes.

equals
public Filter<R> equals(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the geometry of the two operands are equal. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Equals" operation between the two geometries.

disjoint
public Filter<R> disjoint(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first operand is disjoint from the second. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Disjoint" operation between the two geometries.

intersects
public Filter<R> intersects(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the two geometric operands intersect. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Intersects" operation between the two geometries.

touches
public Filter<R> touches(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the two geometric operands touch each other, but do not overlap. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Touches" operation between the two geometries.

crosses
public Filter<R> crosses(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand crosses the second. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Crosses" operation between the two geometries.

within
public Filter<R> within(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand is completely contained by the constant geometric operand. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Within" operation between the two geometries.

contains
public Filter<R> contains(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the first geometric operand contains the second. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Contains" operation between the two geometries.

overlaps
public Filter<R> overlaps(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2) Creates an operator that checks if the interior of the first geometric operand somewhere overlaps the interior of the second geometric operand. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator. Returns:
 a filter for the "Overlaps" operation between the two geometries.

beyond
public Filter<R> beyond(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2, Quantity<Length> distance) Creates an operator that checks if all of a feature's geometry is more distant than the given distance from the given geometry. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator.distance
 minimal distance for evaluating the expression astrue
. Returns:
 operator that evaluates to
true
when all of a feature's geometry is more distant than the given distance from the second geometry.

within
public Filter<R> within(Expression<? super R, ? extends G> geometry1, Expression<? super R, ? extends G> geometry2, Quantity<Length> distance) Creates an operator that checks if any part of the first geometry lies within the given distance of the second geometry. Parameters:
geometry1
 expression fetching the first geometry of the binary operator.geometry2
 expression fetching the second geometry of the binary operator.distance
 maximal distance for evaluating the expression astrue
. Returns:
 operator that evaluates to
true
when any part of the feature's geometry lies within the given distance of the second geometry.

after
public Filter<R> after(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is after the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "After" operator between the two temporal values.

before
public Filter<R> before(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is before the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "Before" operator between the two temporal values.

begins
public Filter<R> begins(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand begins at the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "Begins" operator between the two temporal values.

begunBy
public Filter<R> begunBy(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand begun by the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "BegunBy" operator between the two temporal values.

tcontains
public Filter<R> tcontains(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is contained by the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "TContains" operator between the two temporal values.

during
public Filter<R> during(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is during the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "During" operator between the two temporal values.

tequals
public Filter<R> tequals(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is equals to the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "TEquals" operator between the two temporal values.

toverlaps
public Filter<R> toverlaps(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand overlaps the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "TOverlaps" operator between the two temporal values.

meets
public Filter<R> meets(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand meets the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "Meets" operator between the two temporal values.

ends
public Filter<R> ends(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand ends at the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "Ends" operator between the two temporal values.

overlappedBy
public Filter<R> overlappedBy(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is overlapped by the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "OverlappedBy" operator between the two temporal values.

metBy
public Filter<R> metBy(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is met by the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "MetBy" operator between the two temporal values.

endedBy
public Filter<R> endedBy(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates an operator that checks if first temporal operand is ended by the second. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "EndedBy" operator between the two temporal values.

anyInteracts
public Filter<R> anyInteracts(Expression<? super R, ? extends T> time1, Expression<? super R, ? extends T> time2) Creates a shortcut operator semantically equivalent to NOT (Before OR Meets OR MetBy OR After). This is applicable to periods only. Parameters:
time1
 expression fetching the first temporal value.time2
 expression fetching the second temporal value. Returns:
 a filter for the "AnyInteracts" operator between the two temporal values.

add
public Expression<R,Number> add(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric addition of the first and second operand. Parameters:
operand1
 expression fetching the first number.operand2
 expression fetching the second number. Returns:
 an expression for the "Add" function between the two numerical values.

subtract
public Expression<R,Number> subtract(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric difference between the first and second operand. Parameters:
operand1
 expression fetching the first number.operand2
 expression fetching the second number. Returns:
 an expression for the "Subtract" function between the two numerical values.

multiply
public Expression<R,Number> multiply(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric product of their first and second operand. Parameters:
operand1
 expression fetching the first number.operand2
 expression fetching the second number. Returns:
 an expression for the "Multiply" function between the two numerical values.

divide
public Expression<R,Number> divide(Expression<? super R, ? extends Number> operand1, Expression<? super R, ? extends Number> operand2) Creates a function computing the numeric quotient resulting from dividing the first operand by the second. Parameters:
operand1
 expression fetching the first number.operand2
 expression fetching the second number. Returns:
 an expression for the "Divide" function between the two numerical values.

function
Creates an implementationspecific function with a single parameter. Parameters:
name
 name of the function to call.parameter
 expression providing values for the function argument. Returns:
 an expression which will call the specified function.
 Throws:
IllegalArgumentException
 if the given name is not recognized, or if the argument is illegal for the specified function.

function
public Expression<R,?> function(String name, Expression<? super R, ?> param1, Expression<? super R, ?> param2) Creates an implementationspecific function with two parameters. Parameters:
name
 name of the function to call.param1
 expression providing values for the first function argument.param2
 expression providing values for the second function argument. Returns:
 an expression which will call the specified function.
 Throws:
IllegalArgumentException
 if the given name is not recognized, or if the arguments are illegal for the specified function.

function
Creates an implementationspecific function. Parameters:
name
 name of the function to call.parameters
 expressions providing values for the function arguments. Returns:
 an expression which will call the specified function.
 Throws:
IllegalArgumentException
 if the given name is not recognized, or if the arguments are illegal for the specified function.
