/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search.query;
import com.enonic.cms.core.content.index.queryexpression.ArrayExpr;
import com.enonic.cms.core.content.index.queryexpression.Expression;
import com.enonic.cms.core.content.index.queryexpression.FunctionExpr;
import com.enonic.cms.core.content.index.queryexpression.ValueExpr;
public class QueryValueFactory
{
public static QueryValue[] resolveQueryValues( final Expression expr )
{
if ( expr instanceof ArrayExpr )
{
return toQueryValues( (ArrayExpr) expr );
}
else if ( expr instanceof ValueExpr )
{
return new QueryValue[]{toQueryValue( (ValueExpr) expr )};
}
else if ( expr instanceof FunctionExpr )
{
return resolveQueryValues( expr );
}
else
{
return new QueryValue[0];
}
}
private static QueryValue[] toQueryValues( final ArrayExpr expr )
{
final ValueExpr[] list = expr.getValues();
final QueryValue[] result = new QueryValue[list.length];
for ( int i = 0; i < list.length; i++ )
{
result[i] = toQueryValue( list[i] );
}
return result;
}
private static QueryValue toQueryValue( ValueExpr expr )
{
return new QueryValue( expr.getValue() );
}
}