aade9106d7a18ebb3d370338db4b3a7f15f011d4
[jalviewjs.git] / site / swingjs / j2s / java / util / regex / Pattern.js
1 Clazz.declarePackage("java.util.regex");\r
2 Clazz.load(null,"java.util.regex.Pattern",["java.lang.IllegalArgumentException","$.StringBuffer","java.util.regex.Matcher"],function(){\r
3 c$=Clazz.decorateAsClass(function(){\r
4 this.$flags=0;\r
5 this.regexp=null;\r
6 Clazz.instantialize(this,arguments);\r
7 },java.util.regex,"Pattern",null,java.io.Serializable);\r
8 Clazz.defineMethod(c$,"matcher",\r
9 function(cs){\r
10 return new java.util.regex.Matcher(this,cs);\r
11 },"CharSequence");\r
12 Clazz.defineMethod(c$,"split",\r
13 function(input,limit){\r
14 var res=new Array(0);\r
15 var mat=this.matcher(input);\r
16 var index=0;\r
17 var curPos=0;\r
18 if(input.length()==0){\r
19 return[""];\r
20 }else{\r
21 while(mat.find()&&(index+1<limit||limit<=0)){\r
22 res[res.length]=input.subSequence(curPos,mat.start()).toString();\r
23 curPos=mat.end();\r
24 index++;\r
25 }\r
26 res[res.length]=input.subSequence(curPos,input.length()).toString();\r
27 index++;\r
28 if(limit==0){\r
29 while(--index>=0&&res[index].toString().length==0){\r
30 res.length--;\r
31 }\r
32 }}return res;\r
33 },"CharSequence,~N");\r
34 Clazz.defineMethod(c$,"split",\r
35 function(input){\r
36 return this.split(input,0);\r
37 },"CharSequence");\r
38 Clazz.defineMethod(c$,"pattern",\r
39 function(){\r
40 {\r
41 return this.regexp.source;\r
42 }return null;\r
43 });\r
44 Clazz.defineMethod(c$,"toString",\r
45 function(){\r
46 return this.pattern();\r
47 });\r
48 Clazz.defineMethod(c$,"flags",\r
49 function(){\r
50 return this.$flags;\r
51 });\r
52 c$.compile=Clazz.defineMethod(c$,"compile",\r
53 function(regex,flags){\r
54 if((flags!=0)&&((flags|239)!=239)){\r
55 throw new IllegalArgumentException("Illegal flags");\r
56 }var flagStr="g";\r
57 if((flags&8)!=0){\r
58 flagStr+="m";\r
59 }if((flags&2)!=0){\r
60 flagStr+="i";\r
61 }var pattern=new java.util.regex.Pattern();\r
62 {\r
63 pattern.regexp=new RegExp(regex,flagStr);\r
64 }return pattern;\r
65 },"~S,~N");\r
66 c$.compile=Clazz.defineMethod(c$,"compile",\r
67 function(pattern){\r
68 return java.util.regex.Pattern.compile(pattern,0);\r
69 },"~S");\r
70 c$.matches=Clazz.defineMethod(c$,"matches",\r
71 function(regex,input){\r
72 return java.util.regex.Pattern.compile(regex).matcher(input).matches();\r
73 },"~S,CharSequence");\r
74 c$.quote=Clazz.defineMethod(c$,"quote",\r
75 function(s){\r
76 var sb=new StringBuffer().append("\\Q");\r
77 var apos=0;\r
78 var k;\r
79 while((k=s.indexOf("\\E",apos))>=0){\r
80 sb.append(s.substring(apos,k+2)).append("\\\\E\\Q");\r
81 apos=k+2;\r
82 }\r
83 return sb.append(s.substring(apos)).append("\\E").toString();\r
84 },"~S");\r
85 Clazz.makeConstructor(c$,\r
86 ($fz=function(){\r
87 },$fz.isPrivate=true,$fz));\r
88 Clazz.defineStatics(c$,\r
89 "UNIX_LINES",1,\r
90 "CASE_INSENSITIVE",2,\r
91 "COMMENTS",4,\r
92 "MULTILINE",8,\r
93 "LITERAL",16,\r
94 "DOTALL",32,\r
95 "UNICODE_CASE",64,\r
96 "CANON_EQ",128,\r
97 "flagsBitMask",239);\r
98 });\r