Author: epbernard
Date: 2010-06-30 09:39:50 -0400 (Wed, 30 Jun 2010)
New Revision: 19863
Added:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/DirectoryProviderData.java
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/PolymorphicIndexHierarchy.java
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/StateSearchFactoryImplementor.java
Removed:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/DirectoryProviderData.java
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/PolymorphicIndexHierarchy.java
Modified:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/ImmutableSearchFactory.java
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MutableSearchFactory.java
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/SearchFactoryBuilder.java
Log:
HSEARCH-397 Create StateSearchFactory contract, create spi / spi.internals packages
Deleted:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/DirectoryProviderData.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/DirectoryProviderData.java 2010-06-30
13:39:01 UTC (rev 19862)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/DirectoryProviderData.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -1,53 +0,0 @@
-package org.hibernate.search.impl;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.locks.ReentrantLock;
-
-import org.apache.lucene.search.Similarity;
-
-import org.hibernate.search.store.optimization.OptimizerStrategy;
-
-/**
-* @author Emmanuel Bernard
-*/
-class DirectoryProviderData {
- private final ReentrantLock dirLock = new ReentrantLock();
- private OptimizerStrategy optimizerStrategy;
- private final Set<Class<?>> classes = new HashSet<Class<?>>( 2
);
- private Similarity similarity = null;
- private boolean exclusiveIndexUsage;
-
- public void setOptimizerStrategy(OptimizerStrategy optimizerStrategy) {
- this.optimizerStrategy = optimizerStrategy;
- }
-
- public void setSimilarity(Similarity similarity) {
- this.similarity = similarity;
- }
-
- public void setExclusiveIndexUsage(boolean exclusiveIndexUsage) {
- this.exclusiveIndexUsage = exclusiveIndexUsage;
- }
-
- public ReentrantLock getDirLock() {
-
- return dirLock;
- }
-
- public OptimizerStrategy getOptimizerStrategy() {
- return optimizerStrategy;
- }
-
- public Set<Class<?>> getClasses() {
- return classes;
- }
-
- public Similarity getSimilarity() {
- return similarity;
- }
-
- public boolean isExclusiveIndexUsage() {
- return exclusiveIndexUsage;
- }
-}
Modified:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/ImmutableSearchFactory.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/ImmutableSearchFactory.java 2010-06-30
13:39:01 UTC (rev 19862)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/ImmutableSearchFactory.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -35,6 +35,9 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.search.Similarity;
+import org.hibernate.search.spi.internals.DirectoryProviderData;
+import org.hibernate.search.spi.internals.PolymorphicIndexHierarchy;
+import org.hibernate.search.spi.internals.StateSearchFactoryImplementor;
import org.slf4j.Logger;
import org.hibernate.annotations.common.AssertionFailure;
@@ -69,7 +72,7 @@
/**
* @author Emmanuel Bernard
*/
-public class ImmutableSearchFactory implements SearchFactoryImplementor,
WorkerBuildContext {
+public class ImmutableSearchFactory implements StateSearchFactoryImplementor,
WorkerBuildContext {
static {
Version.touch();
@@ -122,6 +125,10 @@
return backendQueueProcessorFactory;
}
+ public Map<String, FilterDef> getFilterDefinitions() {
+ return filterDefinitions;
+ }
+
public String getIndexingStrategy() {
return indexingStrategy;
}
@@ -158,6 +165,14 @@
return Collections.unmodifiableSet( dirProviderData.get( directoryProvider
).getClasses() );
}
+ public Map<Class<?>, DocumentBuilderContainedEntity<?>>
getDocumentBuildersContainedEntities() {
+ return documentBuildersContainedEntities;
+ }
+
+ public Map<DirectoryProvider<?>, DirectoryProviderData>
getDirectoryProviderData() {
+ return dirProviderData;
+ }
+
public Map<Class<?>, DocumentBuilderIndexedEntity<?>>
getDocumentBuildersIndexedEntities() {
return documentBuildersIndexedEntities;
}
@@ -248,6 +263,18 @@
return filterCachingStrategy;
}
+ public Map<String, Analyzer> getAnalyzers() {
+ return analyzers;
+ }
+
+ public int getCacheBitResultsSize() {
+ return cacheBitResultsSize;
+ }
+
+ public Properties getConfigurationProperties() {
+ return configurationProperties;
+ }
+
public FilterDef getFilterDefinition(String name) {
return filterDefinitions.get( name );
}
@@ -294,6 +321,14 @@
return errorHandler;
}
+ public PolymorphicIndexHierarchy getIndexHierarchy() {
+ return indexHierarchy;
+ }
+
+ public Map<DirectoryProvider, LuceneIndexingParameters>
getDirectoryProviderIndexingParams() {
+ return dirProviderIndexingParams;
+ }
+
public SearchFactoryImplementor getUninitializedSearchFactory() {
return this;
}
Modified:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MutableSearchFactory.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MutableSearchFactory.java 2010-06-30
13:39:01 UTC (rev 19862)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MutableSearchFactory.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -1,6 +1,7 @@
package org.hibernate.search.impl;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import java.util.concurrent.locks.ReentrantLock;
@@ -15,11 +16,13 @@
import org.hibernate.search.engine.DocumentBuilderContainedEntity;
import org.hibernate.search.engine.DocumentBuilderIndexedEntity;
import org.hibernate.search.engine.FilterDef;
-import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.exception.ErrorHandler;
import org.hibernate.search.filter.FilterCachingStrategy;
import org.hibernate.search.query.dsl.v2.QueryContextBuilder;
import org.hibernate.search.reader.ReaderProvider;
+import org.hibernate.search.spi.internals.DirectoryProviderData;
+import org.hibernate.search.spi.internals.PolymorphicIndexHierarchy;
+import org.hibernate.search.spi.internals.StateSearchFactoryImplementor;
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.store.optimization.OptimizerStrategy;
@@ -30,10 +33,10 @@
*
* @author Emmanuel Bernard
*/
-public class MutableSearchFactory implements SearchFactoryImplementor {
- private volatile SearchFactoryImplementor delegate;
+public class MutableSearchFactory implements StateSearchFactoryImplementor {
+ private volatile StateSearchFactoryImplementor delegate;
- void setDelegate(SearchFactoryImplementor delegate) {
+ void setDelegate(StateSearchFactoryImplementor delegate) {
this.delegate = delegate;
}
@@ -41,6 +44,10 @@
return delegate.getBackendQueueProcessorFactory();
}
+ public Map<String, FilterDef> getFilterDefinitions() {
+ return delegate.getFilterDefinitions();
+ }
+
public Map<Class<?>, DocumentBuilderIndexedEntity<?>>
getDocumentBuildersIndexedEntities() {
return delegate.getDocumentBuildersIndexedEntities();
}
@@ -65,6 +72,18 @@
return delegate.getFilterCachingStrategy();
}
+ public Map<String, Analyzer> getAnalyzers() {
+ return delegate.getAnalyzers();
+ }
+
+ public int getCacheBitResultsSize() {
+ return delegate.getCacheBitResultsSize();
+ }
+
+ public Properties getConfigurationProperties() {
+ return delegate.getConfigurationProperties();
+ }
+
public FilterDef getFilterDefinition(String name) {
return delegate.getFilterDefinition( name );
}
@@ -117,6 +136,14 @@
return delegate.getErrorHandler();
}
+ public PolymorphicIndexHierarchy getIndexHierarchy() {
+ return delegate.getIndexHierarchy();
+ }
+
+ public Map<DirectoryProvider, LuceneIndexingParameters>
getDirectoryProviderIndexingParams() {
+ return delegate.getDirectoryProviderIndexingParams();
+ }
+
public ReaderProvider getReaderProvider() {
return delegate.getReaderProvider();
}
@@ -144,4 +171,12 @@
public QueryContextBuilder buildQueryBuilder() {
return delegate.buildQueryBuilder();
}
+
+ public Map<Class<?>, DocumentBuilderContainedEntity<?>>
getDocumentBuildersContainedEntities() {
+ return delegate.getDocumentBuildersContainedEntities();
+ }
+
+ public Map<DirectoryProvider<?>, DirectoryProviderData>
getDirectoryProviderData() {
+ return delegate.getDirectoryProviderData();
+ }
}
Deleted:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/PolymorphicIndexHierarchy.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/PolymorphicIndexHierarchy.java 2010-06-30
13:39:01 UTC (rev 19862)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/PolymorphicIndexHierarchy.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -1,62 +0,0 @@
-package org.hibernate.search.impl;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.slf4j.Logger;
-
-import org.hibernate.search.util.LoggerFactory;
-
-/**
- * Helper class which keeps track of all super classes and interfaces of the indexed
entities.
- */
-//FIXME make it immutable (builder pattern)
-class PolymorphicIndexHierarchy {
- private static final Logger log = LoggerFactory.make();
-
- private Map<Class<?>, Set<Class<?>>> classToIndexedClass;
-
- PolymorphicIndexHierarchy() {
- classToIndexedClass = new HashMap<Class<?>, Set<Class<?>>>();
- }
-
- void addIndexedClass(Class<?> indexedClass) {
- addClass( indexedClass, indexedClass );
- Class<?> superClass = indexedClass.getSuperclass();
- while ( superClass != null ) {
- addClass( superClass, indexedClass );
- superClass = superClass.getSuperclass();
- }
- for ( Class<?> clazz : indexedClass.getInterfaces() ) {
- addClass( clazz, indexedClass );
- }
- }
-
- private void addClass(Class<?> superclass, Class<?> indexedClass) {
- Set<Class<?>> classesSet = classToIndexedClass.get( superclass );
- if ( classesSet == null ) {
- classesSet = new HashSet<Class<?>>();
- classToIndexedClass.put( superclass, classesSet );
- }
- classesSet.add( indexedClass );
- }
-
- Set<Class<?>> getIndexedClasses(Class<?>[] classes) {
- Set<Class<?>> indexedClasses = new HashSet<Class<?>>();
- for ( Class<?> clazz : classes ) {
- Set<Class<?>> set = classToIndexedClass.get( clazz );
- if ( set != null ) {
- // at this point we don't have to care about including indexed subclasses of a
indexed class
- // MultiClassesQueryLoader will take care of this later and optimise the queries
- indexedClasses.addAll( set );
- }
- }
- if ( log.isTraceEnabled() ) {
- log.trace( "Targeted indexed classes for {}: {}", Arrays.toString( classes
), indexedClasses );
- }
- return indexedClasses;
- }
-}
Modified:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/SearchFactoryBuilder.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/SearchFactoryBuilder.java 2010-06-30
13:39:01 UTC (rev 19862)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/SearchFactoryBuilder.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -12,6 +12,11 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.search.Similarity;
+import org.hibernate.search.spi.WorkerBuildContext;
+import org.hibernate.search.spi.WritableBuildContext;
+import org.hibernate.search.spi.internals.DirectoryProviderData;
+import org.hibernate.search.spi.internals.PolymorphicIndexHierarchy;
+import org.hibernate.search.spi.internals.StateSearchFactoryImplementor;
import org.slf4j.Logger;
import org.hibernate.annotations.common.reflection.MetadataProvider;
@@ -20,8 +25,6 @@
import org.hibernate.annotations.common.reflection.XClass;
import org.hibernate.annotations.common.reflection.java.JavaReflectionManager;
import org.hibernate.search.Environment;
-import org.hibernate.search.spi.WorkerBuildContext;
-import org.hibernate.search.spi.WritableBuildContext;
import org.hibernate.search.SearchException;
import org.hibernate.search.annotations.AnalyzerDef;
import org.hibernate.search.annotations.AnalyzerDefs;
@@ -35,7 +38,6 @@
import org.hibernate.search.backend.Worker;
import org.hibernate.search.backend.WorkerFactory;
import org.hibernate.search.backend.configuration.ConfigurationParseHelper;
-import org.hibernate.search.backend.impl.BatchedQueueingProcessor;
import org.hibernate.search.cfg.SearchConfiguration;
import org.hibernate.search.cfg.SearchMapping;
import org.hibernate.search.engine.DocumentBuilderContainedEntity;
@@ -98,6 +100,39 @@
Map<DirectoryProvider, LuceneIndexingParameters> dirProviderIndexingParams;
public SearchFactoryImplementor buildSearchFactory() {
+ if (rootFactory == null) {
+ return buildNewSearchFactory();
+ }
+ else {
+ return buildIncrementalSearchFactory();
+ }
+ }
+
+ private SearchFactoryImplementor buildIncrementalSearchFactory() {
+ copyStateFromOldFactory(rootFactory);
+ //FIXME next step for implementation
+ return null;
+ }
+
+ private void copyStateFromOldFactory(StateSearchFactoryImplementor stateFactory) {
+ indexingStrategy = stateFactory.getIndexingStrategy();
+ documentBuildersIndexedEntities = stateFactory.getDocumentBuildersIndexedEntities();
+ documentBuildersContainedEntities =
stateFactory.getDocumentBuildersContainedEntities();
+ dirProviderData = stateFactory.getDirectoryProviderData();
+ worker = stateFactory.getWorker();
+ readerProvider = stateFactory.getReaderProvider();
+ backendQueueProcessorFactory = stateFactory.getBackendQueueProcessorFactory();
+ filterDefinitions = stateFactory.getFilterDefinitions();
+ filterCachingStrategy = stateFactory.getFilterCachingStrategy();
+ analyzers = stateFactory.getAnalyzers();
+ cacheBitResultsSize = stateFactory.getCacheBitResultsSize();
+ configurationProperties = stateFactory.getConfigurationProperties();
+ errorHandler = stateFactory.getErrorHandler();
+ indexHierarchy = stateFactory.getIndexHierarchy();
+ dirProviderIndexingParams = stateFactory.getDirectoryProviderIndexingParams();
+ }
+
+ private SearchFactoryImplementor buildNewSearchFactory() {
createCleanFactoryState();
configurationProperties = cfg.getProperties();
@@ -136,8 +171,7 @@
this.cacheBitResultsSize = ConfigurationParseHelper.getIntValue(
cfg.getProperties(), Environment.CACHE_DOCIDRESULTS_SIZE,
CachingWrapperFilter.DEFAULT_SIZE
);
- //TODO uncomment
- SearchFactoryImplementor factory = new ImmutableSearchFactory( this );
+ StateSearchFactoryImplementor factory = new ImmutableSearchFactory( this );
rootFactory.setDelegate( factory );
return rootFactory;
}
@@ -339,7 +373,6 @@
}
private static ErrorHandler createErrorHandler(Properties configuration) {
- boolean sync = BatchedQueueingProcessor.isConfiguredAsSync( configuration );
String errorHandlerClassName = configuration.getProperty( Environment.ERROR_HANDLER );
if ( StringHelper.isEmpty( errorHandlerClassName ) ) {
return new LogErrorHandler();
Copied:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/DirectoryProviderData.java
(from rev 19862,
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/DirectoryProviderData.java)
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/DirectoryProviderData.java
(rev 0)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/DirectoryProviderData.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -0,0 +1,53 @@
+package org.hibernate.search.spi.internals;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.apache.lucene.search.Similarity;
+
+import org.hibernate.search.store.optimization.OptimizerStrategy;
+
+/**
+* @author Emmanuel Bernard
+*/
+public class DirectoryProviderData {
+ private final ReentrantLock dirLock = new ReentrantLock();
+ private OptimizerStrategy optimizerStrategy;
+ private final Set<Class<?>> classes = new HashSet<Class<?>>( 2
);
+ private Similarity similarity = null;
+ private boolean exclusiveIndexUsage;
+
+ public void setOptimizerStrategy(OptimizerStrategy optimizerStrategy) {
+ this.optimizerStrategy = optimizerStrategy;
+ }
+
+ public void setSimilarity(Similarity similarity) {
+ this.similarity = similarity;
+ }
+
+ public void setExclusiveIndexUsage(boolean exclusiveIndexUsage) {
+ this.exclusiveIndexUsage = exclusiveIndexUsage;
+ }
+
+ public ReentrantLock getDirLock() {
+
+ return dirLock;
+ }
+
+ public OptimizerStrategy getOptimizerStrategy() {
+ return optimizerStrategy;
+ }
+
+ public Set<Class<?>> getClasses() {
+ return classes;
+ }
+
+ public Similarity getSimilarity() {
+ return similarity;
+ }
+
+ public boolean isExclusiveIndexUsage() {
+ return exclusiveIndexUsage;
+ }
+}
Copied:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/PolymorphicIndexHierarchy.java
(from rev 19862,
search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/PolymorphicIndexHierarchy.java)
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/PolymorphicIndexHierarchy.java
(rev 0)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/PolymorphicIndexHierarchy.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -0,0 +1,62 @@
+package org.hibernate.search.spi.internals;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.slf4j.Logger;
+
+import org.hibernate.search.util.LoggerFactory;
+
+/**
+ * Helper class which keeps track of all super classes and interfaces of the indexed
entities.
+ */
+//FIXME make it immutable (builder pattern)
+public class PolymorphicIndexHierarchy {
+ private static final Logger log = LoggerFactory.make();
+
+ private Map<Class<?>, Set<Class<?>>> classToIndexedClass;
+
+ public PolymorphicIndexHierarchy() {
+ classToIndexedClass = new HashMap<Class<?>, Set<Class<?>>>();
+ }
+
+ public void addIndexedClass(Class<?> indexedClass) {
+ addClass( indexedClass, indexedClass );
+ Class<?> superClass = indexedClass.getSuperclass();
+ while ( superClass != null ) {
+ addClass( superClass, indexedClass );
+ superClass = superClass.getSuperclass();
+ }
+ for ( Class<?> clazz : indexedClass.getInterfaces() ) {
+ addClass( clazz, indexedClass );
+ }
+ }
+
+ private void addClass(Class<?> superclass, Class<?> indexedClass) {
+ Set<Class<?>> classesSet = classToIndexedClass.get( superclass );
+ if ( classesSet == null ) {
+ classesSet = new HashSet<Class<?>>();
+ classToIndexedClass.put( superclass, classesSet );
+ }
+ classesSet.add( indexedClass );
+ }
+
+ public Set<Class<?>> getIndexedClasses(Class<?>[] classes) {
+ Set<Class<?>> indexedClasses = new HashSet<Class<?>>();
+ for ( Class<?> clazz : classes ) {
+ Set<Class<?>> set = classToIndexedClass.get( clazz );
+ if ( set != null ) {
+ // at this point we don't have to care about including indexed subclasses of a
indexed class
+ // MultiClassesQueryLoader will take care of this later and optimise the queries
+ indexedClasses.addAll( set );
+ }
+ }
+ if ( log.isTraceEnabled() ) {
+ log.trace( "Targeted indexed classes for {}: {}", Arrays.toString( classes
), indexedClasses );
+ }
+ return indexedClasses;
+ }
+}
Added:
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/StateSearchFactoryImplementor.java
===================================================================
---
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/StateSearchFactoryImplementor.java
(rev 0)
+++
search/trunk/hibernate-search/src/main/java/org/hibernate/search/spi/internals/StateSearchFactoryImplementor.java 2010-06-30
13:39:50 UTC (rev 19863)
@@ -0,0 +1,55 @@
+package org.hibernate.search.spi.internals;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.lucene.analysis.Analyzer;
+
+import org.hibernate.search.backend.BackendQueueProcessorFactory;
+import org.hibernate.search.backend.LuceneIndexingParameters;
+import org.hibernate.search.backend.Worker;
+import org.hibernate.search.engine.DocumentBuilderContainedEntity;
+import org.hibernate.search.engine.DocumentBuilderIndexedEntity;
+import org.hibernate.search.engine.FilterDef;
+import org.hibernate.search.engine.SearchFactoryImplementor;
+import org.hibernate.search.exception.ErrorHandler;
+import org.hibernate.search.filter.FilterCachingStrategy;
+import org.hibernate.search.reader.ReaderProvider;
+import org.hibernate.search.store.DirectoryProvider;
+
+/**
+ * State constituting a SearchFactory
+ * @author Emmanuel Bernard
+ */
+public interface StateSearchFactoryImplementor extends SearchFactoryImplementor {
+
+ Map<Class<?>, DocumentBuilderContainedEntity<?>>
getDocumentBuildersContainedEntities();
+
+ Map<DirectoryProvider<?>, DirectoryProviderData>
getDirectoryProviderData();
+
+ Map<Class<?>, DocumentBuilderIndexedEntity<?>>
getDocumentBuildersIndexedEntities();
+
+ String getIndexingStrategy();
+
+ Worker getWorker();
+
+ ReaderProvider getReaderProvider();
+
+ BackendQueueProcessorFactory getBackendQueueProcessorFactory();
+
+ Map<String, FilterDef> getFilterDefinitions();
+
+ FilterCachingStrategy getFilterCachingStrategy();
+
+ Map<String, Analyzer> getAnalyzers();
+
+ int getCacheBitResultsSize();
+
+ Properties getConfigurationProperties();
+
+ ErrorHandler getErrorHandler();
+
+ PolymorphicIndexHierarchy getIndexHierarchy();
+
+ Map<DirectoryProvider, LuceneIndexingParameters>
getDirectoryProviderIndexingParams();
+}