/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.vertical.adminweb;
import java.util.HashSet;
import java.util.StringTokenizer;
public final class SearchBuilder
{
public static SearchStringBuffer buildFromUserInput( String search, boolean includeTitle, boolean includeAllDataFields,
boolean includeAttchments )
{
SearchStringBuffer query = new SearchStringBuffer();
HashSet<String> params = getParams( search );
for ( String param : params )
{
SearchStringBuffer paramQuery = new SearchStringBuffer();
if ( includeTitle )
{
paramQuery.appendTitle( param );
paramQuery.appendName( SearchStringBuffer.Operator.OR, param );
}
if ( includeAllDataFields )
{
paramQuery.appendData( SearchStringBuffer.Operator.OR, param );
}
if ( includeAttchments )
{
paramQuery.appendAttachments( SearchStringBuffer.Operator.OR, param );
}
query.appendRaw( paramQuery );
}
return query;
}
private static HashSet<String> getParams( String search )
{
HashSet<String> params = new HashSet<String>();
StringTokenizer tok = new StringTokenizer( search, " " );
while ( tok.hasMoreTokens() )
{
String param = tok.nextToken();
if ( param.length() > 0 )
{
params.add( param );
}
}
return params;
}
}