JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / util / StringUtils.js
1 Clazz.declarePackage ("jalview.util");
2 Clazz.load (["java.util.regex.Pattern"], "jalview.util.StringUtils", ["java.lang.StringBuffer", "java.util.ArrayList"], function () {
3 c$ = Clazz.declareType (jalview.util, "StringUtils");
4 c$.insertCharAt = Clazz.defineMethod (c$, "insertCharAt", 
5 function ($in, position, count, ch) {
6 var tmp =  Clazz.newCharArray ($in.length + count, '\0');
7 if (position >= $in.length) {
8 System.arraycopy ($in, 0, tmp, 0, $in.length);
9 position = $in.length;
10 } else {
11 System.arraycopy ($in, 0, tmp, 0, position);
12 }var index = position;
13 while (count > 0) {
14 tmp[index++] = ch;
15 count--;
16 }
17 if (position < $in.length) {
18 System.arraycopy ($in, position, tmp, index, $in.length - position);
19 }return tmp;
20 }, "~A,~N,~N,~S");
21 c$.deleteChars = Clazz.defineMethod (c$, "deleteChars", 
22 function ($in, from, to) {
23 if (from >= $in.length || from < 0) {
24 return $in;
25 }var tmp;
26 if (to >= $in.length) {
27 tmp =  Clazz.newCharArray (from, '\0');
28 System.arraycopy ($in, 0, tmp, 0, from);
29 to = $in.length;
30 } else {
31 tmp =  Clazz.newCharArray ($in.length - to + from, '\0');
32 System.arraycopy ($in, 0, tmp, 0, from);
33 System.arraycopy ($in, to, tmp, from, $in.length - to);
34 }return tmp;
35 }, "~A,~N,~N");
36 c$.getLastToken = Clazz.defineMethod (c$, "getLastToken", 
37 function (input, token) {
38 if (input == null) {
39 return null;
40 }if (token == null) {
41 return input;
42 }var st = input.$plit (token);
43 return st[st.length - 1];
44 }, "~S,~S");
45 c$.separatorListToArray = Clazz.defineMethod (c$, "separatorListToArray", 
46 function (input, delimiter) {
47 var seplen = delimiter.length;
48 if (input == null || input.equals ("") || input.equals (delimiter)) {
49 return null;
50 }var jv =  new java.util.ArrayList ();
51 var cp = 0;
52 var pos;
53 var escape;
54 var wasescaped = false;
55 var wasquoted = false;
56 var lstitem = null;
57 while ((pos = input.indexOf (delimiter, cp)) >= cp) {
58 escape = (pos > 0 && input.charAt (pos - 1) == '\\') ? -1 : 0;
59 if (wasescaped || wasquoted) {
60 jv.set (jv.size () - 1, lstitem = lstitem + delimiter + input.substring (cp, pos + escape));
61 } else {
62 jv.add (lstitem = input.substring (cp, pos + escape));
63 }cp = pos + seplen;
64 wasescaped = escape == -1;
65 wasquoted = jalview.util.StringUtils.DELIMITERS_PATTERN.matcher (lstitem).matches ();
66 }
67 if (cp < input.length) {
68 var c = input.substring (cp);
69 if (wasescaped || wasquoted) {
70 jv.set (jv.size () - 1, lstitem + delimiter + c);
71 } else {
72 if (!c.equals (delimiter)) {
73 jv.add (c);
74 }}}if (jv.size () > 0) {
75 var v = jv.toArray ( new Array (jv.size ()));
76 jv.clear ();
77 if (false) {
78 System.err.println ("Array from '" + delimiter + "' separated List:\n" + v.length);
79 for (var i = 0; i < v.length; i++) {
80 System.err.println ("item " + i + " '" + v[i] + "'");
81 }
82 }return v;
83 }if (false) {
84 System.err.println ("Empty Array from '" + delimiter + "' separated List");
85 }return null;
86 }, "~S,~S");
87 c$.arrayToSeparatorList = Clazz.defineMethod (c$, "arrayToSeparatorList", 
88 function (list, separator) {
89 var v =  new StringBuffer ();
90 if (list != null && list.length > 0) {
91 for (var i = 0, iSize = list.length; i < iSize; i++) {
92 if (list[i] != null) {
93 if (v.length () > 0) {
94 v.append (separator);
95 }v.append (list[i]);
96 }}
97 if (false) {
98 System.err.println ("Returning '" + separator + "' separated List:\n");
99 System.err.println (v);
100 }return v.toString ();
101 }if (false) {
102 System.err.println ("Returning empty '" + separator + "' separated List\n");
103 }return "" + separator;
104 }, "~A,~S");
105 c$.DELIMITERS_PATTERN = c$.prototype.DELIMITERS_PATTERN = java.util.regex.Pattern.compile (".*='[^']*(?!')");
106 Clazz.defineStatics (c$,
107 "DEBUG", false);
108 });