// FileDescriptor.java - Open file or device /* Copyright (C) 1999 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.lang.reflect; /** * @author Per Bothner * @date january 12, 1999 */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3. * Status: Believe complete and correct. */ public final class Array { Array () { } public static native Object newInstance(Class componentType, int length); public static native Object newInstance(Class elementType, int[] dimensions); public static native int getLength (Object array); public static native Object get (Object array, int index); public static native char getChar (Object array, int index); public static native byte getByte (Object array, int index); public static native short getShort (Object array, int index); public static native int getInt (Object array, int index); public static native long getLong (Object array, int index); public static native float getFloat (Object array, int index); public static native double getDouble (Object array, int index); public static native boolean getBoolean (Object array, int index); private static native Class getElementType (Object array, int index); private static native void set (Object array, int index, Object value, Class elType); public static void set (Object array, int index, Object value) { Class elType = getElementType(array, index); if (! elType.isPrimitive()) set(array, index, value, elType); else if (value instanceof Byte) setByte(array, index, ((Byte) value).byteValue()); else if (value instanceof Short) setShort (array, index, ((Short) value).shortValue()); else if (value instanceof Integer) setInt(array, index, ((Integer) value).intValue()); else if (value instanceof Long) setLong(array, index, ((Long) value).longValue()); else if (value instanceof Float) setFloat(array, index, ((Float) value).floatValue()); else if (value instanceof Double) setDouble(array, index, ((Double) value).doubleValue()); else if (value instanceof Character) setChar(array, index, ((Character) value).charValue()); else if (value instanceof Boolean) setBoolean(array, index, ((Boolean) value).booleanValue()); else throw new IllegalArgumentException(); } public static native void setByte (Object array, int index, byte value); public static native void setShort (Object array, int index, short value); public static native void setInt (Object array, int index, int value); public static native void setLong (Object array, int index, long value); public static native void setFloat (Object array, int index, float value); public static native void setDouble (Object array, int index, double value); public static native void setChar (Object array, int index, char value); public static native void setBoolean(Object array, int index, boolean value); }