org.apache.jackrabbit.core.query.lucene
Class QueryResultImpl

java.lang.Object
  extended by org.apache.jackrabbit.core.query.lucene.QueryResultImpl
All Implemented Interfaces:
QueryResult
Direct Known Subclasses:
MultiColumnQueryResult, SingleColumnQueryResult

public abstract class QueryResultImpl
extends Object
implements QueryResult

Implements the QueryResult interface.


Field Summary
protected  AccessManager accessMgr
          The access manager of the session that executes the query.
protected  boolean docOrder
          If true nodes are returned in document order.
protected  SearchIndex index
          The search index to execute the query.
protected  ItemManager itemMgr
          The item manager of the session executing the query
protected  Path[] orderProps
          The relative paths of properties to use for ordering the result set.
protected  boolean[] orderSpecs
          The order specifier for each of the order properties.
protected  AbstractQueryImpl queryImpl
          The query instance which created this query result.
protected  Name[] selectProps
          The select properties
protected  SessionImpl session
          The session executing the query
protected  org.apache.jackrabbit.core.query.lucene.SpellSuggestion spellSuggestion
          The spell suggestion or null if not available.
 
Constructor Summary
QueryResultImpl(SearchIndex index, ItemManager itemMgr, SessionImpl session, AccessManager accessMgr, AbstractQueryImpl queryImpl, org.apache.jackrabbit.core.query.lucene.SpellSuggestion spellSuggestion, Name[] selectProps, Path[] orderProps, boolean[] orderSpecs, boolean documentOrder, long offset, long limit)
          Creates a new query result.
 
Method Summary
protected abstract  ExcerptProvider createExcerptProvider()
          Creates an excerpt provider for this result set.
protected abstract  MultiColumnQueryHits executeQuery(long resultFetchHint)
          Executes the query for this result and returns hits.
 String[] getColumnNames()
          
 NodeIterator getNodes()
          
protected  void getResults(long size)
          Attempts to get size results and puts them into resultNodes.
 RowIterator getRows()
          
 int getTotalSize()
          Returns the total number of hits.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

index

protected final SearchIndex index
The search index to execute the query.


itemMgr

protected final ItemManager itemMgr
The item manager of the session executing the query


session

protected final SessionImpl session
The session executing the query


accessMgr

protected final AccessManager accessMgr
The access manager of the session that executes the query.


queryImpl

protected final AbstractQueryImpl queryImpl
The query instance which created this query result.


spellSuggestion

protected final org.apache.jackrabbit.core.query.lucene.SpellSuggestion spellSuggestion
The spell suggestion or null if not available.


selectProps

protected final Name[] selectProps
The select properties


orderProps

protected final Path[] orderProps
The relative paths of properties to use for ordering the result set.


orderSpecs

protected final boolean[] orderSpecs
The order specifier for each of the order properties.


docOrder

protected final boolean docOrder
If true nodes are returned in document order.

Constructor Detail

QueryResultImpl

public QueryResultImpl(SearchIndex index,
                       ItemManager itemMgr,
                       SessionImpl session,
                       AccessManager accessMgr,
                       AbstractQueryImpl queryImpl,
                       org.apache.jackrabbit.core.query.lucene.SpellSuggestion spellSuggestion,
                       Name[] selectProps,
                       Path[] orderProps,
                       boolean[] orderSpecs,
                       boolean documentOrder,
                       long offset,
                       long limit)
                throws RepositoryException
Creates a new query result. The concrete sub class is responsible for calling getResults(long) after this constructor had been called.

Parameters:
index - the search index where the query is executed.
itemMgr - the item manager of the session executing the query.
session - the session executing the query.
accessMgr - the access manager of the session executiong the query.
queryImpl - the query instance which created this query result.
spellSuggestion - the spell suggestion or null if none is available.
selectProps - the select properties of the query.
orderProps - the relative paths of the order properties.
orderSpecs - the order specs, one for each order property name.
documentOrder - if true the result is returned in document order.
limit - the maximum result size
offset - the offset in the total result set
Throws:
RepositoryException - if an error occurs while reading from the repository.
Method Detail

getColumnNames

public String[] getColumnNames()
                        throws RepositoryException

Specified by:
getColumnNames in interface QueryResult
Throws:
RepositoryException

getNodes

public NodeIterator getNodes()
                      throws RepositoryException

Specified by:
getNodes in interface QueryResult
Throws:
RepositoryException

getRows

public RowIterator getRows()
                    throws RepositoryException

Specified by:
getRows in interface QueryResult
Throws:
RepositoryException

executeQuery

protected abstract MultiColumnQueryHits executeQuery(long resultFetchHint)
                                              throws IOException
Executes the query for this result and returns hits. The caller must close the query hits when he is done using it.

Parameters:
resultFetchHint - a hint on how many results should be fetched.
Returns:
hits for this query result.
Throws:
IOException - if an error occurs while executing the query.

createExcerptProvider

protected abstract ExcerptProvider createExcerptProvider()
                                                  throws IOException
Creates an excerpt provider for this result set.

Returns:
an excerpt provider.
Throws:
IOException - if an error occurs.

getResults

protected void getResults(long size)
                   throws RepositoryException
Attempts to get size results and puts them into resultNodes. If the size of resultNodes is less than size then there are no more than resultNodes.size() results for this query.

Parameters:
size - the number of results to fetch for the query.
Throws:
RepositoryException - if an error occurs while executing the query.

getTotalSize

public int getTotalSize()
Returns the total number of hits. This is the number of results you will get get if you don't set any limit or offset. Keep in mind that this number may get smaller if nodes are found in the result set which the current session has no permission to access. This method may return -1 if the total size is unknown.

Returns:
the total number of hits.


Copyright © 2004-2009 The Apache Software Foundation. All Rights Reserved.