aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/nio/IntBufferImpl.java
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-05-12 20:45:20 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-05-12 20:45:20 +0000
commit36d4669b735c0e6f665e9a83bdd0848e23fc6662 (patch)
treeeba2e2a8271971b25fa39af84cbebe056dd27e91 /libjava/gnu/java/nio/IntBufferImpl.java
parentd3e0dffb76fd85d777f5c5de71f47816121bc5e3 (diff)
downloadgcc-36d4669b735c0e6f665e9a83bdd0848e23fc6662.zip
gcc-36d4669b735c0e6f665e9a83bdd0848e23fc6662.tar.gz
gcc-36d4669b735c0e6f665e9a83bdd0848e23fc6662.tar.bz2
ByteBufferImpl.java: Reformatted.
2003-05-12 Michael Koch <konqueror@gmx.de> * gnu/java/nio/ByteBufferImpl.java: Reformatted. (nio_get_*): Removed. (nio_put_*): Removed. (as*Buffer): Implemented. (compact): Implemented. (get): Documentation added. (put): Documentation added. (get*): Newly implemented. (put*): Newly implemented. * gnu/java/nio/CharBufferImpl.java: Reformatted. (CharBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * gnu/java/nio/DirectByteBufferImpl.java (allocateDirect): objects can be null not 0. * gnu/java/nio/DoubleBufferImpl.java: Reformatted. (DoubleBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * gnu/java/nio/FloatBufferImpl.java: Reformatted. (FloatBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * gnu/java/nio/IntBufferImpl.java: Reformatted. (IntBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * gnu/java/nio/LongBufferImpl.java: Reformatted. (LongBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * gnu/java/nio/ShortBufferImpl.java: Reformatted. (ShortBufferImpl): Revised. (slice): New implementation. (duplicate): New implementation. (compact): New implementation. (asReadOnlyBuffer): New implementation. (get): Documentation revised. (order): Return native byte order. * java/nio/CharBuffer.java: Reformatted, much documentation rewritten. (CharBuffer): Revised. (order): Removed. * java/nio/DoubleBuffer.java: Reformatted, much documentation rewritten. (DoubleBuffer): Revised. (allocateDirect): Removed. (order): Removed. * java/nio/FloatBuffer.java: Reformatted, much documentation rewritten. (FloatBuffer): Revised. (allocateDirect): Removed. (order): Removed. * java/nio/IntBuffer.java: Reformatted, much documentation rewritten. (IntBuffer): Revised. (allocateDirect): Removed. (order): Removed. * java/nio/LongBuffer.java: Reformatted, much documentation rewritten. (LongBuffer): Revised. (allocateDirect): Removed. (order): Removed. * java/nio/ShortBuffer.java: Reformatted, much documentation rewritten. (ShortBuffer): Revised. (allocateDirect): Removed. (order): Removed. * gnu/java/nio/natByteBufferImpl.cc: Removed. * gnu/java/nio/natCharBufferImpl.cc: Removed. * Makefile.am (ordinary_java_source_files): Added the following files: gnu/java/nio/CharViewBufferImpl.java, gnu/java/nio/DoubleViewBufferImpl.java, gnu/java/nio/FloatViewBufferImpl.java, gnu/java/nio/IntViewBufferImpl.java, gnu/java/nio/LongViewBufferImpl.java, gnu/java/nio/ShortViewBufferImpl.java (nat_source_files): Removed the following files: gnu/java/nio/natByteBufferImpl.cc, gnu/java/nio/natCharBufferImpl.cc * Makefile.in: Regenerated. From-SVN: r66733
Diffstat (limited to 'libjava/gnu/java/nio/IntBufferImpl.java')
-rw-r--r--libjava/gnu/java/nio/IntBufferImpl.java124
1 files changed, 73 insertions, 51 deletions
diff --git a/libjava/gnu/java/nio/IntBufferImpl.java b/libjava/gnu/java/nio/IntBufferImpl.java
index cfa3efe..573e5e0 100644
--- a/libjava/gnu/java/nio/IntBufferImpl.java
+++ b/libjava/gnu/java/nio/IntBufferImpl.java
@@ -1,5 +1,5 @@
/* IntBufferImpl.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+
package gnu.java.nio;
import java.nio.ByteBuffer;
@@ -48,93 +49,114 @@ import java.nio.ReadOnlyBufferException;
public final class IntBufferImpl extends IntBuffer
{
private boolean readOnly;
-
- public IntBufferImpl(int cap, int off, int lim)
- {
- super (cap, lim, off, 0);
- this.backing_buffer = new int[cap];
- readOnly = false;
- }
- public IntBufferImpl(int[] array, int offset, int length)
+ IntBufferImpl (int capacity)
{
- super (array.length, length, offset, 0);
- this.backing_buffer = array;
- readOnly = false;
+ this (new int [capacity], 0, capacity, capacity, 0, -1, false);
}
-
- public IntBufferImpl(IntBufferImpl copy)
+
+ IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
{
- super (copy.capacity (), copy.limit (), copy.position (), 0);
- backing_buffer = copy.backing_buffer;
- readOnly = copy.isReadOnly ();
+ super (buffer, offset, capacity, limit, position, mark);
+ this.readOnly = readOnly;
}
-
- public boolean isReadOnly()
+
+ public boolean isReadOnly ()
{
return readOnly;
}
-
- public IntBuffer slice()
+
+ public IntBuffer slice ()
{
- return new IntBufferImpl (this);
+ return new IntBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
}
-
- public IntBuffer duplicate()
+
+ public IntBuffer duplicate ()
{
- return new IntBufferImpl(this);
+ return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
}
-
- public IntBuffer asReadOnlyBuffer()
+
+ public IntBuffer asReadOnlyBuffer ()
{
- IntBufferImpl result = new IntBufferImpl (this);
- result.readOnly = true;
- return result;
+ return new IntBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
}
-
- public IntBuffer compact()
+
+ public IntBuffer compact ()
{
+ int copied = 0;
+
+ while (remaining () > 0)
+ {
+ put (copied, get ());
+ copied++;
+ }
+
+ position (copied);
return this;
}
-
- public boolean isDirect()
+
+ public boolean isDirect ()
{
return false;
}
- final public int get()
+ /**
+ * Relative get method. Reads the next <code>int</code> from the buffer.
+ */
+ final public int get ()
{
- int e = backing_buffer[position()];
- position(position()+1);
- return e;
+ int result = backing_buffer [position ()];
+ position (position () + 1);
+ return result;
}
-
- final public IntBuffer put(int b)
+
+ /**
+ * Relative put method. Writes <code>value</code> to the next position
+ * in the buffer.
+ *
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
+ final public IntBuffer put (int value)
{
if (readOnly)
throw new ReadOnlyBufferException ();
-
- backing_buffer[position()] = b;
- position(position()+1);
+
+ backing_buffer [position ()] = value;
+ position (position () + 1);
return this;
}
-
- final public int get(int index)
+
+ /**
+ * Absolute get method. Reads the <code>int</code> at position
+ * <code>index</code>.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ */
+ final public int get (int index)
{
- return backing_buffer[index];
+ return backing_buffer [index];
}
-
- final public IntBuffer put(int index, int b)
+
+ /**
+ * Absolute put method. Writes <code>value</value> to position
+ * <code>index</code> in the buffer.
+ *
+ * @exception IndexOutOfBoundsException If index is negative or not smaller
+ * than the buffer's limit.
+ * @exception ReadOnlyBufferException If this buffer is read-only.
+ */
+ final public IntBuffer put (int index, int value)
{
if (readOnly)
throw new ReadOnlyBufferException ();
-
- backing_buffer[index] = b;
+
+ backing_buffer [index] = value;
return this;
}
final public ByteOrder order ()
{
- return ByteOrder.BIG_ENDIAN;
+ return ByteOrder.nativeOrder ();
}
}