/* * Copyright 2008 the original author or authors. * * 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. */ package org.mockftpserver.core.util; /** * Contains static utility methods related to pattern-matching and regular expressions. * * @author Chris Mair * @version $Revision$ - $Date$ */ public class PatternUtil { /** * Return true if the specified String contains one or more wildcard characters ('?' or '*') * * @param string - the String to check * @return true if the String contains wildcards */ public static boolean containsWildcards(String string) { return string.indexOf("*") != -1 || string.indexOf("?") != -1; } /** * Convert the specified String, optionally containing wildcards (? or *), to a regular expression String * * @param stringWithWildcards - the String to convert, optionally containing wildcards (? or *) * @return an equivalent regex String * @throws AssertionError - if the stringWithWildcards is null */ public static String convertStringWithWildcardsToRegex(String stringWithWildcards) { Assert.notNull(stringWithWildcards, "stringWithWildcards"); StringBuffer result = new StringBuffer(); for (int i = 0; i < stringWithWildcards.length(); i++) { char ch = stringWithWildcards.charAt(i); switch (ch) { case '*': result.append(".*"); break; case '?': result.append('.'); break; case '$': case '|': case '[': case ']': case '(': case ')': case '.': case ':': case '{': case '}': case '\\': case '^': result.append('\\'); result.append(ch); break; default: result.append(ch); } } return result.toString(); } /** * Private constructor to prevent instantiation. All members are static. */ private PatternUtil() { } }