/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.framework.util.helpers; import org.apache.commons.lang.WordUtils; import org.mifos.framework.util.DateTimeService; public class SearchUtils { private static final short LookUpNameLength = 100; public SearchUtils() { } public static String normalizeSearchString(String searchString) { String searchStr = searchString.trim(); if (searchString.contains("%") && searchString.length() > 1) { return searchStr.replace("%", "\\%"); } return searchStr; } /* * Create a camelcase token from a string containing multiple whitespace * separated tokens. * * For example "aBc dEF_gh-iJ k.l" becomes "AbcDef_ghIjKL" */ protected static String camelCase(String string) { return org.apache.commons.lang.StringUtils.deleteWhitespace(WordUtils.capitalize(string.toLowerCase() .replaceAll("\\W", " "))); } // add test case public static String generateLookupName(String type, String newElementText) { String name = type + "." + camelCase(newElementText) + "." + new DateTimeService().getCurrentDateTime().getMillis(); if (name.length() > LookUpNameLength) { name = name.substring(0, LookUpNameLength); } return name; } }