org.geotools.arcsde.data |
DataStore implementation for the ArcSDE 8.x and 9.x spatial gateway.
This implementation is based on the ESRI's ArcSDE Java API. This API is based on
a single jar file wich maven downloads automatically and a couple of platform specific
libraries (.dll or .so). So we have made an effort in order to this DataStore implementation
not being dependant of those native libraries.
The feature set of the ArcSDEDataStore includes feature write support but is actually limited
to the inprocess locking manager. Native locking should be developed and will be higly appreciated,
so volunteers are wellcome.
|
Java Source File Name | Type | Comment |
ArcSDEAdapter.java | Class | Utility class to deal with SDE specifics such as creating SeQuery objects
from geotool's Query's, mapping SDE types to Java ones and JTS Geometries,
etc. |
ArcSDEAttributeReader.java | Class | Implements an attribute reader that is aware of the particulars of ArcSDE. |
ArcSDEDataStore.java | Class | Implements a DataStore to work upon an ArcSDE spatial database gateway.
String[] getTypeNames() FeatureType getSchema(String typeName) FeatureReader
getFeatureReader( typeName ) FeatureWriter getFeatureWriter( typeName )
Filter getUnsupportedFilter(String typeName, Filter filter) FeatureReader
getFeatureReader(String typeName, Query query)
All remaining functionality is implemented against these methods, including
Transaction and Locking Support. |
ArcSDEDataStoreTest.java | Class | |
ArcSDEFeatureStoreTest.java | Class | |
ArcSDEFeatureWriter.java | Class | Implementation fo the FeatureWriter interface for use with the
ArcSDEDataStore class. |
ArcSDEGeometryBuilder.java | Class | Creates propper JTS Geometry objects from SeShape objects and
viceversa.
SeShape 's are gathered from an SeRow ArcSDE
API's result object and holds it's geometry attributes as a three dimensional
array of double primitives as explained bellow.
By this way, we avoid the creation of ArcSDE's java implementation of OGC
geometries for later translation to JTS, avoiding too the dependency on the
ArcSDE native library wich the geometry package of the ArcSDE Java API
depends on.
Given double [][][]coords the meaning of this array is as
follow:
- coords.length reprsents the number of geometries this geometry is
composed of.
|
ArcSDEGeometryBuildingException.java | Class | |
ArcSDEJavaApiTest.java | Class | Exersices the ArcSDE Java API to ensure our assumptions are correct. |
ArcSDEOldStyleFiltersTest.java | Class | |
ArcSDEQuery.java | Class | Wrapper class for SeQuery to hold a SeConnection until close() is called and
provide utility methods. |
ArcSDEQueryTest.java | Class | |
ArcTransactionState.java | Class | Externalizes transactional state for ArcSDEFeatureWriter
instances. |
FIDReader.java | Class | Strategy object used to manage the different ways an ArcSDE server handles
row identity. |
GeometryBuilderTest.java | Class | |
InProcessViewSupportTestData.java | Class | |
SDEJavaApiJoinTest.java | Class | ArcSDEDAtaStore test case for a master-child joining
This test will create an sde layer (table + spatial table) as master and a
business table as child:
-----------------------------------------------
| GT_SDE_TEST_MASTER |
-----------------------------------------------
| ID(int) | NAME (string) | SHAPE (Point) |
-----------------------------------------------
| 1 | name1 | POINT(1, 1) |
-----------------------------------------------
| 2 | name2 | POINT(2, 2) |
-----------------------------------------------
| 3 | name3 | POINT(3, 3) |
-----------------------------------------------
---------------------------------------------------------------------
| GT_SDE_TEST_CHILD |
---------------------------------------------------------------------
| ID(int) | MASTER_ID | NAME (string) | DESCRIPTION(string |
---------------------------------------------------------------------
| 1 | 1 | child1 | description1 |
---------------------------------------------------------------------
| 2 | 2 | child2 | description2 |
---------------------------------------------------------------------
| 3 | 2 | child3 | description3 |
---------------------------------------------------------------------
| 4 | 3 | child4 | description4 |
---------------------------------------------------------------------
| 5 | 3 | child5 | description5 |
---------------------------------------------------------------------
| 6 | 3 | child6 | description6 |
---------------------------------------------------------------------
</re>
The following are rules that may help you in correctly specifying an SQL
query that will work with the ArcSDE Java API.
|
SdeRow.java | Class | Wrapper for an SeRow so it allows asking multiple times for the same
property. |
TestData.java | Class | Provides access to the ArcSDEDataStore test data configuration. |
TestFilterHandler.java | Class | stolen from filter module tests. |
ViewRegisteringFactoryHelper.java | Class | Utility class to help DataStoreFactories for
s register the views provided
in a java.util.Map in the call to the factory's
createDataStore(Map) method.
NOTE this class is a rough copy of the one in the sql-datastore
unsupported module. |