com.uwyn.rife.database
Class DbRowProcessor

java.lang.Object
  extended by com.uwyn.rife.database.DbRowProcessor
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
DatabaseTaskoptions.ProcessTaskoption, DatabaseTasks.ProcessTask, DatabaseUsers.ListDatabaseRoles, DatabaseUsers.ListDatabaseUsers, DatabaseUsers.ProcessVerifyCredentials, DatabaseUsers.RoleFetcher, DbBeanFetcher, ProcessSessionValidity

public abstract class DbRowProcessor
extends Object
implements Cloneable

This abstract base class should be used to implement classes that process one row in a database query resulset. The fetch method of a DbQueryManager requires an instance of a DbRowProcessor and calls its processRow method each time it is called.

The DbRowProcessor instance can then work with the result set and extract all needed data. It is free to implement any logic to be able to return the retrieved data in an acceptable form to the user.

A class that extends DbRowProcessor can for example take a Template instance as the argument of its constructor and progressively fill in each resulting row in a HTML table. This, without having to maintain the query results in memory to be able to provide it to a seperate method which is responsible for the handling of the output. Using a DbRowProcessor thus allows for perfect seperation and abstraction of result processing without having to be burdened with possible large memory usage or large object allocation.

Since:
1.0
Version:
$Revision: 3634 $
Author:
Geert Bevin (gbevin[remove] at uwyn dot com)
See Also:
processRow(ResultSet resultSet), DbQueryManager

Constructor Summary
DbRowProcessor()
           
 
Method Summary
 Object clone()
          Simply clones the instance with the default clone method since this class contains no object member variables.
abstract  boolean processRow(ResultSet resultSet)
          This method has to be implemented by each class that extends the DbRowProcessor class.
 boolean wasSuccessful()
          Indicates whether the processing of the row was successful.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DbRowProcessor

public DbRowProcessor()
Method Detail

processRow

public abstract boolean processRow(ResultSet resultSet)
                            throws SQLException
This method has to be implemented by each class that extends the DbRowProcessor class. It has to contain all the logic that should be executed for each row of a resultset.

Parameters:
resultSet - the ResultSet instance that was provided to the DbQueryManager's fetch method.
Returns:
true if the processing is considered successful; or

false if the processing is considered failed.

Note: this return value is purely indicative and unless the user does checks with the wasSuccessful() method, it will have no influence on anything.

Throws:
SQLException - when a database error occurs, it's thus not necessary to catch all the possible SQLExceptions inside this method. They'll be caught higher up and be transformed in DatabaseExceptions.
Since:
1.0
See Also:
DbQueryManager.fetch(ResultSet, DbRowProcessor), wasSuccessful()

wasSuccessful

public final boolean wasSuccessful()
Indicates whether the processing of the row was successful.

Returns:
true if the processing was successful; or

false if the processing was unsuccessful.

Since:
1.0

clone

public Object clone()
Simply clones the instance with the default clone method since this class contains no object member variables.

Overrides:
clone in class Object
Since:
1.0


Copyright © 2001-2007 Uwyn sprl/bvba. All Rights Reserved.