Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.jdbc / src / main / java / org / gvsig / fmap / dal / store / jdbc2 / JDBCHelper.java @ 44191

History | View | Annotate | Download (5.14 KB)

1
package org.gvsig.fmap.dal.store.jdbc2;
2

    
3
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
4
import java.sql.Connection;
5
import java.sql.ResultSet;
6
import org.gvsig.expressionevaluator.ExpressionBuilder.GeometrySupportType;
7
import org.gvsig.fmap.dal.exception.DataException;
8
import org.gvsig.fmap.dal.exception.InitializeException;
9
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
10
import org.gvsig.fmap.dal.feature.FeatureQueryOrder;
11
import org.gvsig.fmap.dal.feature.FeatureType;
12
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
13
import org.gvsig.fmap.dal.resource.exception.AccessResourceException;
14
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
15
import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
16
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
17
import org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters;
18
import org.gvsig.fmap.dal.store.jdbc.JDBCNewStoreParameters;
19
import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
20
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
21
import org.gvsig.fmap.dal.store.jdbc2.ResulSetControler.ResultSetEntry;
22
import org.gvsig.fmap.geom.Geometry;
23
import org.gvsig.fmap.geom.GeometryManager;
24
import org.gvsig.fmap.dal.store.jdbc2.spi.SRSSolver;
25
import org.gvsig.tools.evaluator.Evaluator;
26

    
27
public interface JDBCHelper extends AutoCloseable {
28

    
29
    /**
30
     * Return the name of the driver.
31
     * 
32
     * By default rerturn "JDBC".
33
     * 
34
     * @return 
35
     */
36
    public String getProviderName();
37
    
38
    /**
39
     * Indica como deben ser guardadas las geometrias en la BBDD. Pueden
40
     * guardarse en WKT, WKB o EWKB.
41
     *
42
     * @return
43
     */
44
    public GeometrySupportType getGeometrySupportType();
45

    
46
    /**
47
     * Devuelbe un SQLBuilder adaptado al proveedor. Por ejemplo, uno especifico
48
     * para PostgreSQL, MySQL, Oracle, MSSQLServer...
49
     *
50
     * @return
51
     */
52
    public JDBCSQLBuilderBase createSQLBuilder();
53

    
54
    /**
55
     * Devueble las comillas que han de usaese para los identificadores.
56
     *
57
     * @return
58
     */
59
    public String getQuoteForIdentifiers();
60

    
61
    /**
62
     * Devueble las comillas que han de usaese en las constantes de cadena.
63
     *
64
     * @return
65
     */
66
    public String getQuoteForStrings();
67

    
68
    /**
69
     * Indica si la BBDD soporta valores automaticos, tipo serial.
70
     *
71
     * @return
72
     */
73
    public boolean allowAutomaticValues();
74

    
75
    /**
76
     * Indica si la BBDD soporta el uso de OFFSET en la sentencia select.
77
     *
78
     * @return
79
     */
80
    public boolean supportOffsetInSelect();
81

    
82
    /**
83
     * Indica si se especifico un subquery al abrir el proveedor.
84
     *
85
     * @return
86
     */
87
    public boolean useSubquery();
88

    
89
    /**
90
     * Indica si la BBDD tiene soporte espacial.
91
     *
92
     * @return
93
     */
94
    public boolean hasSpatialFunctions();
95

    
96
    public boolean supportFilter(Evaluator evaluator);
97
    
98
    public boolean supportOrder(FeatureQueryOrder order);
99
    
100
    public boolean allowNestedOperations();
101
    /**
102
     * Indica si podemos escribir el tipo de geometria indicado.
103
     *
104
     * @param geometryType
105
     * @param geometrySubtype
106
     * @return
107
     */
108
    public boolean canWriteGeometry(
109
            int geometryType, 
110
            int geometrySubtype
111
    );
112

    
113
    public Connection getConnection() throws AccessResourceException;
114

    
115
    public Connection getConnectionWritable() throws AccessResourceException;
116

    
117
    public String getConnectionURL();
118
    
119
    public JDBCConnectionParameters getConnectionParameters();
120

    
121
    public void closeConnection(Connection connection);
122

    
123
    public void closeConnectionQuietly(Connection connection);
124

    
125
    public GeometryManager getGeometryManager();
126

    
127
    public ResulSetControler getResulSetControler();
128

    
129
    public String getSourceId();
130

    
131
    public ResourceProvider getResource();
132

    
133
    public void dispose();
134

    
135
    public void fetchFeature(
136
            FeatureProvider feature, 
137
            ResultSet rs,
138
            FeatureAttributeDescriptor[] columns
139
    ) throws DataException;
140
    
141
    public void fetchFeature(
142
            FeatureProvider feature, 
143
            ResultSetEntry rs
144
    ) throws DataException;
145

    
146
    public Geometry getGeometryFromColumn(
147
            ResultSet rs, 
148
            int index
149
    ) throws DataException;
150

    
151
    public Geometry getGeometryFromColumn(
152
            ResultSetEntry rs, 
153
            int index
154
    ) throws DataException;
155

    
156
    public OperationsFactory getOperations();
157

    
158
    public FeatureProvider createFeature(
159
            FeatureType featureType
160
    ) throws DataException;
161

    
162
    public JDBCStoreProvider createProvider(
163
            JDBCStoreParameters parameters,
164
            DataStoreProviderServices providerServices
165
    ) throws InitializeException;
166

    
167
    public JDBCServerExplorer createServerExplorer(
168
            JDBCServerExplorerParameters parameters, 
169
            DataServerExplorerProviderServices providerServices
170
    ) throws InitializeException;
171

    
172
    public SRSSolver getSRSSolver();
173
    
174
    public JDBCNewStoreParameters createNewStoreParameters();
175

    
176
    public JDBCStoreParameters createOpenStoreParameters();
177
    
178
    public JDBCServerExplorerParameters createServerExplorerParameters();
179

    
180
    public String getSourceId(JDBCStoreParameters parameters);
181

    
182
}