Class PreparedFilterToSQL

Object
FilterToSQL
PreparedFilterToSQL
All Implemented Interfaces:
ExpressionVisitor, FilterVisitor
Direct Known Subclasses:
DB2FilterToSQL, GeoPkgFilterToSQL, H2GISPSFilterToSql, HanaFilterToSQL, OracleFilterToSQL, PostgisPSFilterToSql, TeradataFilterToSQL

public class PreparedFilterToSQL extends FilterToSQL
Extension of FilterToSQL intended for use with prepared statements.

Each time a Literal is visited, a '?' is encoded, and the value and type of the literal are stored, available after the fact via getLiteralValues() and getLiteralTypes().

Author:
Justin Deoliveira, OpenGEO, Andrea Aime, OpenGEO
  • Field Details

  • Constructor Details

    • PreparedFilterToSQL

      public PreparedFilterToSQL(PreparedStatementSQLDialect dialect)
      Contructor taking a reference to the SQL dialect, will use it to encode geometry placeholders
    • PreparedFilterToSQL

      public PreparedFilterToSQL(Writer out)
  • Method Details

    • isPrepareEnabled

      public boolean isPrepareEnabled()
      If true (default) a sql statement with literal placemarks is created, otherwise a normal statement is created
    • setPrepareEnabled

      public void setPrepareEnabled(boolean prepareEnabled)
    • visit

      public Object visit(Literal expression, Object context) throws RuntimeException
      Description copied from class: FilterToSQL
      Export the contents of a Literal Expresion
      Specified by:
      visit in interface ExpressionVisitor
      Overrides:
      visit in class FilterToSQL
      Parameters:
      expression - the Literal to export
      Throws:
      RuntimeException - for io exception with writer
    • convertEnvelopeToPolygon

      protected boolean convertEnvelopeToPolygon()
      When returning true, the Literal visit will turn Envelope objects (typically coming from BBOX filters) into Polygon. Defaults to true, subclasses can override.
    • visit

      public Object visit(Id filter, Object extraData)
      Encodes an Id filter
      Specified by:
      visit in interface FilterVisitor
      Overrides:
      visit in class FilterToSQL
      Parameters:
      filter - the
      Throws:
      RuntimeException - If there's a problem writing output
    • getLiteralValues

      public List<Object> getLiteralValues()
    • getLiteralTypes

      public List<Class> getLiteralTypes()
    • getSRIDs

      public List<Integer> getSRIDs()
      Returns the list of native SRID for each literal that happens to be a geometry, or null otherwise
    • getDimensions

      public List<Integer> getDimensions()
      Returns the list of dimensions for each literal tha happens to be a geometry, or null otherwise
    • getDescriptors

      public List<AttributeDescriptor> getDescriptors()
      Returns the attribute descriptors compared to a given literal (if any, not always available, normally only needed if arrays are involved)