Package org.geotools.jdbc
Class JDBCFeatureReader
- Object
-
- JDBCFeatureReader
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FeatureReader<SimpleFeatureType,SimpleFeature>
- Direct Known Subclasses:
JDBCInsertFeatureWriter
,JDBCJoiningFeatureReader
,JDBCUpdateFeatureWriter
public class JDBCFeatureReader extends Object implements FeatureReader<SimpleFeatureType,SimpleFeature>
Reader for jdbc datastore- Author:
- Justin Deoliveira, The Open Plannign Project.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
JDBCFeatureReader.ResultSetFeature
Feature wrapper around a result set.
-
Field Summary
Fields Modifier and Type Field Description protected SimpleFeatureBuilder
builder
feature builderprotected JDBCReaderCallback
callback
protected String[]
columnNames
protected Connection
cx
protected JDBCDataStore
dataStore
the datastoreprotected JDBCFeatureSource
featureSource
The feature source the reader originated from.protected SimpleFeatureType
featureType
schema of featuresprotected GeometryFactory
geometryFactory
geometry factory used to create geometry objectsprotected Hints
hints
hintsprotected static Logger
LOGGER
protected ResultSetMetaData
md
protected Boolean
next
flag indicating if the iterator has another featureprotected int
offset
offset/column index to start reading from result setprotected PrimaryKey
pkey
The primary keyprotected Query
query
the queryprotected ResultSet
rs
protected ScreenMap
screenMap
Screenmap for feature skipping behaviourprotected Statement
st
statement,result set that is being worked from.protected static Boolean
TRACE_ENABLED
When true, the stack trace that created a reader that wasn't closed is recorded and then printed out when warning the user about this.protected Exception
tracer
protected Transaction
tx
current transaction
-
Constructor Summary
Constructors Constructor Description JDBCFeatureReader(String sql, Connection cx, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query)
JDBCFeatureReader(PreparedStatement st, Connection cx, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query)
JDBCFeatureReader(ResultSet rs, Connection cx, int offset, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query)
JDBCFeatureReader(JDBCFeatureReader other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
cleanup()
Cleans up the reader state without closing the accessory resultset, statement and connection.void
close()
Release the underlying resources associated with this stream.protected void
ensureNext()
protected void
ensureOpen()
protected void
finalize()
SimpleFeatureType
getFeatureType()
Return the FeatureType this reader has been configured to create.PrimaryKey
getPrimaryKey()
Query
getQuery()
boolean
hasNext()
Query whether this FeatureReader has another Feature.protected void
init(JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query)
SimpleFeature
next()
Reads the next Feature in the FeatureReader.protected SimpleFeature
readNextFeature()
void
setNext(Boolean next)
-
-
-
Field Detail
-
LOGGER
protected static final Logger LOGGER
-
TRACE_ENABLED
protected static final Boolean TRACE_ENABLED
When true, the stack trace that created a reader that wasn't closed is recorded and then printed out when warning the user about this.
-
featureSource
protected JDBCFeatureSource featureSource
The feature source the reader originated from.
-
dataStore
protected JDBCDataStore dataStore
the datastore
-
featureType
protected SimpleFeatureType featureType
schema of features
-
geometryFactory
protected GeometryFactory geometryFactory
geometry factory used to create geometry objects
-
query
protected Query query
the query
-
hints
protected Hints hints
hints
-
screenMap
protected ScreenMap screenMap
Screenmap for feature skipping behaviour
-
tx
protected Transaction tx
current transaction
-
next
protected Boolean next
flag indicating if the iterator has another feature
-
builder
protected SimpleFeatureBuilder builder
feature builder
-
pkey
protected PrimaryKey pkey
The primary key
-
st
protected Statement st
statement,result set that is being worked from.
-
rs
protected ResultSet rs
-
cx
protected Connection cx
-
md
protected ResultSetMetaData md
-
tracer
protected Exception tracer
-
columnNames
protected String[] columnNames
-
offset
protected int offset
offset/column index to start reading from result set
-
callback
protected JDBCReaderCallback callback
-
-
Constructor Detail
-
JDBCFeatureReader
public JDBCFeatureReader(String sql, Connection cx, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query) throws SQLException
- Throws:
SQLException
-
JDBCFeatureReader
public JDBCFeatureReader(PreparedStatement st, Connection cx, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query) throws SQLException
- Throws:
SQLException
-
JDBCFeatureReader
public JDBCFeatureReader(ResultSet rs, Connection cx, int offset, JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query) throws SQLException
- Throws:
SQLException
-
JDBCFeatureReader
public JDBCFeatureReader(JDBCFeatureReader other)
-
-
Method Detail
-
init
protected void init(JDBCFeatureSource featureSource, SimpleFeatureType featureType, Query query)
-
setNext
public void setNext(Boolean next)
-
getFeatureType
public SimpleFeatureType getFeatureType()
Description copied from interface:FeatureReader
Return the FeatureType this reader has been configured to create.- Specified by:
getFeatureType
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- the FeatureType of the Features this FeatureReader will create.
-
getPrimaryKey
public PrimaryKey getPrimaryKey()
-
getQuery
public Query getQuery()
-
hasNext
public boolean hasNext() throws IOException
Description copied from interface:FeatureReader
Query whether this FeatureReader has another Feature.- Specified by:
hasNext
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- True if there are more Features to be read. In other words, true if calls to next would return a feature rather than throwing an exception.
- Throws:
IOException
- If an error occurs determining if there are more Features.
-
readNextFeature
protected SimpleFeature readNextFeature() throws IOException
- Throws:
IOException
-
ensureNext
protected void ensureNext()
-
ensureOpen
protected void ensureOpen() throws IOException
- Throws:
IOException
-
next
public SimpleFeature next() throws IOException, IllegalArgumentException, NoSuchElementException
Description copied from interface:FeatureReader
Reads the next Feature in the FeatureReader.- Specified by:
next
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Returns:
- The next feature in the reader.
- Throws:
IOException
- If an error occurs reading the Feature.NoSuchElementException
- If there are no more Features in the Reader.IllegalArgumentException
-
close
public void close() throws IOException
Description copied from interface:FeatureReader
Release the underlying resources associated with this stream.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFeatureReader<SimpleFeatureType,SimpleFeature>
- Throws:
IOException
- if an I/O error occurs
-
cleanup
protected void cleanup() throws IOException
Cleans up the reader state without closing the accessory resultset, statement and connection. Use only if the above are shared with another object that will take care of closing them.- Throws:
IOException
-
-