Package ca.uqac.lif.cep.jdbc
Class JdbcSource
- java.lang.Object
-
- ca.uqac.lif.cep.Processor
-
- ca.uqac.lif.cep.SynchronousProcessor
-
- ca.uqac.lif.cep.tmf.Source
-
- ca.uqac.lif.cep.jdbc.JdbcSource
-
- All Implemented Interfaces:
ca.uqac.lif.azrael.Printable,ca.uqac.lif.azrael.Readable,ca.uqac.lif.cep.Contextualizable,ca.uqac.lif.cep.Duplicable,ca.uqac.lif.cep.DuplicableProcessor
public class JdbcSource extends ca.uqac.lif.cep.tmf.SourceConverts a query to a database into a trace of named tuples.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.sql.Connectionm_connectionThe database connection objectprotected booleanm_feedOneByOneWhether the tuples of the underlying relation should be output one by one on every call tocompute(Object[], Queue), or output all at once on the first call to that method.protected booleanm_hasRunRemembers whether the query has already been run on the databaseprotected java.lang.Stringm_queryThe name of the database table to read from.protected java.sql.ResultSetm_resultSetThe query's result set, out of which tuples will be extracted one by oneprotected java.sql.Statementm_statementThe statement object corresponding to the SQL query being executed-
Fields inherited from class ca.uqac.lif.cep.SynchronousProcessor
m_inputPushables, m_outputPullables, m_tempQueue
-
Fields inherited from class ca.uqac.lif.cep.Processor
m_context, m_eventTracker, m_hasBeenNotifiedOfEndOfTrace, m_inputArity, m_inputCount, m_inputPullables, m_inputQueues, m_notifiedEndOfTraceDownstream, m_outputArity, m_outputCount, m_outputPushables, m_outputQueues, MAX_PULL_RETRIES, s_versionString
-
-
Constructor Summary
Constructors Constructor Description JdbcSource(java.sql.Connection conn, java.lang.String tablename)Builds a JDBC source.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancompute(java.lang.Object[] inputs, java.util.Queue<java.lang.Object[]> outputs)JdbcSourceduplicate(boolean with_state)voidreset()voidsetFeedOneByOne(boolean b)Sets whether the tuples of the underlying relation should be output one by one on every call tocompute(Object[], Queue), or output all at once on the first call to that method.-
Methods inherited from class ca.uqac.lif.cep.SynchronousProcessor
getPullableOutput, getPushableInput, setEventTracker
-
Methods inherited from class ca.uqac.lif.cep.Processor
allNotifiedEndOfTrace, allNull, associateTo, associateToInput, associateToOutput, copyInputQueue, copyOutputQueue, duplicate, duplicateInto, equals, getAt, getContext, getContext, getEmptyQueue, getEventTracker, getId, getInputArity, getInputCount, getInputQueue, getInputType, getInputTypesFor, getLeaves, getLeaves, getOutputArity, getOutputCount, getOutputQueue, getOutputType, getPullableInput, getPullableOutput, getPushableInput, getPushableOutput, hashCode, leftShift, newContext, onEndOfTrace, or, or, print, printState, read, readState, rightShift, setContext, setContext, setPullableInput, setPushableOutput, start, startAll, stop, stopAll
-
-
-
-
Field Detail
-
m_query
protected final java.lang.String m_query
The name of the database table to read from. Actually, this does not need to be a table name, as any SQL expression that returns a table (e.g. aSELECTstatement) can do.
-
m_connection
protected java.sql.Connection m_connection
The database connection object
-
m_statement
protected java.sql.Statement m_statement
The statement object corresponding to the SQL query being executed
-
m_resultSet
protected java.sql.ResultSet m_resultSet
The query's result set, out of which tuples will be extracted one by one
-
m_feedOneByOne
protected boolean m_feedOneByOne
Whether the tuples of the underlying relation should be output one by one on every call tocompute(Object[], Queue), or output all at once on the first call to that method.
-
m_hasRun
protected boolean m_hasRun
Remembers whether the query has already been run on the database
-
-
Constructor Detail
-
JdbcSource
public JdbcSource(java.sql.Connection conn, java.lang.String tablename)Builds a JDBC source.- Parameters:
conn- An open connection on the databasetablename- The name of the table to be read from. Actually, this does not need to be a table name, as any SQL expression that returns a table (e.g. aSELECTstatement) can do.
-
-
Method Detail
-
setFeedOneByOne
public void setFeedOneByOne(boolean b)
Sets whether the tuples of the underlying relation should be output one by one on every call tocompute(Object[], Queue), or output all at once on the first call to that method. While this has no effect on the end result, it might have an impact on the performance (e.g. if the source outputs a very large number of tuples in the output queue, which must be stored in memory).- Parameters:
b- Set totrueto feed the tuples one by one, false otherwise
-
compute
protected boolean compute(java.lang.Object[] inputs, java.util.Queue<java.lang.Object[]> outputs)- Specified by:
computein classca.uqac.lif.cep.SynchronousProcessor
-
duplicate
public JdbcSource duplicate(boolean with_state)
- Specified by:
duplicatein interfaceca.uqac.lif.cep.Duplicable- Specified by:
duplicatein classca.uqac.lif.cep.Processor
-
reset
public void reset()
- Overrides:
resetin classca.uqac.lif.cep.Processor
-
-