AutoCompleteHelper.java

package sk.iway.iwcm.tags;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import sk.iway.iwcm.SelectionFilter;
import sk.iway.iwcm.Tools;

/**
 *  AutoCompleteHelper.java
 *
 *		Methods usually requested by auto completers
 *
 *@Title        webjet7
 *@Company      Interway s.r.o. (www.interway.sk)
 *@Copyright    Interway s.r.o. (c) 2001-2010
 *@author       $Author: marosurbanec $
 *@version      $Revision: 1.3 $
 *@created      Date: 15.7.2010 11:21:39
 *@modified     $Date: 2004/08/16 06:26:11 $
 */
public class AutoCompleteHelper
{
	
	public static List<String> filterByContains(List<String> source, final String filterTerm)
	{
		return Tools.filter(source, new SelectionFilter<String>(){
			@Override
			public boolean fullfilsConditions(String candidate)
			{
				return candidate.toLowerCase().contains(filterTerm);
			}
		});
	}
	
	public static void sortByLeadingFirst(List<String> source, final String term)
	{
		Collections.sort(source, new Comparator<String>(){
			@Override
			public int compare(String key1, String key2){
				if (key1 == null || key2 == null) return 0;
				key1 = key1.toLowerCase();
				key2 = key2.toLowerCase();
				if (key1.startsWith(term) && key2.startsWith(term)) return key1.compareTo(key2);
				if (key1.startsWith(term)) return -1;
				if (key2.startsWith(term)) return 1;
				return key1.compareTo(key2);
			}
		});
	}
}