Package org.geotools.data.mongodb
Class AbstractFilterToMongo
Object
AbstractFilterToMongo
- All Implemented Interfaces:
ExpressionVisitor
,FilterVisitor
- Direct Known Subclasses:
FilterToMongo
public abstract class AbstractFilterToMongo
extends Object
implements FilterVisitor, ExpressionVisitor
Abstract visitor responsible for generating a BasicDBObject to use as a MongoDB query.
- Author:
- Gerald Gay, Data Tactics Corp., Alan Mangan, Data Tactics Corp., Tom Kunicki, Boundless Spatial Inc. (C) 2011, Open Source Geospatial Foundation (OSGeo)
- See Also:
-
GNU Lesser General Public License (LGPL)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected FeatureType
The schmema the encoder will use as reference to drive filter encodingprotected final MongoGeometryBuilder
static final int
protected static Logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected BasicDBObject
asDBObject
(Object extraData) protected abstract String
Method responsible for retrieving the MongoDB geometry json pathprotected abstract String
getPropertyPath
(String property) Method responsible for mapping a PropertyName to the corresponding MongoDB json pathprotected Class<?>
protected abstract Class<?>
getValueTypeInternal
(Expression expression) Method responsible of retrieving the value type of an Expressionvoid
setFeatureType
(FeatureType featureType) Sets the feature type the encoder is encoding a filter for.visit
(ExcludeFilter filter, Object extraData) VisitFilter.EXCLUDE
(often used during data structure transformations).visit
(NilExpression expression, Object extraData) Used to visit a Expression.NIL, also called fornull
where an expression is expected.visit
(PropertyName expression, Object extraData) visit
(IncludeFilter filter, Object extraData) VisitFilter.INCLUDE
(often used during data structure transformations).visit
(PropertyIsBetween filter, Object extraData) visit
(PropertyIsEqualTo filter, Object extraData) visit
(PropertyIsGreaterThanOrEqualTo filter, Object extraData) visit
(PropertyIsGreaterThan filter, Object extraData) visit
(PropertyIsLessThanOrEqualTo filter, Object extraData) visit
(PropertyIsLessThan filter, Object extraData) visit
(PropertyIsLike filter, Object extraData) Encode LIKE using MongoDB Regex.visit
(PropertyIsNil filter, Object extraData) visit
(PropertyIsNotEqualTo filter, Object extraData) visit
(PropertyIsNull filter, Object extraData) DWITHIN filter is delegated to Mongo's $near operator for point geometry, otherwise it is delegated to $geoIntersects.visit
(Intersects filter, Object extraData) visit
(AnyInteracts anyInteracts, Object extraData) visit
(OverlappedBy overlappedBy, Object extraData) visitNullFilter
(Object extraData) Used to account for anull
filter value.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface FilterVisitor
visit
-
Field Details
-
HUNDRED_KM_IN_METERS
public static final int HUNDRED_KM_IN_METERS- See Also:
-
LOGGER
-
geometryBuilder
-
featureType
The schmema the encoder will use as reference to drive filter encoding
-
-
Constructor Details
-
AbstractFilterToMongo
-
AbstractFilterToMongo
public AbstractFilterToMongo()
-
-
Method Details
-
asDBObject
-
setFeatureType
Sets the feature type the encoder is encoding a filter for.The type of the attributes may drive how the filter is translated to a mongodb query document.
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
getGeometryPath
Method responsible for retrieving the MongoDB geometry json path- Returns:
- the MongoDB json paath for the default geometry
-
getPropertyPath
Method responsible for mapping a PropertyName to the corresponding MongoDB json path- Parameters:
property
- the string property name to map- Returns:
- the MongoDB json path
-
visit
Description copied from interface:FilterVisitor
VisitFilter.EXCLUDE
(often used during data structure transformations).- Specified by:
visit
in interfaceFilterVisitor
- Parameters:
filter
-Filter.EXCLUDE
.extraData
- Value object provided to visitor- Returns:
- subclass supplied
-
visit
Description copied from interface:FilterVisitor
VisitFilter.INCLUDE
(often used during data structure transformations).- Specified by:
visit
in interfaceFilterVisitor
- Parameters:
filter
-Filter.INCLUDE
.extraData
- Value object provided to visitor- Returns:
- subclass supplied
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
getValueType
-
getValueTypeInternal
Method responsible of retrieving the value type of an Expression- Parameters:
expression
- the expression for which find the value type- Returns:
- the type as a Class of the Expression
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
Encode LIKE using MongoDB Regex.- filter.getWildCard() returns SQL-like '%'
- filter.getSingleChar() returns SQL-like '_'
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visitNullFilter
Description copied from interface:FilterVisitor
Used to account for anull
filter value.This is particularly used during data structure transofrmations, however the use of
null
is not recommended. Please make use of Filter.NONE and Filter.ALL as placeholder objects that communicate intent.- Specified by:
visitNullFilter
in interfaceFilterVisitor
- Parameters:
extraData
- Value object provided to visitor- Returns:
- subclass defined
-
visit
Description copied from interface:ExpressionVisitor
Used to visit a Expression.NIL, also called fornull
where an expression is expected.This is particularly useful when doing data transformations, as an example when using a StyleSymbolizer Expression.NIL can be used to represent the default stroke color.
- Specified by:
visit
in interfaceExpressionVisitor
- Returns:
- implementation specific
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
DWITHIN filter is delegated to Mongo's $near operator for point geometry, otherwise it is delegated to $geoIntersects. To properly compute the buffer the azimuthal equidistant projection is being used.- Specified by:
visit
in interfaceFilterVisitor
- Parameters:
filter
-extraData
-- Returns:
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-
visit
- Specified by:
visit
in interfaceFilterVisitor
-