diff options
Diffstat (limited to 'libjava/java/nio/LongBuffer.java')
-rw-r--r-- | libjava/java/nio/LongBuffer.java | 79 |
1 files changed, 29 insertions, 50 deletions
diff --git a/libjava/java/nio/LongBuffer.java b/libjava/java/nio/LongBuffer.java index 5bca6d53b70..8b737194d0c 100644 --- a/libjava/java/nio/LongBuffer.java +++ b/libjava/java/nio/LongBuffer.java @@ -39,14 +39,14 @@ package java.nio; import gnu.java.nio.LongBufferImpl; -public abstract class LongBuffer extends Buffer +public abstract class LongBuffer extends Buffer implements Comparable { - private ByteOrder endian = ByteOrder.BIG_ENDIAN; protected long [] backing_buffer; + protected int array_offset; public static LongBuffer allocateDirect(int capacity) { - return new LongBufferImpl(capacity, 0, capacity); + throw new Error ("direct buffers not implemented"); } public static LongBuffer allocate(int capacity) @@ -77,7 +77,13 @@ public abstract class LongBuffer extends Buffer return wrap(array, 0, array.length); } - final public LongBuffer get(long[] dst, int offset, int length) + LongBuffer (int capacity, int limit, int position, int mark) + { + super (capacity, limit, position, mark); + array_offset = 0; + } + + public LongBuffer get (long[] dst, int offset, int length) { for (int i = offset; i < offset + length; i++) { @@ -87,12 +93,12 @@ public abstract class LongBuffer extends Buffer return this; } - final public LongBuffer get(long[] dst) + public LongBuffer get (long[] dst) { return get(dst, 0, dst.length); } - final public LongBuffer put(LongBuffer src) + public LongBuffer put (LongBuffer src) { while (src.hasRemaining()) put(src.get()); @@ -100,7 +106,7 @@ public abstract class LongBuffer extends Buffer return this; } - final public LongBuffer put(long[] src, int offset, int length) + public LongBuffer put (long[] src, int offset, int length) { for (int i = offset; i < offset + length; i++) put(src[i]); @@ -115,17 +121,30 @@ public abstract class LongBuffer extends Buffer public final boolean hasArray() { - return (backing_buffer != null); + return (backing_buffer != null + && !isReadOnly ()); } public final long[] array() { + if (backing_buffer == null) + throw new UnsupportedOperationException (); + + if (isReadOnly ()) + throw new ReadOnlyBufferException (); + return backing_buffer; } public final int arrayOffset() { - return 0; + if (backing_buffer == null) + throw new UnsupportedOperationException (); + + if (isReadOnly ()) + throw new ReadOnlyBufferException (); + + return array_offset; } public int hashCode() @@ -173,17 +192,7 @@ public abstract class LongBuffer extends Buffer return 0; } - public final ByteOrder order() - { - return endian; - } - - public final LongBuffer order(ByteOrder bo) - { - endian = bo; - return this; - } - + public abstract ByteOrder order(); public abstract long get(); public abstract java.nio. LongBuffer put(long b); public abstract long get(int index); @@ -193,34 +202,4 @@ public abstract class LongBuffer extends Buffer public abstract LongBuffer slice(); public abstract LongBuffer duplicate(); public abstract LongBuffer asReadOnlyBuffer(); - public abstract ShortBuffer asShortBuffer(); - public abstract CharBuffer asCharBuffer(); - public abstract IntBuffer asIntBuffer(); - public abstract LongBuffer asLongBuffer(); - public abstract FloatBuffer asFloatBuffer(); - public abstract DoubleBuffer asDoubleBuffer(); - public abstract char getChar(); - public abstract LongBuffer putChar(char value); - public abstract char getChar(int index); - public abstract LongBuffer putChar(int index, char value); - public abstract short getShort(); - public abstract LongBuffer putShort(short value); - public abstract short getShort(int index); - public abstract LongBuffer putShort(int index, short value); - public abstract int getInt(); - public abstract LongBuffer putInt(int value); - public abstract int getInt(int index); - public abstract LongBuffer putInt(int index, int value); - public abstract long getLong(); - public abstract LongBuffer putLong(long value); - public abstract long getLong(int index); - public abstract LongBuffer putLong(int index, long value); - public abstract float getFloat(); - public abstract LongBuffer putFloat(float value); - public abstract float getFloat(int index); - public abstract LongBuffer putFloat(int index, float value); - public abstract double getDouble(); - public abstract LongBuffer putDouble(double value); - public abstract double getDouble(int index); - public abstract LongBuffer putDouble(int index, double value); } |