/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search;
import org.apache.commons.lang.StringUtils;
import com.enonic.cms.core.search.builder.IndexFieldNameConstants;
public class IndexFieldnameNormalizer
extends IndexFieldNameConstants
{
public static String normalizeFieldName( final String stringValue )
{
if ( StringUtils.isBlank( stringValue ) )
{
return "";
}
String normalized = replaceSeparators( stringValue );
normalized = replaceFieldTypeSeparators( normalized );
normalized = removeAttributeSeparator( normalized );
return normalized.toLowerCase();
}
private static String replaceSeparators( final String stringValue )
{
return StringUtils.replace( stringValue, QUERYLANGUAGE_PROPERTY_SEPARATOR, INDEX_FIELDNAME_PROPERTY_SEPARATOR );
}
private static String replaceFieldTypeSeparators( final String stringValue )
{
return StringUtils.replace( stringValue, INDEX_FIELD_TYPE_SEPARATOR, INDEX_FIELDNAME_PROPERTY_SEPARATOR );
}
private static String removeAttributeSeparator( final String stringValue )
{
return StringUtils.remove( stringValue, "@" );
}
}