StringUtils.java revision 1185
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly/*
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * CDDL HEADER START
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly *
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * The contents of this file are subject to the terms of the
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * Common Development and Distribution License (the "License").
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * You may not use this file except in compliance with the License.
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly *
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * See LICENSE.txt included in this distribution for the specific
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * language governing permissions and limitations under the License.
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly *
4fa6e393824ad7e7157e4510887e5d24f81c7dd8Jenny Han Donnelly * When distributing Covered Code, include this CDDL HEADER in each
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * file and include the License file at LICENSE.txt.
d2854acf6eef44cf0aca645de3a37cca1388f51aDav Glass * If applicable, add the following below this CDDL HEADER, with the
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * fields enclosed by brackets "[]" replaced with your own identifying
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * information: Portions Copyright [yyyy] [name of copyright owner]
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly *
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly * CDDL HEADER END
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly */
c0464f9735ebc6b18978bc11f7a16beea7df84dfJenny Han Donnelly
package org.opensolaris.opengrok.util;
import java.util.regex.Pattern;
/**
* Various String utility methods.
*
* @author austvik
*/
public final class StringUtils {
private StringUtils() {
// Only static utility methods
}
/**
* Returns true if the string is empty or only includes whitespace characters.
*
* @param str the string to be checked
* @return true if string is empty or only contains whitespace charadcters
*/
public static boolean isOnlyWhitespace(String str) {
for (int i = 0; i < str.length(); i++) {
if (!Character.isWhitespace(str.charAt(i))) {
return false;
}
}
return true;
}
static final Pattern javaClassPattern =
Pattern.compile("([a-z][A-Za-z]*\\.)+[A-Z][A-Za-z0-9]*");
/**
* Returns true if the string is possibly a full java class name
*
* @param s the string to be checked
* @return true if string could be a java class name
*/
public static boolean isPossiblyJavaClass(String s) {
// Only match a small subset of possible class names to prevent false
// positives:
// - class must be qualified with a package name
// - only letters in package name, starting with lower case
// - class name must be in CamelCase, starting with upper case
return javaClassPattern.matcher(s).matches();
}
}