| // 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 <bothner@cygnus.com> |
| * @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); |
| } |