John Crygier
2012-04-18 f898a655a912ae76585339dfa04f018df552fb8a
src/com/gitblit/utils/StringUtils.java
@@ -19,6 +19,7 @@
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -127,7 +128,7 @@
    * @param values
    * @return flattened list
    */
   public static String flattenStrings(List<String> values) {
   public static String flattenStrings(Collection<String> values) {
      return flattenStrings(values, " ");
   }
@@ -139,7 +140,7 @@
    * @param separator
    * @return flattened list
    */
   public static String flattenStrings(List<String> values, String separator) {
   public static String flattenStrings(Collection<String> values, String separator) {
      StringBuilder sb = new StringBuilder();
      for (String value : values) {
         sb.append(value).append(separator);
@@ -165,16 +166,6 @@
         return value;
      }
      return value.substring(0, max - 3) + "...";
   }
   /**
    * Returns a trimmed shortlog message.
    *
    * @param string
    * @return trimmed shortlog message
    */
   public static String trimShortLog(String string) {
      return trimString(string, 60);
   }
   /**
@@ -487,4 +478,72 @@
      String bs = Integer.toHexString((int) (b * 256));
      return "#" + rs + gs + bs;
   }
   /**
    * Strips a trailing ".git" from the value.
    *
    * @param value
    * @return a stripped value or the original value if .git is not found
    */
   public static String stripDotGit(String value) {
      if (value.toLowerCase().endsWith(".git")) {
         return value.substring(0, value.length() - 4);
      }
      return value;
   }
   /**
    * Count the number of lines in a string.
    *
    * @param value
    * @return the line count
    */
   public static int countLines(String value) {
      if (isEmpty(value)) {
         return 0;
      }
      return value.split("\n").length;
   }
   /**
    * Returns the file extension of a path.
    *
    * @param path
    * @return a blank string or a file extension
    */
   public static String getFileExtension(String path) {
      int lastDot = path.lastIndexOf('.');
      if (lastDot > -1) {
         return path.substring(lastDot + 1);
      }
      return "";
   }
   /**
    * Replace all occurences of a substring within a string with
    * another string.
    *
    * From Spring StringUtils.
    *
    * @param inString String to examine
    * @param oldPattern String to replace
    * @param newPattern String to insert
    * @return a String with the replacements
    */
   public static String replace(String inString, String oldPattern, String newPattern) {
      StringBuilder sb = new StringBuilder();
      int pos = 0; // our position in the old string
      int index = inString.indexOf(oldPattern);
      // the index of an occurrence we've found, or -1
      int patLen = oldPattern.length();
      while (index >= 0) {
         sb.append(inString.substring(pos, index));
         sb.append(newPattern);
         pos = index + patLen;
         index = inString.indexOf(oldPattern, pos);
      }
      sb.append(inString.substring(pos));
      // remember to append any characters to the right of a match
      return sb.toString();
   }
}