1 Clazz.declarePackage ("jalview.util");
\r
2 Clazz.load (["java.util.regex.Pattern"], "jalview.util.StringUtils", ["java.lang.StringBuffer", "java.util.ArrayList"], function () {
\r
3 c$ = Clazz.declareType (jalview.util, "StringUtils");
\r
4 c$.insertCharAt = Clazz.defineMethod (c$, "insertCharAt",
\r
5 function ($in, position, count, ch) {
\r
6 var tmp = Clazz.newCharArray ($in.length + count, '\0');
\r
7 if (position >= $in.length) {
\r
8 System.arraycopy ($in, 0, tmp, 0, $in.length);
\r
9 position = $in.length;
\r
11 System.arraycopy ($in, 0, tmp, 0, position);
\r
12 }var index = position;
\r
17 if (position < $in.length) {
\r
18 System.arraycopy ($in, position, tmp, index, $in.length - position);
\r
21 c$.deleteChars = Clazz.defineMethod (c$, "deleteChars",
\r
22 function ($in, from, to) {
\r
23 if (from >= $in.length || from < 0) {
\r
26 if (to >= $in.length) {
\r
27 tmp = Clazz.newCharArray (from, '\0');
\r
28 System.arraycopy ($in, 0, tmp, 0, from);
\r
31 tmp = Clazz.newCharArray ($in.length - to + from, '\0');
\r
32 System.arraycopy ($in, 0, tmp, 0, from);
\r
33 System.arraycopy ($in, to, tmp, from, $in.length - to);
\r
36 c$.getLastToken = Clazz.defineMethod (c$, "getLastToken",
\r
37 function (input, token) {
\r
38 if (input == null) {
\r
40 }if (token == null) {
\r
42 }var st = input.$plit (token);
\r
43 return st[st.length - 1];
\r
45 c$.separatorListToArray = Clazz.defineMethod (c$, "separatorListToArray",
\r
46 function (input, delimiter) {
\r
47 var seplen = delimiter.length;
\r
48 if (input == null || input.equals ("") || input.equals (delimiter)) {
\r
50 }var jv = new java.util.ArrayList ();
\r
54 var wasescaped = false;
\r
55 var wasquoted = false;
\r
57 while ((pos = input.indexOf (delimiter, cp)) >= cp) {
\r
58 escape = (pos > 0 && input.charAt (pos - 1) == '\\') ? -1 : 0;
\r
59 if (wasescaped || wasquoted) {
\r
60 jv.set (jv.size () - 1, lstitem = lstitem + delimiter + input.substring (cp, pos + escape));
\r
62 jv.add (lstitem = input.substring (cp, pos + escape));
\r
64 wasescaped = escape == -1;
\r
65 wasquoted = jalview.util.StringUtils.DELIMITERS_PATTERN.matcher (lstitem).matches ();
\r
67 if (cp < input.length) {
\r
68 var c = input.substring (cp);
\r
69 if (wasescaped || wasquoted) {
\r
70 jv.set (jv.size () - 1, lstitem + delimiter + c);
\r
72 if (!c.equals (delimiter)) {
\r
74 }}}if (jv.size () > 0) {
\r
75 var v = jv.toArray ( new Array (jv.size ()));
\r
78 System.err.println ("Array from '" + delimiter + "' separated List:\n" + v.length);
\r
79 for (var i = 0; i < v.length; i++) {
\r
80 System.err.println ("item " + i + " '" + v[i] + "'");
\r
84 System.err.println ("Empty Array from '" + delimiter + "' separated List");
\r
87 c$.arrayToSeparatorList = Clazz.defineMethod (c$, "arrayToSeparatorList",
\r
88 function (list, separator) {
\r
89 var v = new StringBuffer ();
\r
90 if (list != null && list.length > 0) {
\r
91 for (var i = 0, iSize = list.length; i < iSize; i++) {
\r
92 if (list[i] != null) {
\r
93 if (v.length () > 0) {
\r
94 v.append (separator);
\r
95 }v.append (list[i]);
\r
98 System.err.println ("Returning '" + separator + "' separated List:\n");
\r
99 System.err.println (v);
\r
100 }return v.toString ();
\r
102 System.err.println ("Returning empty '" + separator + "' separated List\n");
\r
103 }return "" + separator;
\r
105 c$.DELIMITERS_PATTERN = c$.prototype.DELIMITERS_PATTERN = java.util.regex.Pattern.compile (".*='[^']*(?!')");
\r
106 Clazz.defineStatics (c$,
\r