Updated Branches: refs/heads/javelin c0ccabb5a -> 28982486e
New String Util Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/28982486 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/28982486 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/28982486 Branch: refs/heads/javelin Commit: 28982486e7d275c69241b16660f5c8715fbdc2b1 Parents: c0ccabb Author: Alex Huang <[email protected]> Authored: Thu Aug 30 18:56:35 2012 -0700 Committer: Alex Huang <[email protected]> Committed: Thu Aug 30 18:56:35 2012 -0700 ---------------------------------------------------------------------- utils/src/com/cloud/utils/StringUtils.java | 158 ++++++++++++---------- 1 files changed, 86 insertions(+), 72 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/28982486/utils/src/com/cloud/utils/StringUtils.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/StringUtils.java b/utils/src/com/cloud/utils/StringUtils.java index 0f0ef05..2b99c89 100644 --- a/utils/src/com/cloud/utils/StringUtils.java +++ b/utils/src/com/cloud/utils/StringUtils.java @@ -23,10 +23,10 @@ import java.util.List; // StringUtils exists in Apache Commons Lang, but rather than import the entire JAR to our system, for now // just implement the method needed public class StringUtils { - private static final char[] hexChar = { + private static final char[] hexChar = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }; - + public static String join(Iterable<? extends Object> iterable, String delim) { StringBuilder sb = new StringBuilder(); if (iterable != null) { @@ -42,90 +42,104 @@ public class StringUtils { } return sb.toString(); } - - - /** - * @param tags - * @return List of tags - */ - + + + /** + * @param tags + * @return List of tags + */ + public static List<String> csvTagsToList(String tags) { - List<String> tagsList = new ArrayList<String>(); - - if (tags != null) { + List<String> tagsList = new ArrayList<String>(); + + if (tags != null) { String[] tokens = tags.split(","); for (int i = 0; i < tokens.length; i++) { tagsList.add(tokens[i].trim()); } } - - return tagsList; + + return tagsList; } - - + + /** - * Converts a List of tags to a comma separated list - * @param tags - * @return String containing a comma separated list of tags - */ - + * Converts a List of tags to a comma separated list + * @param tags + * @return String containing a comma separated list of tags + */ + public static String listToCsvTags(List<String> tagsList) { - String tags = ""; - if (tagsList.size() > 0) { - for (int i = 0; i < tagsList.size(); i++) { - tags += tagsList.get(i); - if (i != tagsList.size() - 1) { - tags += ","; - } - } - } - - return tags; + String tags = ""; + if (tagsList.size() > 0) { + for (int i = 0; i < tagsList.size(); i++) { + tags += tagsList.get(i); + if (i != tagsList.size() - 1) { + tags += ","; + } + } + } + + return tags; } - + public static String getExceptionStackInfo(Throwable e) { - StringBuffer sb = new StringBuffer(); - - sb.append(e.toString()).append("\n"); - StackTraceElement[] elemnents = e.getStackTrace(); - for(StackTraceElement element : elemnents) { - sb.append(element.getClassName()).append("."); - sb.append(element.getMethodName()).append("("); - sb.append(element.getFileName()).append(":"); - sb.append(element.getLineNumber()).append(")"); - sb.append("\n"); - } - - return sb.toString(); + StringBuffer sb = new StringBuffer(); + + sb.append(e.toString()).append("\n"); + StackTraceElement[] elemnents = e.getStackTrace(); + for(StackTraceElement element : elemnents) { + sb.append(element.getClassName()).append("."); + sb.append(element.getMethodName()).append("("); + sb.append(element.getFileName()).append(":"); + sb.append(element.getLineNumber()).append(")"); + sb.append("\n"); + } + + return sb.toString(); } - + public static String unicodeEscape(String s) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - if ((c >> 7) > 0) { - sb.append("\\u"); - sb.append(hexChar[(c >> 12) & 0xF]); // append the hex character for the left-most 4-bits - sb.append(hexChar[(c >> 8) & 0xF]); // hex for the second group of 4-bits from the left - sb.append(hexChar[(c >> 4) & 0xF]); // hex for the third group - sb.append(hexChar[c & 0xF]); // hex for the last group, e.g., the right most 4-bits - } - else { - sb.append(c); - } - } - return sb.toString(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if ((c >> 7) > 0) { + sb.append("\\u"); + sb.append(hexChar[(c >> 12) & 0xF]); // append the hex character for the left-most 4-bits + sb.append(hexChar[(c >> 8) & 0xF]); // hex for the second group of 4-bits from the left + sb.append(hexChar[(c >> 4) & 0xF]); // hex for the third group + sb.append(hexChar[c & 0xF]); // hex for the last group, e.g., the right most 4-bits + } + else { + sb.append(c); + } + } + return sb.toString(); } - + public static String getMaskedPasswordForDisplay(String password) { - if(password == null || password.isEmpty()) - return "*"; - - StringBuffer sb = new StringBuffer(); - sb.append(password.charAt(0)); - for(int i = 1; i < password.length(); i++) - sb.append("*"); - - return sb.toString(); + if(password == null || password.isEmpty()) + return "*"; + + StringBuffer sb = new StringBuffer(); + sb.append(password.charAt(0)); + for(int i = 1; i < password.length(); i++) + sb.append("*"); + + return sb.toString(); + } + + public static int formatForOutput(String text, int start, int columns, char separator) { + if (start >= text.length()) { + return -1; + } + + int end = start + columns; + if (end > text.length()) { + end = text.length(); + } + String searchable = text.substring(start, end); + int found = searchable.lastIndexOf(separator); + return found > 0 ? found : end - start; } }
