com.ibm.etill.ldbcardcassette
Class LdbCardCassetteQuery.CreditQuery

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

public final class LdbCardCassetteQuery.CreditQuery

A credit query object automatically selects information from the cassette dependent credit table using the same criteria that was used to select information from the framework credit 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 credit extension with the information already gathered for the framework credit.

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


Inner Class Summary
 class LdbCardCassetteQuery.CreditQuery.CreditInfo
          A credit information object contains the information gathered from one row of the cassette dependent credit table.
 
Field Summary
private  java.util.Hashtable objCredits
          This query attribute is a collection of all the information selected from the cassette dependent credit table.
 
Constructor Summary
LdbCardCassetteQuery.CreditQuery(com.ibm.etill.framework.xdm.CreditQueryRequest argRequest)
          This constructor is use by the cassette query object when it is asked to service a CreditQuery request.
 
Method Summary
 void combine(java.util.Vector argFrameworkObjects)
          This method is used by the cassette query object to combine cassette dependent credit information with framework credit 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

objCredits

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

LdbCardCassetteQuery.CreditQuery

public LdbCardCassetteQuery.CreditQuery(com.ibm.etill.framework.xdm.CreditQueryRequest argRequest)
                                 throws com.ibm.etill.framework.payapi.ETillAbortOperation
This constructor is use by the cassette query object when it is asked to service a CreditQuery request. During construction, it obtains and collects the cassette dependent credit information using same criteria that was used to obtain the framework credit information.
Parameters:
argRequest - - the PaymentQuery 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. There are two cases:
  1. The merchant has issued a query for payments and provided payment selection criteria so this query will obtain payment information for the payments selected
  2. The merchant has issued a query for payments within a batch and provided batch selection criteria so this query will obtain payment information for the batches selected

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 credit 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 credit 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 credit 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 credit information object and saves it in a collection using the proper credit key.
Parameters:
argResultSet - - The result set produced when the manufactured SQL Select statement was performed.
Returns:
- An integer containing the number of cassette dependent credit 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 credit information with framework credit information. For each framework credit object in the collection provided, it determines if there is a matching cassette credit information object and, if so, asks the cassette credit 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.