fedora.server.search
Class FieldSearchResultSQLImpl

java.lang.Object
  extended byfedora.server.StdoutLogging
      extended byfedora.server.search.FieldSearchResultSQLImpl
All Implemented Interfaces:
FieldSearchResult, Logging

public class FieldSearchResultSQLImpl
extends StdoutLogging
implements FieldSearchResult

Title: FieldSearchResultSQLImpl.java

Description: A FieldSearchResults object returned as the result of a FieldSearchSQLImpl search.

A FieldSearchResultSQLImpl is intended to be re-used in cases where the results of a query require more than one call to the server.

Version:
$Id: FieldSearchResultSQLImpl.java,v 1.32 2005/05/06 20:03:55 eddie Exp $
Author:
cwilper@cs.cornell.edu

Field Summary
 
Fields inherited from class fedora.server.StdoutLogging
CONFIG, FINE, FINER, FINEST, INFO, SEVERE, WARNING
 
Constructor Summary
protected FieldSearchResultSQLImpl(ConnectionPool cPool, RepositoryReader repoReader, java.lang.String[] resultFields, int maxResults, int maxSeconds, FieldSearchQuery query, Logging logTarget)
          Construct a FieldSearchResultSQLImpl object.
 
Method Summary
 long getCompleteListSize()
           
 long getCursor()
           
 java.util.Date getExpirationDate()
           
 java.lang.String getToken()
           
protected  boolean isExpired()
           
 java.util.List objectFieldsList()
           
protected  void step()
          Update object with the next chunk of results.
 
Methods inherited from class fedora.server.StdoutLogging
logConfig, logFine, logFiner, logFinest, loggingConfig, loggingFine, loggingFiner, loggingFinest, loggingInfo, loggingSevere, loggingWarning, logInfo, logSevere, logWarning, setLogLevel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FieldSearchResultSQLImpl

protected FieldSearchResultSQLImpl(ConnectionPool cPool,
                                   RepositoryReader repoReader,
                                   java.lang.String[] resultFields,
                                   int maxResults,
                                   int maxSeconds,
                                   FieldSearchQuery query,
                                   Logging logTarget)
                            throws java.sql.SQLException,
                                   QueryParseException
Construct a FieldSearchResultSQLImpl object.

Upon construction, a connection is obtained from the connectionPool, and the query is executed. (The connection will be returned to the pool only after the last result has been obtained from the ResultSet, the session is expired, or some non-recoverable error has occurred)

Once the ResultSet is obtained, one result is requested of it (and remembered for use in step()); then the call returns.

Parameters:
cPool - the connectionPool
repoReader - the provider of object field information for results
resultFields - which fields should be returned in results
maxResults - how many results should be returned at one time. This should be the smaller of a) the FieldSearchImpl's limit [the server limit] and b) the requested limit [the client limit]
query - the end-user query
logTarget - where to send log messages
Method Detail

isExpired

protected boolean isExpired()

step

protected void step()
             throws UnrecognizedFieldException,
                    ObjectIntegrityException,
                    RepositoryConfigurationException,
                    StreamIOException,
                    ServerException
Update object with the next chunk of results. if getToken() is null after this call, the resultSet was exhausted.

Throws:
UnrecognizedFieldException
ObjectIntegrityException
RepositoryConfigurationException
StreamIOException
ServerException

objectFieldsList

public java.util.List objectFieldsList()
Specified by:
objectFieldsList in interface FieldSearchResult

getToken

public java.lang.String getToken()
Specified by:
getToken in interface FieldSearchResult

getCursor

public long getCursor()
Specified by:
getCursor in interface FieldSearchResult

getCompleteListSize

public long getCompleteListSize()
Specified by:
getCompleteListSize in interface FieldSearchResult

getExpirationDate

public java.util.Date getExpirationDate()
Specified by:
getExpirationDate in interface FieldSearchResult