Class DefaultFilterFactory.Features<G,T>
- Type Parameters:
G- base class of geometry objects. The implementation-neutral type is GeoAPIGeometry, but this factory allows the use of other implementations such as JTSGeometryor ESRIGeometry.T- base class of temporal objects.
- All Implemented Interfaces:
Factory
- Enclosing class:
DefaultFilterFactory<R,G, T>
public static class DefaultFilterFactory.Features<G,T>
extends DefaultFilterFactory<AbstractFeature, G, T>
A filter factory operating on
instances.
invalid reference
Feature
- Since:
- 1.1
-
Nested Class Summary
Nested classes/interfaces inherited from class DefaultFilterFactory
DefaultFilterFactory.Features<G,T> Modifier and TypeClassDescriptionstatic classA filter factory operating oninstances.invalid reference
Feature -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<V> Expression<AbstractFeature, V> Creates an expression whose value is computed by retrieving the value indicated by a path in a resource.resourceId(String identifier) Creates a new predicate to identify an identifiable resource within a filter expression.Methods inherited from class DefaultFilterFactory
add, after, and, and, anyInteracts, bbox, before, begins, begunBy, between, beyond, contains, crosses, disjoint, divide, during, endedBy, ends, equal, equals, forFeatures, forResources, function, function, function, greater, greaterOrEqual, intersects, isNil, isNull, less, lessOrEqual, like, like, literal, meets, metBy, multiply, not, notEqual, or, or, overlappedBy, overlaps, property, subtract, tcontains, tequals, toString, touches, toverlaps, within, withinModifier and TypeMethodDescriptionadd(Expression<AbstractFeature, ? extends Number> operand1, Expression<AbstractFeature, ? extends Number> operand2) Creates a function computing the numeric addition of the first and second operand.after(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is after the second.and(Collection<? extends Filter<AbstractFeature>> operands) Creates aANDfilter between two or more filters.and(Filter<AbstractFeature> operand1, Filter<AbstractFeature> operand2) Creates aANDfilter between two filters.anyInteracts(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates a shortcut operator semantically equivalent to NOT (Before OR Meets OR MetBy OR After).bbox(Expression<AbstractFeature, ? 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<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is before the second.begins(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand begins at the second.begunBy(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand begun by the second.between(Expression<AbstractFeature, ?> expression, Expression<AbstractFeature, ?> lowerBoundary, Expression<AbstractFeature, ?> upperBoundary) Filter operation for a range check.beyond(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? 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<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the first geometric operand contains the second.crosses(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the first geometric operand crosses the second.disjoint(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the first operand is disjoint from the second.divide(Expression<AbstractFeature, ? extends Number> operand1, Expression<AbstractFeature, ? extends Number> operand2) Creates a function computing the numeric quotient resulting from dividing the first operand by the second.during(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is during the second.endedBy(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is ended by the second.ends(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand ends at the second.equal(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that compares that two sub-expressions are equal to each other.equals(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the geometry of the two operands are equal.static DefaultFilterFactory<AbstractFeature, Object, Object> Returns a factory operating onAbstractFeatureinstances.static <R> Optional<DefaultFilterFactory<R, Object, Object>> forResources(Class<R> type) Returns a factory operating on resource instances of the given class.function(String name, Expression<? super AbstractFeature, ?> parameter) Creates an implementation-specific function with a single parameter.function(String name, Expression<? super AbstractFeature, ?> param1, Expression<? super AbstractFeature, ?> param2) Creates an implementation-specific function with two parameters.function(String name, Expression<AbstractFeature, ?>[] parameters) Creates an implementation-specific function.greater(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that checks that its first sub-expression is greater than its second sub-expression.greaterOrEqual(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that checks that its first sub-expression is greater than its second sub-expression.intersects(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the two geometric operands intersect.isNil(Expression<AbstractFeature, ?> expression, String nilReason) An operator that tests if an expression's value is nil.isNull(Expression<AbstractFeature, ?> expression) An operator that tests if an expression's value isnull.less(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that checks that its first sub-expression is less than its second sub-expression.lessOrEqual(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that checks that its first sub-expression is less than or equal to its second sub-expression.like(Expression<AbstractFeature, ?> expression, String pattern) Character string comparison operator with pattern matching and default wildcards.like(Expression<AbstractFeature, ?> expression, String pattern, char wildcard, char singleChar, char escape, boolean isMatchingCase) Character string comparison operator with pattern matching and specified wildcards.<V> Expression<AbstractFeature, V> literal(V value) Creates a constant, literal value that can be used in expressions.meets(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand meets the second.metBy(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is met by the second.multiply(Expression<AbstractFeature, ? extends Number> operand1, Expression<AbstractFeature, ? extends Number> operand2) Creates a function computing the numeric product of their first and second operand.not(Filter<AbstractFeature> operand) Creates aNOTfilter for the given filter.notEqual(Expression<AbstractFeature, ?> expression1, Expression<AbstractFeature, ?> expression2) Filter operator that compares that its two sub-expressions are not equal to each other.or(Collection<? extends Filter<AbstractFeature>> operands) Creates aORfilter between two or more filters.or(Filter<AbstractFeature> operand1, Filter<AbstractFeature> operand2) Creates aORfilter between two filters.overlappedBy(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is overlapped by the second.overlaps(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? 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.Creates an expression whose value is computed by retrieving the value indicated by a path in a resource.subtract(Expression<AbstractFeature, ? extends Number> operand1, Expression<AbstractFeature, ? extends Number> operand2) Creates a function computing the numeric difference between the first and second operand.tcontains(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is contained by the second.tequals(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand is equal to the second.Returns a string representation of this factory for debugging purposes.touches(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the two geometric operands touch each other, but do not overlap.toverlaps(Expression<AbstractFeature, ? extends T> time1, Expression<AbstractFeature, ? extends T> time2) Creates an operator that checks if first temporal operand overlaps the second.within(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? extends G> geometry2) Creates an operator that checks if the first geometric operand is completely contained by the constant geometric operand.within(Expression<AbstractFeature, ? extends G> geometry1, Expression<AbstractFeature, ? 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
getVendorModifier and TypeMethodDescriptionReturns the implementer of this factory, ornullif unknown.
-
Constructor Details
-
Features
Creates a new factory operating onAbstractFeatureinstances. See the DefaultFilterFactory(Class, Class, WraparoundMethod) super-class constructor} for a list of valid class arguments.- Parameters:
spatial- type of spatial objects, orObject.classfor default.temporal- type of temporal objects, orObject.classfor any supported type.wraparound- the strategy to use for representing a region crossing the anti-meridian.- See Also:
-
-
Method Details
-
resourceId
Creates a new predicate to identify an identifiable resource within a filter expression.- Specified by:
resourceIdin classDefaultFilterFactory<AbstractFeature, G, T>- Parameters:
identifier- 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.The desired type of property values can be specified. For example if the property values should be numbers, then
typecan beNumber.class. If property values can be of any type with no conversion desired, thentypeshould beObject.class.Supported XPath syntax
If the givenxpathcontains the "/" character, then all path components before the last one are interpreted as associations to follow. For example if the XPath is"client/name", then theValueReferenceapplied on feature F will first search for an association named"client"to feature C, then search for a property named"name"in feature C.The given
xpathmay contain scoped names. For example"foo:client"is the name"client"in scope"foo". If the scope is an URL, then it needs to be enclosed inside"Q{…}". Example:"Q{http://www.foo.com/bar}client".- Specified by:
propertyin classDefaultFilterFactory<AbstractFeature, G, T>- Type Parameters:
V- the type of the values to be fetched (compile-time 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 (run-time value of<V>).- Returns:
- an expression evaluating the referenced property value.
-