package de.mxro.thrd.hamcrest.internal;
/**
* GWT does not provide the Array class, but because it might eventually do
* provide it, we are not translating java.lang.reflect.Array, but this
* delegator class.
*
* @author Pascal Muetschard (pmuetschard@google.com)
*/
public class ArrayAccess {
private ArrayAccess() {
}
public static int getLength(Object array) {
if (array instanceof byte[]) {
return ((byte[])array).length;
} else if (array instanceof short[]) {
return ((short[])array).length;
} else if (array instanceof char[]) {
return ((char[])array).length;
} else if (array instanceof int[]) {
return ((int[])array).length;
} else if (array instanceof long[]) {
return ((long[])array).length;
} else if (array instanceof float[]) {
return ((float[])array).length;
} else if (array instanceof double[]) {
return ((double[])array).length;
} else if (array instanceof boolean[]) {
return ((boolean[])array).length;
} else {
return ((Object[])array).length;
}
}
public static Object get(Object array, int idx) {
if (array instanceof byte[]) {
return new Byte(((byte[])array)[idx]);
} else if (array instanceof short[]) {
return new Short(((short[])array)[idx]);
} else if (array instanceof char[]) {
return new Character(((char[])array)[idx]);
} else if (array instanceof int[]) {
return new Integer(((int[])array)[idx]);
} else if (array instanceof long[]) {
return new Long(((long[])array)[idx]);
} else if (array instanceof float[]) {
return new Float(((float[])array)[idx]);
} else if (array instanceof double[]) {
return new Double(((double[])array)[idx]);
} else if (array instanceof boolean[]) {
return new Boolean(((boolean[])array)[idx]);
} else {
return ((Object[])array)[idx];
}
}
}