summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/utils/StringUtils.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-04-24 14:19:40 -0700
committerJames Moger <james.moger@gitblit.com>2012-04-24 14:19:40 -0700
commit0cb7a9c08cfaebeace058dc806099051f163f172 (patch)
tree78caa4a7fec75adbec367a1026b36d9e8ebee2e4 /src/com/gitblit/utils/StringUtils.java
parenta9eb6b1105cd47f00ae45dacda9af8e829ade191 (diff)
parent3d699cb14d6c891338567c562f7fe8d81e318b1c (diff)
downloadgitblit-0cb7a9c08cfaebeace058dc806099051f163f172.tar.gz
gitblit-0cb7a9c08cfaebeace058dc806099051f163f172.zip
Merge pull request #12 from jcrygier/ldap_unboundid
Ldap unboundid
Diffstat (limited to 'src/com/gitblit/utils/StringUtils.java')
-rw-r--r--src/com/gitblit/utils/StringUtils.java60
1 files changed, 46 insertions, 14 deletions
diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java
index d6441829..2c357241 100644
--- a/src/com/gitblit/utils/StringUtils.java
+++ b/src/com/gitblit/utils/StringUtils.java
@@ -327,20 +327,24 @@ public class StringUtils {
* @return list of strings
*/
public static List<String> getStringsFromValue(String value, String separator) {
- List<String> strings = new ArrayList<String>();
- try {
- String[] chunks = value.split(separator);
- for (String chunk : chunks) {
- chunk = chunk.trim();
- if (chunk.length() > 0) {
- strings.add(chunk);
- }
- }
- } catch (PatternSyntaxException e) {
- throw new RuntimeException(e);
- }
- return strings;
- }
+ List<String> strings = new ArrayList<String>();
+ try {
+ String[] chunks = value.split(separator + "(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
+ for (String chunk : chunks) {
+ chunk = chunk.trim();
+ if (chunk.length() > 0) {
+ if (chunk.charAt(0) == '"' && chunk.charAt(chunk.length() - 1) == '"') {
+ // strip double quotes
+ chunk = chunk.substring(1, chunk.length() - 1).trim();
+ }
+ strings.add(chunk);
+ }
+ }
+ } catch (PatternSyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ return strings;
+ }
/**
* Validates that a name is composed of letters, digits, or limited other
@@ -518,4 +522,32 @@ public class StringUtils {
}
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();
+ }
} \ No newline at end of file