|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ObjectFilterToSQL
FilterToSQLSDE
public class FilterToSQLSDE
Encodes an attribute filter into a SQL WHERE statement for arcsde.
Although not all filters support is coded yet, the strategy to filtering queries for ArcSDE
datasources is separated in two parts, the SQL where clause construction, provided here and the
spatial filters (or spatial constraints, in SDE vocabulary) provided by
GeometryEncoderSDE
; mirroring the java SDE api approach for easy programing
org.geotools.data.sde.GeometryEncoderSDE
Nested Class Summary |
---|
Nested classes/interfaces inherited from class FilterToSQL |
---|
FilterToSQL.FieldEncoder |
Field Summary |
---|
Fields inherited from class FilterToSQL |
---|
capabilities, currentDimension, currentGeometry, currentSRID, databaseSchema, encodingFunction, featureType, fieldEncoder, filterFactory, inline, IO_ERROR, mapper, out, primaryKey |
Constructor Summary | |
---|---|
FilterToSQLSDE(String layerQName,
String layerFidColName,
SimpleFeatureType ft,
PlainSelect definitionQuery,
ISession session)
|
Method Summary | |
---|---|
protected FilterCapabilities |
createFilterCapabilities()
Overrides the superclass implementation to indicate that we support pushing FeatureId filters down into the data store. |
void |
encode(Filter filter)
overrides just to avoid the "WHERE" keyword |
String |
getColumnDefinition(String alias)
Returns the full qualifed name of sql expression that is registered as the source of the attribute named alias . |
protected Object |
visit(BinaryLogicOperator filter,
Object extraData)
Overrides to avoid encoding an empty operator if filter has no children. |
Object |
visit(ExcludeFilter filter,
Object extraData)
Visit Filter.EXCLUDE (often used during data structure transformations). |
Object |
visit(Id filter,
Object unused)
This only exists the fulfill the interface - unless There is a way of determining the FID column in the database... |
Object |
visit(IncludeFilter filter,
Object extraData)
Visit Filter.INCLUDE (often used during data structure transformations). |
Object |
visit(PropertyName expression,
Object extraData)
Writes the SQL for the attribute Expression. |
protected void |
writeLiteral(Object literal)
Writes out a non null, non geometry literal. |
Methods inherited from class Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface FilterVisitor |
---|
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitNullFilter |
Constructor Detail |
---|
public FilterToSQLSDE(String layerQName, String layerFidColName, SimpleFeatureType ft, PlainSelect definitionQuery, ISession session)
layerQName
- full qualified name of the ArcSDE layerlayerFidColName
- name of the column that holds fidsft
- definitionQuery
- conn2
- only used to encode date literals in a RDBMS specific format according to
SeDate.toWhereStr(SeConnection)
Method Detail |
---|
public String getColumnDefinition(String alias)
alias
.
alias
-
protected FilterCapabilities createFilterCapabilities()
createFilterCapabilities
in class FilterToSQL
public void encode(Filter filter) throws FilterToSQLException
encode
in class FilterToSQL
filter
- the Filter to be encoded.
FilterToSQLException
public Object visit(Id filter, Object unused)
visit
in interface FilterVisitor
visit
in class FilterToSQL
filter
- the Fid Filter.public Object visit(PropertyName expression, Object extraData) throws RuntimeException
visit
in interface ExpressionVisitor
visit
in class FilterToSQL
expression
- the attribute to turn to SQL.
RuntimeException
- for io exception with writerprotected Object visit(BinaryLogicOperator filter, Object extraData)
filter
has no children.
visit
in class FilterToSQL
filter
- the logic statement to be turned into SQL.extraData
- extra filter data. Not modified directly by this method.public Object visit(ExcludeFilter filter, Object extraData)
FilterVisitor
Filter.EXCLUDE
(often used during data structure transformations).
visit
in interface FilterVisitor
visit
in class FilterToSQL
the
- filter to be visited
FilterVisitor#visit(ExcludeFilter, Object)} Writes the SQL for the IncludeFilter
by writing "FALSE".
public Object visit(IncludeFilter filter, Object extraData)
FilterVisitor
Filter.INCLUDE
(often used during data structure transformations).
visit
in interface FilterVisitor
visit
in class FilterToSQL
the
- filter to be visited
FilterVisitor#visit(IncludeFilter, Object)} Writes the SQL for the IncludeFilter
by writing "TRUE".
protected void writeLiteral(Object literal) throws IOException
FilterToSQL
writeLiteral
in class FilterToSQL
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |