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.

-----------------------------------------------------------------------------

License and Copyright: The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/.

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The entire file consists of original code. Copyright © 2002-2005 by The Rector and Visitors of the University of Virginia and Cornell University. All rights reserved.

-----------------------------------------------------------------------------

Version:
$Id: FieldSearchResultSQLImpl.java,v 1.27 2005/01/18 15:15:25 cwilper 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