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