com.enonic.cms.core.search.IndexFieldnameNormalizer.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.search.IndexFieldnameNormalizer.java

Source

/*
 * 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, "@");
    }

}