JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / util / StringTokenizer.js
1 Clazz.load(["java.util.Enumeration"],"java.util.StringTokenizer",["java.lang.NullPointerException","java.util.NoSuchElementException"],function(){\r
2 c$=Clazz.decorateAsClass(function(){\r
3 this.string=null;\r
4 this.delimiters=null;\r
5 this.returnDelimiters=false;\r
6 this.position=0;\r
7 Clazz.instantialize(this,arguments);\r
8 },java.util,"StringTokenizer",null,java.util.Enumeration);\r
9 Clazz.makeConstructor(c$,\r
10 function(string){\r
11 this.construct(string," \t\n\r\f",false);\r
12 },"~S");\r
13 Clazz.makeConstructor(c$,\r
14 function(string,delimiters){\r
15 this.construct(string,delimiters,false);\r
16 },"~S,~S");\r
17 Clazz.makeConstructor(c$,\r
18 function(string,delimiters,returnDelimiters){\r
19 if(string!=null){\r
20 this.string=string;\r
21 this.delimiters=delimiters;\r
22 this.returnDelimiters=returnDelimiters;\r
23 this.position=0;\r
24 }else throw new NullPointerException();\r
25 },"~S,~S,~B");\r
26 Clazz.defineMethod(c$,"countTokens",\r
27 function(){\r
28 var count=0;\r
29 var inToken=false;\r
30 for(var i=this.position,length=this.string.length;i<length;i++){\r
31 if(this.delimiters.indexOf(this.string.charAt(i),0)>=0){\r
32 if(this.returnDelimiters)count++;\r
33 if(inToken){\r
34 count++;\r
35 inToken=false;\r
36 }}else{\r
37 inToken=true;\r
38 }}\r
39 if(inToken)count++;\r
40 return count;\r
41 });\r
42 Clazz.overrideMethod(c$,"hasMoreElements",\r
43 function(){\r
44 return this.hasMoreTokens();\r
45 });\r
46 Clazz.defineMethod(c$,"hasMoreTokens",\r
47 function(){\r
48 var length=this.string.length;\r
49 if(this.position<length){\r
50 if(this.returnDelimiters)return true;\r
51 for(var i=this.position;i<length;i++)if(this.delimiters.indexOf(this.string.charAt(i),0)==-1)return true;\r
52 \r
53 }return false;\r
54 });\r
55 Clazz.overrideMethod(c$,"nextElement",\r
56 function(){\r
57 return this.nextToken();\r
58 });\r
59 Clazz.defineMethod(c$,"nextToken",\r
60 function(){\r
61 var i=this.position;\r
62 var length=this.string.length;\r
63 if(i<length){\r
64 if(this.returnDelimiters){\r
65 if(this.delimiters.indexOf(this.string.charAt(this.position),0)>=0)return String.valueOf(this.string.charAt(this.position++));\r
66 for(this.position++;this.position<length;this.position++)if(this.delimiters.indexOf(this.string.charAt(this.position),0)>=0)return this.string.substring(i,this.position);\r
67 \r
68 return this.string.substring(i);\r
69 }while(i<length&&this.delimiters.indexOf(this.string.charAt(i),0)>=0)i++;\r
70 \r
71 this.position=i;\r
72 if(i<length){\r
73 for(this.position++;this.position<length;this.position++)if(this.delimiters.indexOf(this.string.charAt(this.position),0)>=0)return this.string.substring(i,this.position);\r
74 \r
75 return this.string.substring(i);\r
76 }}throw new java.util.NoSuchElementException();\r
77 });\r
78 Clazz.defineMethod(c$,"nextToken",\r
79 function(delims){\r
80 this.delimiters=delims;\r
81 return this.nextToken();\r
82 },"~S");\r
83 });\r