com.ibm.etill.ldbcardcassette
Class LdbCardCassetteQuery.AccountQuery

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

public final class LdbCardCassetteQuery.AccountQuery

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

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


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

objAccounts

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

LdbCardCassetteQuery.AccountQuery

public LdbCardCassetteQuery.AccountQuery(com.ibm.etill.framework.xdm.AccountQueryRequest argRequest)
                                  throws com.ibm.etill.framework.payapi.ETillAbortOperation
This constructor is use by the cassette query object when it is asked to service an AccountQuery request. During construction, it obtains and collects the cassette dependent account information using same criteria that was used to obtain the framework account information.
Parameters:
argRequest - - the AccountQuery 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 account 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 account 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 account 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 account information object and saves it in a collection using the proper account key.
Parameters:
argResultSet - - The result set produced when the manufactured SQL Select statement was performed.
Returns:
- An integer containing the number of cassette dependent account 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 account information with framework account information. For each framework account object in the collection provided, it determines if there is a matching cassette account information object and, if so, asks the cassette account information object to add its XML fields to the result.
Parameters:
argFrameworkObjects - - a collection of framework account objects previously selected by the framework while processing the merchant's query request.