org.apache.directory.server.core.partition.impl.btree
Class DefaultSearchEngine

java.lang.Object
  extended by org.apache.directory.server.core.partition.impl.btree.DefaultSearchEngine
All Implemented Interfaces:
SearchEngine

public class DefaultSearchEngine
extends java.lang.Object
implements SearchEngine

Given a search filter and a scope the search engine identifies valid candidate entries returning their ids.

Version:
$Rev: 434579 $
Author:
Apache Directory Project

Field Summary
 
Fields inherited from interface org.apache.directory.server.core.partition.impl.btree.SearchEngine
ALIASMODE_KEY, ALWAYS, FINDING, NEVER, SEARCHING
 
Constructor Summary
DefaultSearchEngine(BTreePartition db, ExpressionEvaluator evaluator, ExpressionEnumerator enumerator, Optimizer optimizer)
          Creates a DefaultSearchEngine for searching a Database without setting up the database.
 
Method Summary
 boolean evaluate(ExprNode ilter, java.math.BigInteger id)
          Evaluates a filter on an entry with a id.
 Optimizer getOptimizer()
          Gets the optimizer for this DefaultSearchEngine.
 javax.naming.NamingEnumeration search(javax.naming.Name base, java.util.Map env, ExprNode filter, javax.naming.directory.SearchControls searchCtls)
          Conducts a search on a database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultSearchEngine

public DefaultSearchEngine(BTreePartition db,
                           ExpressionEvaluator evaluator,
                           ExpressionEnumerator enumerator,
                           Optimizer optimizer)
Creates a DefaultSearchEngine for searching a Database without setting up the database.

Method Detail

getOptimizer

public Optimizer getOptimizer()
Gets the optimizer for this DefaultSearchEngine.

Specified by:
getOptimizer in interface SearchEngine
Returns:
the optimizer

search

public javax.naming.NamingEnumeration search(javax.naming.Name base,
                                             java.util.Map env,
                                             ExprNode filter,
                                             javax.naming.directory.SearchControls searchCtls)
                                      throws javax.naming.NamingException
Description copied from interface: SearchEngine
Conducts a search on a database.

Specified by:
search in interface SearchEngine
Parameters:
base - the search base
env - the environment for the search
filter - the search filter AST root
searchCtls - the JNDI search controls
Returns:
enumeration over SearchResults
Throws:
javax.naming.NamingException - if the search fails
See Also:
SearchEngine.search(Name, Map, ExprNode,SearchControls)

evaluate

public boolean evaluate(ExprNode ilter,
                        java.math.BigInteger id)
                 throws javax.naming.NamingException
Description copied from interface: SearchEngine
Evaluates a filter on an entry with a id.

Specified by:
evaluate in interface SearchEngine
Parameters:
ilter - the filter root AST node
id - the id of the entry to test
Returns:
true if the filter passes the entry, false otherwise
Throws:
javax.naming.NamingException - if something goes wrong while accessing the db
See Also:
SearchEngine.evaluate(ExprNode, BigInteger)