com.ibm.etill.ldbcardcassette
Class LdbCardCassetteQuery.BatchQuery

com.ibm.etill.ldbcardcassette.LdbCardCassetteQuery.BatchQuery
Enclosing class:
LdbCardCassetteQuery

public final class LdbCardCassetteQuery.BatchQuery

A batch query object automatically selects information from the cassette dependent batch table using the same criteria that was used to select information from the framework batch table. It is responsible for building the correct SQL statement, performing the query, and collecting the results. Furthermore, it is responsible for combining the information from each cassette batch extension with the information already gathered for the framework batch.

A query object trades simplicity for efficiency. The simplest technique for acquiring cassette dependent information for each batch would be to perform a SQL Select statement for each framework batch passed to the cassette query object. Instead, this query object performs a single SQL Select statement, joining the cassette dependent batch table with the framework batch table using the same criteria used to select the framework batches passed to the cassette query object.


Inner Class Summary
 class LdbCardCassetteQuery.BatchQuery.BatchInfo
          A batch information object contains the information gathered from one row of the cassette dependent batch table.
 
Field Summary
private  java.util.Hashtable objBatches
          This query attribute is a collection of all the information selected from the cassette dependent batch table.
 
Constructor Summary
LdbCardCassetteQuery.BatchQuery(com.ibm.etill.framework.xdm.BatchQueryRequest argRequest)
          This constructor is use by the cassette query object when it is asked to service a BatchQuery request.
 
Method Summary
 void combine(java.util.Vector argFrameworkObjects)
          This method is used by the cassette query object to combine cassette dependent batch information with framework batch information.
protected  java.lang.String fromClause()
          This method is used by this object to construct the From clause for the SQL Select statement to be performed.
protected  int processQueryResults(java.sql.ResultSet argResultSet)
          This method is used by this class to process the results of the SQL Select statement.
protected  java.lang.String selectStatement()
          This method is used by this object to select the appropriate columns for the query.
protected  java.lang.String tableName()
          This method is used by this object to identify the name of the table to be used in the query.
 java.lang.String whereCondition()
          This method is used by this object to construct the Where clause for the SQL Select statement to be performed.
 

Field Detail

objBatches

private java.util.Hashtable objBatches
This query attribute is a collection of all the information selected from the cassette dependent batch table. The key is constructed using the table's primary key columns and the value is an inner batch information object.
Constructor Detail

LdbCardCassetteQuery.BatchQuery

public LdbCardCassetteQuery.BatchQuery(com.ibm.etill.framework.xdm.BatchQueryRequest argRequest)
                                throws com.ibm.etill.framework.payapi.ETillAbortOperation
This constructor is use by the cassette query object when it is asked to service a BatchQuery request. During construction, it obtains and collects the cassette dependent batch information using same criteria that was used to obtain the framework batch information.
Parameters:
argRequest - - the BatchQuery request.
Throws:
ETillAbortOperation - - any error results in this exception.
Method Detail

selectStatement

protected java.lang.String selectStatement()
This method is used by this object to select the appropriate columns for the query.

For this cassette, all columns are selected.

Returns:
- a String that lists the columns to be included in the query's result set.

tableName

protected java.lang.String tableName()
This method is used by this object to identify the name of the table to be used in the query.

For this cassette, the table name is the name of a cassette dependent view that can be found in the database.

Returns:
- a String containing the owner qualified table name.

fromClause

protected java.lang.String fromClause()
This method is used by this object to construct the From clause for the SQL Select statement to be performed.

For this cassette, the method returns the batch view selected by this object's tableName() method.

Returns:
- The string containing the From clause to be used in the query

whereCondition

public java.lang.String whereCondition()
This method is used by this object to construct the Where clause for the SQL Select statement to be performed.

For this cassette, the batch view selected by this object's tableName() method is designed to use the same Where clause specified in the original request to select the framework batch objects.

Returns:
- The string containing the Where clause to be used in the query

processQueryResults

protected int processQueryResults(java.sql.ResultSet argResultSet)
                           throws com.ibm.etill.framework.payapi.ETillAbortOperation
This method is used by this class to process the results of the SQL Select statement. For each row in the result set, it constructs an inner batch information object and saves it in a collection using the proper batch key.
Parameters:
argResultSet - - The result set produced when the manufactured SQL Select statement was performed.
Returns:
- An integer containing the number of cassette dependent batch information objects in the collection.
Throws:
ETillAbortOperation - - Any error results in this exception.

combine

public void combine(java.util.Vector argFrameworkObjects)
This method is used by the cassette query object to combine cassette dependent batch information with framework batch information. For each framework batch object in the collection provided, it determines if there is a matching cassette batch information object and, if so, asks the cassette batch information object to add its XML fields to the result.
Parameters:
argFrameworkObjects - - a collection of framework credit objects previously selected by the framework while processing the merchant's query request.