/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.content.index.queryexpression;
import java.util.ArrayList;
import java.util.List;
public class CombinedLogicalOrExpr
implements Expression
{
List<CompareExpr> expressions = new ArrayList<CompareExpr>();
public Object evaluate( QueryEvaluator evaluator )
{
return this;
}
public CombinedLogicalOrExpr add( CompareExpr expr )
{
expressions.add( expr );
return this;
}
public String toString()
{
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append( "or[" );
int lastIndex = expressions.size();
int i = 1;
for ( Expression expr : expressions )
{
stringBuffer.append( expr.toString() );
if ( i != lastIndex )
{
stringBuffer.append( ", " );
}
i++;
}
stringBuffer.append( "]" );
return stringBuffer.toString();
}
public List<CompareExpr> getExpressions()
{
return expressions;
}
public boolean hasSameFieldsOnly()
{
String field = null;
if ( expressions != null && expressions.size() > 0 )
{
FieldExpr fieldExpr = (FieldExpr) expressions.get( 0 ).getLeft();
field = fieldExpr.getPath();
}
for ( CompareExpr compareExpr : expressions )
{
if ( !( (FieldExpr) compareExpr.getLeft() ).getPath().equals( field ) )
{
return false;
}
}
return true;
}
}