Class JDBCHelperBase

java.lang.Object
org.gvsig.tools.dispose.impl.AbstractDisposable
org.gvsig.fmap.dal.store.jdbc2.spi.JDBCHelperBase
All Implemented Interfaces:
AutoCloseable, org.gvsig.fmap.dal.resource.spi.ResourceConsumer, JDBCHelper, org.gvsig.tools.dispose.Disposable

public class JDBCHelperBase extends org.gvsig.tools.dispose.impl.AbstractDisposable implements org.gvsig.fmap.dal.resource.spi.ResourceConsumer, JDBCHelper
  • Field Details

    • LOGGER

      protected static final org.slf4j.Logger LOGGER
    • operationsFactory

      protected OperationsFactory operationsFactory
    • srssolver

      protected SRSSolver srssolver
    • providerFeatureType

      protected org.gvsig.fmap.dal.feature.FeatureType providerFeatureType
    • transactionsHelper

      protected org.gvsig.fmap.dal.SupportTransactionsHelper transactionsHelper
  • Constructor Details

    • JDBCHelperBase

      public JDBCHelperBase(org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters connectionParameters)
  • Method Details

    • initialize

      protected void initialize(org.gvsig.fmap.dal.resource.spi.ResourceConsumer helperClient, org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters connectionParameters, JDBCStoreProvider store)
    • getResourceType

      protected String getResourceType()
    • getProviderName

      public String getProviderName()
      Description copied from interface: JDBCHelper
      Return the name of the driver. By default rerturn "JDBC".
      Specified by:
      getProviderName in interface JDBCHelper
      Returns:
    • getGeometrySupportType

      public org.gvsig.expressionevaluator.GeometryExpressionBuilderHelper.GeometrySupportType getGeometrySupportType()
      Description copied from interface: JDBCHelper
      Indica como deben ser guardadas las geometrias en la BBDD. Pueden guardarse en WKT, WKB o EWKB.
      Specified by:
      getGeometrySupportType in interface JDBCHelper
      Returns:
    • getProviderFeatureType

      public org.gvsig.fmap.dal.feature.FeatureType getProviderFeatureType()
      Specified by:
      getProviderFeatureType in interface JDBCHelper
      Returns:
      the providerFeatureType
    • setProviderFeatureType

      public void setProviderFeatureType(org.gvsig.fmap.dal.feature.FeatureType providerFeatureType)
      Specified by:
      setProviderFeatureType in interface JDBCHelper
      Parameters:
      providerFeatureType - the providerFeatureType to set
    • hasSpatialFunctions

      public boolean hasSpatialFunctions()
      Description copied from interface: JDBCHelper
      Indica si la BBDD tiene soporte espacial.
      Specified by:
      hasSpatialFunctions in interface JDBCHelper
      Returns:
    • allowNestedOperations

      public boolean allowNestedOperations()
      Specified by:
      allowNestedOperations in interface JDBCHelper
    • canWriteGeometry

      public boolean canWriteGeometry(int geometryType, int geometrySubtype)
      Description copied from interface: JDBCHelper
      Indica si podemos escribir el tipo de geometria indicado.
      Specified by:
      canWriteGeometry in interface JDBCHelper
      Parameters:
      geometryType -
      geometrySubtype -
      Returns:
    • createSQLBuilder

      public JDBCSQLBuilderBase createSQLBuilder()
      Description copied from interface: JDBCHelper
      Devuelve un SQLBuilder adaptado al proveedor. Por ejemplo, uno especifico para PostgreSQL, MySQL, Oracle, MSSQLServer...
      Specified by:
      createSQLBuilder in interface JDBCHelper
      Returns:
    • getQuoteForIdentifiers

      public String getQuoteForIdentifiers()
      Description copied from interface: JDBCHelper
      Devuelve las comillas que han de usaese para los identificadores.
      Specified by:
      getQuoteForIdentifiers in interface JDBCHelper
      Returns:
    • allowAutomaticValues

      public boolean allowAutomaticValues()
      Description copied from interface: JDBCHelper
      Indica si la BBDD soporta valores automaticos, tipo serial.
      Specified by:
      allowAutomaticValues in interface JDBCHelper
      Returns:
    • supportOffsetInSelect

      public boolean supportOffsetInSelect()
      Description copied from interface: JDBCHelper
      Indica si la BBDD soporta el uso de OFFSET en la sentencia select.
      Specified by:
      supportOffsetInSelect in interface JDBCHelper
      Returns:
    • getQuoteForStrings

      public String getQuoteForStrings()
      Description copied from interface: JDBCHelper
      Devuelve las comillas que han de usaese en las constantes de cadena.
      Specified by:
      getQuoteForStrings in interface JDBCHelper
      Returns:
    • supportCaller

      protected boolean supportCaller(org.gvsig.expressionevaluator.Code.Callable caller, org.gvsig.fmap.dal.feature.FeatureType type)
    • supportFilter

      public boolean supportFilter(org.gvsig.fmap.dal.feature.FeatureType type, org.gvsig.tools.evaluator.Evaluator filter)
      Specified by:
      supportFilter in interface JDBCHelper
    • supportExpression

      public boolean supportExpression(org.gvsig.fmap.dal.feature.FeatureType type, String sql)
      Specified by:
      supportExpression in interface JDBCHelper
    • supportOrder

      public boolean supportOrder(org.gvsig.fmap.dal.feature.FeatureType type, org.gvsig.fmap.dal.feature.FeatureQueryOrder order)
      Specified by:
      supportOrder in interface JDBCHelper
    • getOperations

      public OperationsFactory getOperations()
      Specified by:
      getOperations in interface JDBCHelper
    • initializeResource

      protected void initializeResource(org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters params)
    • getSourceId

      public String getSourceId()
      Specified by:
      getSourceId in interface JDBCHelper
    • getResource

      public JDBCResourceBase getResource()
      Specified by:
      getResource in interface JDBCHelper
    • getConnection

      public org.gvsig.fmap.dal.store.jdbc2.JDBCConnection getConnection() throws org.gvsig.fmap.dal.resource.exception.AccessResourceException
      Specified by:
      getConnection in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.resource.exception.AccessResourceException
    • getConnectionWritable

      public org.gvsig.fmap.dal.store.jdbc2.JDBCConnection getConnectionWritable() throws org.gvsig.fmap.dal.resource.exception.AccessResourceException
      Specified by:
      getConnectionWritable in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.resource.exception.AccessResourceException
    • getConnectionURL

      public String getConnectionURL()
      Specified by:
      getConnectionURL in interface JDBCHelper
    • getConnectionParameters

      public org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters getConnectionParameters()
      Specified by:
      getConnectionParameters in interface JDBCHelper
    • doDispose

      protected void doDispose() throws org.gvsig.tools.exception.BaseException
      Specified by:
      doDispose in class org.gvsig.tools.dispose.impl.AbstractDisposable
      Throws:
      org.gvsig.tools.exception.BaseException
    • close

      public void close() throws Exception
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception
    • isClosed

      public boolean isClosed()
    • closeResourceRequested

      public boolean closeResourceRequested(org.gvsig.fmap.dal.resource.spi.ResourceProvider resource)
      Specified by:
      closeResourceRequested in interface org.gvsig.fmap.dal.resource.spi.ResourceConsumer
    • resourceChanged

      public void resourceChanged(org.gvsig.fmap.dal.resource.spi.ResourceProvider resource)
      Specified by:
      resourceChanged in interface org.gvsig.fmap.dal.resource.spi.ResourceConsumer
    • getGeometryManager

      public org.gvsig.fmap.geom.GeometryManager getGeometryManager()
      Specified by:
      getGeometryManager in interface JDBCHelper
    • getResulSetControler

      public ResulSetControler getResulSetControler()
      Specified by:
      getResulSetControler in interface JDBCHelper
    • fetchFeature

      public void fetchFeature(org.gvsig.fmap.dal.feature.spi.FeatureProvider feature, ResulSetControler.ResultSetEntry rs) throws org.gvsig.fmap.dal.exception.DataException
      Specified by:
      fetchFeature in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.DataException
    • fetchFeature

      public void fetchFeature(org.gvsig.fmap.dal.feature.spi.FeatureProvider feature, ResultSet rs, org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor[] columns, String[] extraValueNames) throws org.gvsig.fmap.dal.exception.DataException
      Specified by:
      fetchFeature in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.DataException
    • getGeometryFromColumn

      public org.gvsig.fmap.geom.Geometry getGeometryFromColumn(ResulSetControler.ResultSetEntry rs, int index) throws org.gvsig.fmap.dal.exception.DataException
      Specified by:
      getGeometryFromColumn in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.DataException
    • getGeometryFromColumn

      public org.gvsig.fmap.geom.Geometry getGeometryFromColumn(ResultSet rs, int index) throws org.gvsig.fmap.dal.exception.DataException
      Specified by:
      getGeometryFromColumn in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.DataException
    • createFeature

      public org.gvsig.fmap.dal.feature.spi.FeatureProvider createFeature(org.gvsig.fmap.dal.feature.FeatureType featureType) throws org.gvsig.fmap.dal.exception.DataException
      Specified by:
      createFeature in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.DataException
    • useSubquery

      public boolean useSubquery()
      Description copied from interface: JDBCHelper
      Indica si se especifico un subquery al abrir el proveedor.
      Specified by:
      useSubquery in interface JDBCHelper
      Returns:
    • getSRSSolver

      public SRSSolver getSRSSolver()
      Specified by:
      getSRSSolver in interface JDBCHelper
    • createProvider

      public JDBCStoreProvider createProvider(org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters parameters, org.gvsig.fmap.dal.spi.DataStoreProviderServices providerServices) throws org.gvsig.fmap.dal.exception.InitializeException
      Specified by:
      createProvider in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.InitializeException
    • createServerExplorer

      public org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer createServerExplorer(org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters parameters, org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices providerServices) throws org.gvsig.fmap.dal.exception.InitializeException
      Specified by:
      createServerExplorer in interface JDBCHelper
      Throws:
      org.gvsig.fmap.dal.exception.InitializeException
    • createNewStoreParameters

      public org.gvsig.fmap.dal.store.jdbc.JDBCNewStoreParameters createNewStoreParameters()
      Specified by:
      createNewStoreParameters in interface JDBCHelper
    • createOpenStoreParameters

      public org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters createOpenStoreParameters()
      Specified by:
      createOpenStoreParameters in interface JDBCHelper
    • createOpenStoreParameters

      public org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters createOpenStoreParameters(org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters parameters)
      Specified by:
      createOpenStoreParameters in interface JDBCHelper
    • createServerExplorerParameters

      public org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters createServerExplorerParameters()
      Specified by:
      createServerExplorerParameters in interface JDBCHelper
    • getSourceId

      public String getSourceId(org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters params)
      Specified by:
      getSourceId in interface JDBCHelper
    • isThreadSafe

      public boolean isThreadSafe()
      Specified by:
      isThreadSafe in interface JDBCHelper
    • processSpecialFunctions

      public void processSpecialFunctions(org.gvsig.fmap.dal.SQLBuilder sqlbuilder, org.gvsig.fmap.dal.feature.FeatureType type, List<String> extra_column_names, org.gvsig.fmap.dal.feature.FeatureQuery query)
      This method has been overriden in Oracle provider
      Specified by:
      processSpecialFunctions in interface JDBCHelper
      Parameters:
      sqlbuilder -
      type -
      extra_column_names -
    • replaceExistsFunction

      protected void replaceExistsFunction(org.gvsig.fmap.dal.SQLBuilder sqlbuilder, org.gvsig.fmap.dal.feature.FeatureType type, List<String> extra_column_names)
    • replaceForeingValueFunction

      protected void replaceForeingValueFunction(org.gvsig.fmap.dal.SQLBuilder sqlbuilder, org.gvsig.fmap.dal.feature.FeatureType type, List<String> extra_column_names)
    • addTableToColumnReferences

      protected void addTableToColumnReferences(org.gvsig.fmap.dal.SQLBuilder sqlbuilder, org.gvsig.fmap.dal.feature.FeatureType type, org.gvsig.fmap.dal.feature.FeatureQuery query)
    • addTableToColumnReferencesInSingleSelect

      protected void addTableToColumnReferencesInSingleSelect(org.gvsig.fmap.dal.SQLBuilder sqlbuilder, org.gvsig.fmap.dal.SQLBuilder.SelectBuilder select, List<org.apache.commons.lang3.tuple.Pair<org.gvsig.fmap.dal.SQLBuilder.TableNameBuilder,org.gvsig.fmap.dal.feature.FeatureType>> outerTables, org.gvsig.fmap.dal.feature.FeatureQuery query)
    • getTableAndFeatureType

      protected org.apache.commons.lang3.tuple.Pair<org.gvsig.fmap.dal.SQLBuilder.TableNameBuilder,org.gvsig.fmap.dal.feature.FeatureType> getTableAndFeatureType(List<org.apache.commons.lang3.tuple.Pair<org.gvsig.fmap.dal.SQLBuilder.TableNameBuilder,org.gvsig.fmap.dal.feature.FeatureType>> outerTables, String columnName)
    • setTransaction

      public void setTransaction(org.gvsig.fmap.dal.spi.DataTransactionServices transaction)
      Specified by:
      setTransaction in interface JDBCHelper
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getConnectionProviderStatus

      public String getConnectionProviderStatus()
      Specified by:
      getConnectionProviderStatus in interface JDBCHelper
    • expandCalculedColumns

      public void expandCalculedColumns(JDBCSQLBuilderBase sqlbuilder)
      Specified by:
      expandCalculedColumns in interface JDBCHelper
    • getTransaction

      public org.gvsig.fmap.dal.spi.DataTransactionServices getTransaction()
      Specified by:
      getTransaction in interface JDBCHelper
    • getConnectionProvider

      public ConnectionProvider getConnectionProvider()
    • getConnectionProviderKey

      protected String getConnectionProviderKey(org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters connectionParameters)