diff options
Diffstat (limited to 'libjava/java/nio/FloatBuffer.java')
-rw-r--r-- | libjava/java/nio/FloatBuffer.java | 383 |
1 files changed, 0 insertions, 383 deletions
diff --git a/libjava/java/nio/FloatBuffer.java b/libjava/java/nio/FloatBuffer.java deleted file mode 100644 index 8042333cbac..00000000000 --- a/libjava/java/nio/FloatBuffer.java +++ /dev/null @@ -1,383 +0,0 @@ -/* FloatBuffer.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -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 java.nio; - -/** - * @since 1.4 - */ -public abstract class FloatBuffer extends Buffer - implements Comparable -{ - int array_offset; - float[] backing_buffer; - - FloatBuffer (int capacity, int limit, int position, int mark) - { - super (capacity, limit, position, mark); - array_offset = 0; - } - - /** - * Allocates a new <code>FloatBuffer</code> object with a given capacity. - */ - public static FloatBuffer allocate (int capacity) - { - return new FloatBufferImpl (capacity); - } - - /** - * Wraps a <code>float</code> array into a <code>FloatBuffer</code> - * object. - * - * @exception IndexOutOfBoundsException If the preconditions on the offset - * and length parameters do not hold - */ - public static final FloatBuffer wrap (float[] array, int offset, int length) - { - return new FloatBufferImpl (array, 0, array.length, offset + length, offset, -1, false); - } - - /** - * Wraps a <code>float</code> array into a <code>FloatBuffer</code> - * object. - */ - public static final FloatBuffer wrap (float[] array) - { - return wrap (array, 0, array.length); - } - - /** - * This method transfers <code>float</code>s from this buffer into the given - * destination array. Before the transfer, it checks if there are fewer than - * length <code>float</code>s remaining in this buffer. - * - * @param dst The destination array - * @param offset The offset within the array of the first <code>float</code> - * to be written; must be non-negative and no larger than dst.length. - * @param length The maximum number of bytes to be written to the given array; - * must be non-negative and no larger than dst.length - offset. - * - * @exception BufferUnderflowException If there are fewer than length - * <code>float</code>s remaining in this buffer. - * @exception IndexOutOfBoundsException If the preconditions on the offset - * and length parameters do not hold. - */ - public FloatBuffer get (float[] dst, int offset, int length) - { - checkArraySize(dst.length, offset, length); - checkForUnderflow(length); - - for (int i = offset; i < offset + length; i++) - { - dst [i] = get (); - } - - return this; - } - - /** - * This method transfers <code>float</code>s from this buffer into the given - * destination array. - * - * @param dst The byte array to write into. - * - * @exception BufferUnderflowException If there are fewer than dst.length - * <code>float</code>s remaining in this buffer. - */ - public FloatBuffer get (float[] dst) - { - return get (dst, 0, dst.length); - } - - /** - * Writes the content of the the <code>FloatBUFFER</code> src - * into the buffer. Before the transfer, it checks if there is fewer than - * <code>src.remaining()</code> space remaining in this buffer. - * - * @param src The source data. - * - * @exception BufferOverflowException If there is insufficient space in this - * buffer for the remaining <code>float</code>s in the source buffer. - * @exception IllegalArgumentException If the source buffer is this buffer. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public FloatBuffer put (FloatBuffer src) - { - if (src == this) - throw new IllegalArgumentException (); - - checkForOverflow(src.remaining()); - - if (src.remaining () > 0) - { - float[] toPut = new float [src.remaining ()]; - src.get (toPut); - put (toPut); - } - - return this; - } - - /** - * Writes the content of the the <code>float array</code> src - * into the buffer. Before the transfer, it checks if there is fewer than - * length space remaining in this buffer. - * - * @param src The array to copy into the buffer. - * @param offset The offset within the array of the first byte to be read; - * must be non-negative and no larger than src.length. - * @param length The number of bytes to be read from the given array; - * must be non-negative and no larger than src.length - offset. - * - * @exception BufferOverflowException If there is insufficient space in this - * buffer for the remaining <code>float</code>s in the source array. - * @exception IndexOutOfBoundsException If the preconditions on the offset - * and length parameters do not hold - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public FloatBuffer put (float[] src, int offset, int length) - { - checkArraySize(src.length, offset, length); - checkForOverflow(length); - - for (int i = offset; i < offset + length; i++) - put (src [i]); - - return this; - } - - /** - * Writes the content of the the <code>float array</code> src - * into the buffer. - * - * @param src The array to copy into the buffer. - * - * @exception BufferOverflowException If there is insufficient space in this - * buffer for the remaining <code>float</code>s in the source array. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public final FloatBuffer put (float[] src) - { - return put (src, 0, src.length); - } - - /** - * Tells whether ot not this buffer is backed by an accessible - * <code>float</code> array. - */ - public final boolean hasArray () - { - return (backing_buffer != null - && !isReadOnly ()); - } - - /** - * Returns the <code>float</code> array that backs this buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - * @exception UnsupportedOperationException If this buffer is not backed - * by an accessible array. - */ - public final float[] array () - { - if (backing_buffer == null) - throw new UnsupportedOperationException (); - - checkIfReadOnly(); - - return backing_buffer; - } - - /** - * Returns the offset within this buffer's backing array of the first element. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - * @exception UnsupportedOperationException If this buffer is not backed - * by an accessible array. - */ - public final int arrayOffset () - { - if (backing_buffer == null) - throw new UnsupportedOperationException (); - - checkIfReadOnly(); - - return array_offset; - } - - /** - * Calculates a hash code for this buffer. - * - * This is done with <code>int</code> arithmetic, - * where ** represents exponentiation, by this formula:<br> - * <code>s[position()] + 31 + (s[position()+1] + 30)*31**1 + ... + - * (s[limit()-1]+30)*31**(limit()-1)</code>. - * Where s is the buffer data, in Float.floatToIntBits() form - * Note that the hashcode is dependent on buffer content, - * and therefore is not useful if the buffer content may change. - * - * @return the hash code - */ - public int hashCode () - { - int hashCode = Float.floatToIntBits(get(position())) + 31; - int multiplier = 1; - for (int i = position() + 1; i < limit(); ++i) - { - multiplier *= 31; - hashCode += (Float.floatToIntBits(get(i)) + 30)*multiplier; - } - return hashCode; - } - - /** - * Checks if this buffer is equal to obj. - */ - public boolean equals (Object obj) - { - if (obj instanceof FloatBuffer) - { - return compareTo (obj) == 0; - } - - return false; - } - - /** - * Compares two <code>FloatBuffer</code> objects. - * - * @exception ClassCastException If obj is not an object derived from - * <code>FloatBuffer</code>. - */ - public int compareTo (Object obj) - { - FloatBuffer other = (FloatBuffer) obj; - - int num = Math.min(remaining(), other.remaining()); - int pos_this = position(); - int pos_other = other.position(); - - for (int count = 0; count < num; count++) - { - float a = get(pos_this++); - float b = other.get(pos_other++); - - if (a == b) - continue; - - if (a < b) - return -1; - - return 1; - } - - return remaining() - other.remaining(); - } - - /** - * Returns the byte order of this buffer. - */ - public abstract ByteOrder order (); - - /** - * Reads the <code>float</code> at this buffer's current position, - * and then increments the position. - * - * @exception BufferUnderflowException If there are no remaining - * <code>float</code>s in this buffer. - */ - public abstract float get (); - - /** - * Writes the <code>float</code> at this buffer's current position, - * and then increments the position. - * - * @exception BufferOverflowException If there no remaining - * <code>float</code>s in this buffer. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public abstract FloatBuffer put (float b); - - /** - * Absolute get method. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - */ - public abstract float get (int index); - - /** - * Absolute put method. - * - * @exception IndexOutOfBoundsException If index is negative or not smaller - * than the buffer's limit. - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public abstract FloatBuffer put (int index, float b); - - /** - * Compacts this buffer. - * - * @exception ReadOnlyBufferException If this buffer is read-only. - */ - public abstract FloatBuffer compact (); - - /** - * Tells wether or not this buffer is direct. - */ - public abstract boolean isDirect (); - - /** - * Creates a new <code>FloatBuffer</code> whose content is a shared - * subsequence of this buffer's content. - */ - public abstract FloatBuffer slice (); - - /** - * Creates a new <code>FloatBuffer</code> that shares this buffer's - * content. - */ - public abstract FloatBuffer duplicate (); - - /** - * Creates a new read-only <code>FloatBuffer</code> that shares this - * buffer's content. - */ - public abstract FloatBuffer asReadOnlyBuffer (); -} |