1 // BH adjusted to have only one sort method.
\r
2 // BH -- added Java 6 copyOfRange
\r
4 Clazz.load(["java.util.AbstractList","$.RandomAccess"],"java.util.Arrays",["java.lang.ArrayIndexOutOfBoundsException","$.IllegalArgumentException","$.NullPointerException"],function(){
\r
5 c$=Clazz.declareType(java.util,"Arrays");
\r
7 c$.copyOfRange = Clazz.defineMethod (c$, "copyOfRange",
\r
8 function (original, from, to) {
\r
9 to = Math.min(original.length, to);
\r
10 var newLength = to - from;
\r
11 if (newLength < 0) throw new IllegalArgumentException (from + " > " + to);
\r
13 return original.slice(from, to);
\r
14 // MSIE and Chrome do not have Int32Array.slice()
\r
15 var c = Clazz.newIntArray(newLength, 0);
\r
16 for (var i = 0; i < newLength; i++)
\r
17 c[i] = original[from++];
\r
21 c$.sort=Clazz.overrideMethod(c$,"sort",
\r
23 switch (arguments.length) {
\r
25 var aux=a.sort(function(o1,o2){
\r
26 if(typeof o1=="string"||o1 instanceof Comparable){
\r
27 return o1.compareTo(o2);
\r
31 for(var i=0;i<a.length;i++){
\r
36 var aux=a.sort(function(o1,o2){
\r
38 return c.compare(o1,o2);
\r
39 }else if(typeof o1=="string"||o1 instanceof Comparable){
\r
40 return o1.compareTo(o2);
\r
44 for(var i=0;i<a.length;i++){
\r
51 this.rangeCheck(a.length,fromIndex,toIndex);
\r
52 var aux=new Array();
\r
53 for(var i=fromIndex;i<toIndex;i++){
\r
54 aux[i-fromIndex]=a[i];
\r
56 aux=aux.sort(function(o1,o2){
\r
57 if(typeof o1=="string"||o1 instanceof Comparable){
\r
58 return o1.compareTo(o2);
\r
62 for(var i=fromIndex;i<toIndex;i++){
\r
63 a[i]=aux[i-fromIndex];
\r
70 this.rangeCheck(a.length,fromIndex,toIndex);
\r
71 var aux=new Array();
\r
72 for(var i=fromIndex;i<toIndex;i++){
\r
73 aux[i-fromIndex]=a[i];
\r
75 aux=aux.sort(function(o1,o2){
\r
77 return c.compare(o1,o2);
\r
78 }else if(typeof o1=="string"||o1 instanceof Comparable){
\r
79 return o1.compareTo(o2);
\r
83 for(var i=fromIndex;i<toIndex;i++){
\r
84 a[i]=aux[i-fromIndex];
\r
89 c$.rangeCheck=Clazz.defineMethod(c$,"rangeCheck",
\r
90 ($fz=function(arrayLen,fromIndex,toIndex){
\r
91 if(fromIndex>toIndex)throw new IllegalArgumentException("fromIndex("+fromIndex+") > toIndex("+toIndex+")");
\r
92 if(fromIndex<0)throw new ArrayIndexOutOfBoundsException(fromIndex);
\r
93 if(toIndex>arrayLen)throw new ArrayIndexOutOfBoundsException(toIndex);
\r
94 },$fz.isPrivate=true,$fz),"~N,~N,~N");
\r
95 c$.binarySearch=Clazz.defineMethod(c$,"binarySearch",
\r
98 var high=a.length-1;
\r
100 var mid=(low+high)>>1;
\r
102 if(midVal<key)low=mid+1;
\r
103 else if(midVal>key)high=mid-1;
\r
108 c$.binarySearch=Clazz.defineMethod(c$,"binarySearch",
\r
111 var high=a.length-1;
\r
113 var mid=(low+high)>>1;
\r
115 var cmp=(midVal).compareTo(key);
\r
116 if(cmp<0)low=mid+1;
\r
117 else if(cmp>0)high=mid-1;
\r
122 c$.binarySearch=Clazz.defineMethod(c$,"binarySearch",
\r
124 if(c==null)return java.util.Arrays.binarySearch(a,key);
\r
126 var high=a.length-1;
\r
128 var mid=(low+high)>>1;
\r
130 var cmp=c.compare(midVal,key);
\r
131 if(cmp<0)low=mid+1;
\r
132 else if(cmp>0)high=mid-1;
\r
136 },"~A,~O,java.util.Comparator");
\r
137 c$.equals=Clazz.defineMethod(c$,"equals",
\r
139 if(a===a2)return true;
\r
140 if(a==null||a2==null)return false;
\r
141 var length=a.length;
\r
142 if(a2.length!=length)return false;
\r
143 for(var i=0;i<length;i++){
\r
147 if(!(o1==null?o2==null:(o1.equals==null?o1==o2:o1.equals(o2))))return false;
\r
152 c$.fill=Clazz.overrideMethod(c$,"fill",
\r
153 function(a,fromIndex,toIndex,val){
\r
154 if (arguments.length == 2) {
\r
157 toIndex = a.length;
\r
159 java.util.Arrays.rangeCheck(a.length,fromIndex,toIndex);
\r
160 for(var i=fromIndex;i<toIndex;i++)a[i]=val;
\r
163 c$.asList=Clazz.defineMethod(c$,"asList",
\r
165 return new java.util.Arrays.ArrayList(arguments.length == 1 && Clazz.getClassName(a) == "Array" ? a : arguments); // BH must be T...
\r
167 Clazz.pu$h(self.c$);
\r
168 c$=Clazz.decorateAsClass(function(){
\r
170 Clazz.instantialize(this,arguments);
\r
171 },java.util.Arrays,"ArrayList",java.util.AbstractList,[java.util.RandomAccess,java.io.Serializable]);
\r
172 Clazz.makeConstructor(c$,
\r
174 Clazz.superConstructor(this,java.util.Arrays.ArrayList,[]);
\r
175 if(a==null)throw new NullPointerException();
\r
178 Clazz.overrideMethod(c$,"size",
\r
180 return this.a.length;
\r
182 Clazz.defineMethod(c$,"toArray",
\r
184 return this.a.clone();
\r
186 Clazz.overrideMethod(c$,"get",
\r
190 Clazz.overrideMethod(c$,"set",
\r
196 Clazz.overrideMethod(c$,"indexOf",
\r
199 for(var b=0;b<this.a.length;b++)if(this.a[b]==null)return b;
\r
202 for(var b=0;b<this.a.length;b++)if(a.equals(this.a[b]))return b;
\r
206 Clazz.overrideMethod(c$,"contains",
\r
208 return this.indexOf(a)!=-1;
\r
211 Clazz.defineStatics(c$,
\r
212 "INSERTIONSORT_THRESHOLD",7);
\r