org.apache.jackrabbit.core.query.lucene
Class SearchIndex.CombinedIndexReader

java.lang.Object
  extended by org.apache.lucene.index.IndexReader
      extended by org.apache.lucene.index.MultiReader
          extended by org.apache.jackrabbit.core.query.lucene.SearchIndex.CombinedIndexReader
All Implemented Interfaces:
HierarchyResolver, MultiIndexReader, ReleaseableIndexReader
Enclosing class:
SearchIndex

protected static final class SearchIndex.CombinedIndexReader
extends org.apache.lucene.index.MultiReader
implements HierarchyResolver, MultiIndexReader

Combines multiple CachingMultiIndexReader into a MultiReader with HierarchyResolver support.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader
org.apache.lucene.index.IndexReader.FieldOption
 
Field Summary
 
Fields inherited from class org.apache.lucene.index.IndexReader
hasChanges
 
Constructor Summary
SearchIndex.CombinedIndexReader(CachingMultiIndexReader[] indexReaders)
           
 
Method Summary
 org.apache.jackrabbit.core.query.lucene.ForeignSegmentDocId createDocId(UUID uuid)
          Creates a document id for the given uuid.
 boolean equals(Object obj)
           
 int getDocumentNumber(org.apache.jackrabbit.core.query.lucene.ForeignSegmentDocId docId)
          Returns the document number for the passed docId.
 org.apache.lucene.index.IndexReader[] getIndexReaders()
          
 int getParent(int n)
          Returns the document number of the parent of n or -1 if n does not have a parent (n is the root node).
 int hashCode()
           
 void release()
          Releases this index reader and potentially frees resources.
 
Methods inherited from class org.apache.lucene.index.MultiReader
docFreq, doClose, doCommit, document, doDelete, doSetNorm, doUndeleteAll, getFieldNames, getTermFreqVector, getTermFreqVector, getTermFreqVector, getTermFreqVectors, getVersion, hasDeletions, hasNorms, isCurrent, isDeleted, isOptimized, maxDoc, norms, norms, numDocs, reopen, termDocs, termPositions, terms, terms
 
Methods inherited from class org.apache.lucene.index.IndexReader
acquireWriteLock, close, commit, decRef, deleteDocument, deleteDocuments, directory, document, ensureOpen, flush, getCurrentVersion, getCurrentVersion, getCurrentVersion, getTermInfosIndexDivisor, incRef, indexExists, indexExists, indexExists, isLocked, isLocked, lastModified, lastModified, lastModified, main, open, open, open, open, setNorm, setNorm, setTermInfosIndexDivisor, termDocs, termPositions, undeleteAll, unlock
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SearchIndex.CombinedIndexReader

public SearchIndex.CombinedIndexReader(CachingMultiIndexReader[] indexReaders)
Method Detail

getParent

public int getParent(int n)
              throws IOException
Description copied from interface: HierarchyResolver
Returns the document number of the parent of n or -1 if n does not have a parent (n is the root node).

Specified by:
getParent in interface HierarchyResolver
Parameters:
n - the document number.
Returns:
the document number of n's parent.
Throws:
IOException - if an error occurs while reading from the index.

getIndexReaders

public org.apache.lucene.index.IndexReader[] getIndexReaders()

Specified by:
getIndexReaders in interface MultiIndexReader
Returns:
the IndexReaders that are contained in this MultiIndexReader.

release

public void release()
             throws IOException
Releases this index reader and potentially frees resources. In contrast to IndexReader.close() this method does not necessarily close the index reader, but gives the implementation the opportunity to do reference counting.

Specified by:
release in interface ReleaseableIndexReader
Throws:
IOException - if an error occurs while releasing the index reader.

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

createDocId

public org.apache.jackrabbit.core.query.lucene.ForeignSegmentDocId createDocId(UUID uuid)
                                                                        throws IOException
Creates a document id for the given uuid.

Specified by:
createDocId in interface MultiIndexReader
Parameters:
uuid - the uuid of the node.
Returns:
a foreign segment doc id or null if there is no node with the given uuid.
Throws:
IOException - if an error occurs while reading from the index.

getDocumentNumber

public int getDocumentNumber(org.apache.jackrabbit.core.query.lucene.ForeignSegmentDocId docId)
Returns the document number for the passed docId. If the id is invalid -1 is returned.

Specified by:
getDocumentNumber in interface MultiIndexReader
Parameters:
docId - the document id to resolve.
Returns:
the document number or -1 if it is invalid (e.g. does not exist).


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