X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=site%2Fswingjs%2Fj2s%2Fjava%2Futil%2FArrays.js;fp=site%2Fswingjs%2Fj2s%2Fjava%2Futil%2FArrays.js;h=31c7c2c8239e14233c583aa740fbf5c22c24dd9b;hb=4231d40261fef32ce4570a6bbad0d35df44e8baf;hp=0000000000000000000000000000000000000000;hpb=c07eb2c5794833bd0241000d6844d783fe10cb82;p=jalview.git diff --git a/site/swingjs/j2s/java/util/Arrays.js b/site/swingjs/j2s/java/util/Arrays.js new file mode 100644 index 0000000..31c7c2c --- /dev/null +++ b/site/swingjs/j2s/java/util/Arrays.js @@ -0,0 +1,213 @@ +// BH adjusted to have only one sort method. +// BH -- added Java 6 copyOfRange + +Clazz.load(["java.util.AbstractList","$.RandomAccess"],"java.util.Arrays",["java.lang.ArrayIndexOutOfBoundsException","$.IllegalArgumentException","$.NullPointerException"],function(){ +c$=Clazz.declareType(java.util,"Arrays"); + +c$.copyOfRange = Clazz.defineMethod (c$, "copyOfRange", +function (original, from, to) { +to = Math.min(original.length, to); +var newLength = to - from; +if (newLength < 0) throw new IllegalArgumentException (from + " > " + to); +if (original.slice) + return original.slice(from, to); + // MSIE and Chrome do not have Int32Array.slice() +var c = Clazz.newIntArray(newLength, 0); +for (var i = 0; i < newLength; i++) + c[i] = original[from++]; +return c; +}, "~A,~N,~N"); + +c$.sort=Clazz.overrideMethod(c$,"sort", +function(a,c,d,e){ + switch (arguments.length) { + case 1: + var aux=a.sort(function(o1,o2){ + if(typeof o1=="string"||o1 instanceof Comparable){ + return o1.compareTo(o2); + } + return o1-o2; + }); + for(var i=0;itoIndex)throw new IllegalArgumentException("fromIndex("+fromIndex+") > toIndex("+toIndex+")"); +if(fromIndex<0)throw new ArrayIndexOutOfBoundsException(fromIndex); +if(toIndex>arrayLen)throw new ArrayIndexOutOfBoundsException(toIndex); +},$fz.isPrivate=true,$fz),"~N,~N,~N"); +c$.binarySearch=Clazz.defineMethod(c$,"binarySearch", +function(a,key){ +var low=0; +var high=a.length-1; +while(low<=high){ +var mid=(low+high)>>1; +var midVal=a[mid]; +if(midValkey)high=mid-1; +else return mid; +} +return-(low+1); +},"~A,~N"); +c$.binarySearch=Clazz.defineMethod(c$,"binarySearch", +function(a,key){ +var low=0; +var high=a.length-1; +while(low<=high){ +var mid=(low+high)>>1; +var midVal=a[mid]; +var cmp=(midVal).compareTo(key); +if(cmp<0)low=mid+1; +else if(cmp>0)high=mid-1; +else return mid; +} +return-(low+1); +},"~A,~O"); +c$.binarySearch=Clazz.defineMethod(c$,"binarySearch", +function(a,key,c){ +if(c==null)return java.util.Arrays.binarySearch(a,key); +var low=0; +var high=a.length-1; +while(low<=high){ +var mid=(low+high)>>1; +var midVal=a[mid]; +var cmp=c.compare(midVal,key); +if(cmp<0)low=mid+1; +else if(cmp>0)high=mid-1; +else return mid; +} +return-(low+1); +},"~A,~O,java.util.Comparator"); +c$.equals=Clazz.defineMethod(c$,"equals", +function(a,a2){ +if(a===a2)return true; +if(a==null||a2==null)return false; +var length=a.length; +if(a2.length!=length)return false; +for(var i=0;i