/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search.query;
import org.apache.commons.lang.StringUtils;
import com.enonic.cms.core.search.IndexType;
import com.enonic.cms.core.search.builder.IndexFieldNameConstants;
public class QueryFieldFactory
extends IndexFieldNameConstants
{
public static QueryField resolveQueryField( final String field )
{
QueryField queryField = new QueryField( field );
detectContentKeyField( field, queryField );
detectAttachmentField( field, queryField );
return queryField;
}
private static void detectContentKeyField( final String field, final QueryField queryField )
{
if ( StringUtils.equals( field, CONTENTKEY_FIELDNAME ) )
{
queryField.setRenderAsIdQuery( true );
}
}
private static void detectAttachmentField( final String field, final QueryField queryField )
{
if ( StringUtils.startsWith( field, ATTACHMENT_FIELDNAME ) )
{
queryField.setRenderAsHasChildQuery( true ).setIndexType( IndexType.Binaries ).setAttachmentField( true );
}
else
{
queryField.setIndexType( IndexType.Content );
}
}
}