aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/LongBuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/nio/LongBuffer.java')
-rw-r--r--libjava/java/nio/LongBuffer.java79
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);
}