/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.util; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.IOException; import java.io.InputStream; import java.util.StringTokenizer; /** * @author <a href="mailto:theute@jboss.org">Thomas Heute</a> */ public class Strings { public static String unqualify(String name) { return unqualify(name, '.'); } public static String unqualify(String name, char sep) { return name.substring( name.lastIndexOf(sep)+1, name.length() ); } public static boolean isEmpty(String string) { int len; if (string == null || (len = string.length()) == 0) { return true; } for (int i = 0; i < len; i++) { if ((Character.isWhitespace(string.charAt(i)) == false)) { return false; } } return true; } public static String nullIfEmpty(String string) { return isEmpty(string) ? null : string; } public static String emptyIfNull(String string) { return string == null ? "" : string; } public static String toString(Object component) { try { PropertyDescriptor[] props = Introspector.getBeanInfo( component.getClass() ) .getPropertyDescriptors(); StringBuilder builder = new StringBuilder(); for (PropertyDescriptor descriptor : props) { builder.append( descriptor.getName() ) .append('=') .append( descriptor.getReadMethod().invoke(component) ) .append("; "); } return builder.toString(); } catch (Exception e) { return ""; } } public static String[] split(String strings, String delims) { if (strings==null) { return new String[0]; } else { StringTokenizer tokens = new StringTokenizer(strings, delims); String[] result = new String[ tokens.countTokens() ]; int i=0; while ( tokens.hasMoreTokens() ) { result[i++] = tokens.nextToken(); } return result; } } public static String toString(Object... objects) { return toString(" ", objects); } public static String toString(String sep, Object... objects) { if (objects.length==0) return ""; StringBuilder builder = new StringBuilder(); for (Object object: objects) { builder.append(sep).append(object); } return builder.substring(sep.length()); } public static String toClassNameString(String sep, Object... objects) { if (objects.length==0) return ""; StringBuilder builder = new StringBuilder(); for (Object object: objects) { builder.append(sep); if (object==null) { builder.append("null"); } else { builder.append( object.getClass().getName() ); } } return builder.substring(sep.length()); } public static String toString(String sep, Class... classes) { if (classes.length==0) return ""; StringBuilder builder = new StringBuilder(); for (Class clazz: classes) { builder.append(sep).append( clazz.getName() ); } return builder.substring(sep.length()); } public static String toString(InputStream in) throws IOException { final StringBuilder out = new StringBuilder(); final byte[] b = new byte[4096]; for ( int n; (n = in.read(b)) != -1; ) { out.append(new String(b, 0, n)); } return out.toString(); } }