org.deegree_impl.services.wfs.oracle
Class CTransaction

java.lang.Object
  extended byjava.lang.Thread
      extended byorg.deegree_impl.services.wfs.WFSMainLoop
          extended byorg.deegree_impl.services.wfs.oracle.CTransaction
All Implemented Interfaces:
java.lang.Runnable

class CTransaction
extends WFSMainLoop

class defining the processing of a transaction request


Field Summary
private  DatastoreConfiguration config
           
private  DBConnectionPool pool
           
 
Fields inherited from class org.deegree_impl.services.wfs.WFSMainLoop
parent, request
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
CTransaction(OracleDataStore parent, OGCWebServiceRequest request)
          Creates a new CTransaction object.
 
Method Summary
private  java.lang.String addLineStringProperty(GMLLineString line)
          adds a linestring to the insert statement
private  java.lang.String addMultiLineStringProperty(GMLMultiLineString mline)
          adds a multilinestring to the insert statement
private  java.lang.String addMultiPointProperty(GMLMultiPoint mpoint)
          adds a multipoint to the insert statement
private  java.lang.String addMultiPolygonProperty(GMLMultiPolygon mpoly)
          adds a multipolygon to the insert statement
private  java.lang.String addPointProperty(GMLPoint point)
          adds a point to the insert statement
private  java.lang.String addPolygonProperty(GMLPolygon poly)
          adds a polygon to the insert statement
private  java.lang.String[] getAffectedFeatureTypes(WFSOperation[] operations)
          returns the list of feature types that are affected by a Transaction
private  java.util.Set getFeatureIDs(FeatureType ft, Filter filter, DBAccess osa)
          Retrieves all IDs of the Feature's MasterTable that are affected by the given Filter.
private  java.lang.String getGeomInsert(java.lang.String gml)
          generates a sql insert statement from the submitted feature that inserts its values into a table thats name equals the name of the features feature type.
private  void performDelete(FeatureType ft, java.util.HashMap tables)
           
private  boolean performDelete(WFSDelete delete)
          Deletes FeatureType-instances from the datastore that are specified by the given WFSDelete.
 java.util.ArrayList performInsert(InsertTree tree, OracleSpatialAccess osa)
           
private  java.lang.Object[] performInsert(WFSInsert insert)
          performs an insertion of one or more features into the database
protected  OGCWebServiceResponse[] performRequest(OGCWebServiceRequest request)
           
 
Methods inherited from class org.deegree_impl.services.wfs.WFSMainLoop
run
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pool

private DBConnectionPool pool

config

private DatastoreConfiguration config
Constructor Detail

CTransaction

public CTransaction(OracleDataStore parent,
                    OGCWebServiceRequest request)
Creates a new CTransaction object.

Parameters:
parent -
request -
Method Detail

performRequest

protected OGCWebServiceResponse[] performRequest(OGCWebServiceRequest request)
Specified by:
performRequest in class WFSMainLoop
Parameters:
request -
Returns:

getAffectedFeatureTypes

private java.lang.String[] getAffectedFeatureTypes(WFSOperation[] operations)
returns the list of feature types that are affected by a Transaction


performInsert

private java.lang.Object[] performInsert(WFSInsert insert)
                                  throws java.lang.Exception
performs an insertion of one or more features into the database

Throws:
java.lang.Exception

performInsert

public java.util.ArrayList performInsert(InsertTree tree,
                                         OracleSpatialAccess osa)
                                  throws java.lang.Exception
Parameters:
tree -
osa -
Returns:
Throws:
java.lang.Exception
InsertException

performDelete

private boolean performDelete(WFSDelete delete)
                       throws java.lang.Exception
Deletes FeatureType-instances from the datastore that are specified by the given WFSDelete.

Parameters:
delete - the WFS-Delete request to perform
Returns:
true, if the Request succeeded, else false
Throws:
java.lang.Exception

performDelete

private void performDelete(FeatureType ft,
                           java.util.HashMap tables)
                    throws java.lang.Exception
Parameters:
ft -
tables -
Throws:
java.lang.Exception

getFeatureIDs

private java.util.Set getFeatureIDs(FeatureType ft,
                                    Filter filter,
                                    DBAccess osa)
                             throws java.lang.Exception
Retrieves all IDs of the Feature's MasterTable that are affected by the given Filter.

Parameters:
ft - configuration information that is used for the mapping of the XML-Filter to the SQL-table structure
filter - Filter that is transformed to a WHERE-clause
Throws:
java.lang.Exception - if SQL-generation from the Filter fails or an SQL-error occurs

getGeomInsert

private java.lang.String getGeomInsert(java.lang.String gml)
                                throws java.lang.Exception
generates a sql insert statement from the submitted feature that inserts its values into a table thats name equals the name of the features feature type.

Throws:
java.lang.Exception

addPointProperty

private java.lang.String addPointProperty(GMLPoint point)
adds a point to the insert statement


addLineStringProperty

private java.lang.String addLineStringProperty(GMLLineString line)
adds a linestring to the insert statement


addPolygonProperty

private java.lang.String addPolygonProperty(GMLPolygon poly)
adds a polygon to the insert statement


addMultiPointProperty

private java.lang.String addMultiPointProperty(GMLMultiPoint mpoint)
adds a multipoint to the insert statement


addMultiLineStringProperty

private java.lang.String addMultiLineStringProperty(GMLMultiLineString mline)
adds a multilinestring to the insert statement


addMultiPolygonProperty

private java.lang.String addMultiPolygonProperty(GMLMultiPolygon mpoly)
adds a multipolygon to the insert statement