org.apache.slide.search.basic.expression
Class MergeExpression

java.lang.Object
  extended byorg.apache.slide.search.basic.expression.BasicExpression
      extended byorg.apache.slide.search.basic.expression.GenericBasicExpression
          extended byorg.apache.slide.search.basic.expression.MergeExpression
All Implemented Interfaces:
IBasicExpression
Direct Known Subclasses:
AndExpression, OrExpression

public abstract class MergeExpression
extends GenericBasicExpression

Abstract base class for merge expressions (AND, OR).

Version:
$Revision: 1.2.2.1 $
Author:
Martin Wallmer

Field Summary
protected  BasicExpressionFactory expressionFactory
           
protected  java.util.Collection expressionsToMerge
          all nested expressions
 
Fields inherited from class org.apache.slide.search.basic.expression.BasicExpression
expressionElement, resultSet
 
Constructor Summary
(package private) MergeExpression(org.jdom.Element e, java.util.Collection expressionsToMerge)
          Creates a merge expression according to Element e
 
Method Summary
 IBasicResultSet execute()
          Executes the expression.
 java.util.Collection getExpressionsToMerge()
          Returns the expressions to merge.
static java.lang.String getMustHaveMergeExpressionsMessage(java.lang.String operationName)
          Returns the message of the InvalidQueryException that is thrown by the constructor the expressionsToMerge set is empty.
protected abstract  void merge(IBasicResultSet set)
          Merges the given set into the result Set of this expression.
protected  java.lang.String toString(java.lang.String op)
          String representation for debugging purposes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expressionsToMerge

protected java.util.Collection expressionsToMerge
all nested expressions


expressionFactory

protected BasicExpressionFactory expressionFactory
Constructor Detail

MergeExpression

MergeExpression(org.jdom.Element e,
                java.util.Collection expressionsToMerge)
          throws InvalidQueryException
Creates a merge expression according to Element e

Parameters:
e - jdom element, that describes the expression
expressionsToMerge - a Collection of IBasicExpressions to merge.
Method Detail

getExpressionsToMerge

public java.util.Collection getExpressionsToMerge()
Returns the expressions to merge.

Returns:
the expressions to merge.

execute

public IBasicResultSet execute()
                        throws SearchException
Executes the expression.

Returns:
a Set of RequestedResource objects
Throws:
SearchException

merge

protected abstract void merge(IBasicResultSet set)
Merges the given set into the result Set of this expression.

Parameters:
set - the Set to merge.

toString

protected java.lang.String toString(java.lang.String op)
String representation for debugging purposes.

Returns:
this expression as String

getMustHaveMergeExpressionsMessage

public static java.lang.String getMustHaveMergeExpressionsMessage(java.lang.String operationName)
Returns the message of the InvalidQueryException that is thrown by the constructor the expressionsToMerge set is empty.

Parameters:
operationName - the name of the operation (e.g. and)
Returns:
the message of the InvalidQueryException.