001
014
015 package com.liferay.portal.search;
016
017 import com.liferay.portal.kernel.search.Collator;
018 import com.liferay.portal.kernel.util.StringBundler;
019 import com.liferay.portal.kernel.util.StringPool;
020
021 import java.util.List;
022 import java.util.Map;
023
024
028 public class DefaultCollatorImpl implements Collator {
029
030 @Override
031 public String collate(
032 Map<String, List<String>> suggestionsMap, List<String> tokens) {
033
034 StringBundler sb = new StringBundler(tokens.size() * 2);
035
036 for (String token : tokens) {
037 List<String> suggestions = suggestionsMap.get(token);
038
039 if ((suggestions != null) && !suggestions.isEmpty()) {
040 String suggestion = suggestions.get(0);
041
042 if (Character.isUpperCase(token.charAt(0))) {
043 suggestion = suggestion.substring(
044 0, 1).toUpperCase().concat(suggestion.substring(1));
045 }
046
047 sb.append(suggestion);
048 sb.append(StringPool.SPACE);
049 }
050 else {
051 sb.append(token);
052 sb.append(StringPool.SPACE);
053 }
054 }
055
056 String collatedValue = sb.toString();
057
058 return collatedValue.trim();
059 }
060
061 }