? autogen.sh ? build Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.731 diff -b -u -r1.731 ChangeLog --- ChangeLog 22 Nov 2002 12:35:11 -0000 1.731 +++ ChangeLog 22 Nov 2002 13:05:20 -0000 @@ -1,5 +1,19 @@ 2002-11-22 Michael Koch + * gnu/java/nio/CharBufferImpl.java + (subSequence): New stubbed method. + * gnu/java/nio/MappedCharFileBuffer.java: + Reindented. + (subSequence): New stubbed method. + * java/nio/CharBuffer.java + (CharBuffer): Implements Comparable and CharSequence. + (lenght): New method. + (charAt): New method. + (toString): New method. + (put): Removed unneeded "java.nio." prefix. + +2002-11-22 Michael Koch + * java/nio/channels/Channels.java: Reindented, documentation added. (newInputStream): Documentation added. Index: gnu/java/nio/CharBufferImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/nio/CharBufferImpl.java,v retrieving revision 1.9 diff -b -u -r1.9 CharBufferImpl.java --- gnu/java/nio/CharBufferImpl.java 19 Nov 2002 11:21:34 -0000 1.9 +++ gnu/java/nio/CharBufferImpl.java 22 Nov 2002 13:05:20 -0000 @@ -87,6 +87,7 @@ private static native char[] nio_cast(int[]copy); private static native char[] nio_cast(float[]copy); private static native char[] nio_cast(double[]copy); + CharBufferImpl(byte[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } private static native byte nio_get_Byte(CharBufferImpl b, int index, int limit); private static native void nio_put_Byte(CharBufferImpl b, int index, int limit, byte value); public ByteBuffer asByteBuffer() { ByteBufferImpl res = new ByteBufferImpl(backing_buffer); res.limit((limit()*1)/2); return res; } CharBufferImpl(char[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } private static native char nio_get_Char(CharBufferImpl b, int index, int limit); private static native void nio_put_Char(CharBufferImpl b, int index, int limit, char value); public CharBuffer asCharBuffer() { CharBufferImpl res = new CharBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; } CharBufferImpl(short[] copy) { this.backing_buffer = copy != null ? nio_cast(copy) : null; } private static native short nio_get_Short(CharBufferImpl b, int index, int limit); private static native void nio_put_Short(CharBufferImpl b, int index, int limit, short value); public ShortBuffer asShortBuffer() { ShortBufferImpl res = new ShortBufferImpl(backing_buffer); res.limit((limit()*2)/2); return res; } @@ -127,6 +128,12 @@ public boolean isDirect() { return backing_buffer != null; + } + + final public CharSequence subSequence (int start, int end) + { + // FIXME + return null; } final public char get() Index: gnu/java/nio/MappedCharFileBuffer.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/nio/MappedCharFileBuffer.java,v retrieving revision 1.6 diff -b -u -r1.6 MappedCharFileBuffer.java --- gnu/java/nio/MappedCharFileBuffer.java 30 Apr 2002 21:37:26 -0000 1.6 +++ gnu/java/nio/MappedCharFileBuffer.java 22 Nov 2002 13:05:20 -0000 @@ -36,8 +36,16 @@ exception statement from your version. */ package gnu.java.nio; -import java.nio.*; + import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.DoubleBuffer; +import java.nio.FloatBuffer; +import java.nio.IntBuffer; +import java.nio.LongBuffer; +import java.nio.ShortBuffer; + final public class MappedCharFileBuffer extends CharBuffer { @@ -45,6 +53,7 @@ boolean ro; boolean direct; public FileChannelImpl ch; + public MappedCharFileBuffer(FileChannelImpl ch) { this.ch = ch; @@ -56,6 +65,7 @@ System.err.println("failed to get size of file-channel's file"); } } + public MappedCharFileBuffer(MappedCharFileBuffer b) { this.ro = b.ro; @@ -63,55 +73,72 @@ address = b.address; limit(b.limit()); } + public boolean isReadOnly() { return ro; } -final public char get() + + final public char get() { char a = MappedByteFileBuffer.nio_read_Char_file_channel(ch, position(), limit(), address); position(position() + 2); return a; } -final public CharBuffer put(char b) + + final public CharBuffer put(char b) { MappedByteFileBuffer.nio_write_Char_file_channel(ch, position(), limit(), b, address); position(position() + 2); return this; } -final public char get(int index) + + final public char get(int index) { char a = MappedByteFileBuffer.nio_read_Char_file_channel(ch, index, limit(), address); return a; } -final public CharBuffer put(int index, char b) + + final public CharBuffer put(int index, char b) { MappedByteFileBuffer.nio_write_Char_file_channel(ch, index, limit(), b, address); return this; } -final public CharBuffer compact() + + final public CharBuffer compact() { return this; } -final public boolean isDirect() + + final public boolean isDirect() { return direct; } -final public CharBuffer slice() + + final public CharSequence subSequence (int start, int end) + { + // FIXME + return null; + } + + final public CharBuffer slice() { MappedCharFileBuffer A = new MappedCharFileBuffer(this); return A; } -public CharBuffer duplicate() + + public CharBuffer duplicate() { return new MappedCharFileBuffer(this); } -public CharBuffer asReadOnlyBuffer() + + public CharBuffer asReadOnlyBuffer() { MappedCharFileBuffer b = new MappedCharFileBuffer(this); b.ro = true; return b; } + final public ByteBuffer asByteBuffer() { ByteBuffer res = new MappedByteFileBuffer(ch); res.limit((limit()*2)/1); return res; } final public byte getByte() { byte a = MappedByteFileBuffer.nio_read_Byte_file_channel(ch, position(), limit(), address); position(position() + 2); return a; } final public CharBuffer putByte(byte value) { MappedByteFileBuffer.nio_write_Byte_file_channel(ch, position(), limit(), value, address); position(position() + 2); return this; } final public byte getByte(int index) { byte a = MappedByteFileBuffer.nio_read_Byte_file_channel(ch, index, limit(), address); return a; } final public CharBuffer putByte(int index, byte value) { MappedByteFileBuffer.nio_write_Byte_file_channel(ch, index, limit(), value, address); return this; }; final public CharBuffer asCharBuffer() { CharBuffer res = new MappedCharFileBuffer(ch); res.limit((limit()*2)/2); return res; } final public char getChar() { char a = MappedByteFileBuffer.nio_read_Char_file_channel(ch, position(), limit(), address); position(position() + 2); return a; } final public CharBuffer putChar(char value) { MappedByteFileBuffer.nio_write_Char_file_channel(ch, position(), limit(), value, address); position(position() + 2); return this; } final public char getChar(int index) { char a = MappedByteFileBuffer.nio_read_Char_file_channel(ch, index, limit(), address); return a; } final public CharBuffer putChar(int index, char value) { MappedByteFileBuffer.nio_write_Char_file_channel(ch, index, limit(), value, address); return this; }; final public ShortBuffer asShortBuffer() { ShortBuffer res = new MappedShortFileBuffer(ch); res.limit((limit()*2)/2); return res; } final public short getShort() { short a = MappedByteFileBuffer.nio_read_Short_file_channel(ch, position(), limit(), address); position(position() + 2); return a; } final public CharBuffer putShort(short value) { MappedByteFileBuffer.nio_write_Short_file_channel(ch, position(), limit(), value, address); position(position() + 2); return this; } final public short getShort(int index) { short a = MappedByteFileBuffer.nio_read_Short_file_channel(ch, index, limit(), address); return a; } final public CharBuffer putShort(int index, short value) { MappedByteFileBuffer.nio_write_Short_file_channel(ch, index, limit(), value, address); return this; }; Index: java/nio/CharBuffer.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/nio/CharBuffer.java,v retrieving revision 1.5 diff -b -u -r1.5 CharBuffer.java --- java/nio/CharBuffer.java 16 Nov 2002 16:02:56 -0000 1.5 +++ java/nio/CharBuffer.java 22 Nov 2002 13:05:21 -0000 @@ -43,6 +43,7 @@ * @since 1.4 */ public abstract class CharBuffer extends Buffer + implements Comparable, CharSequence { private ByteOrder endian = ByteOrder.BIG_ENDIAN; @@ -155,6 +156,35 @@ return false; } + public abstract CharSequence subSequence (int start, int end); + + public final int length () + { + return limit (); + } + + public final char charAt (int i) + { + if (hasArray ()) + { + return backing_buffer[i]; + } + + // FIXME: there must be a more elegant way of doing this. + return toString ().charAt (i); + } + + public String toString() + { + if (hasArray ()) + { + return new String (backing_buffer); + } + + // FIXME: Implement this. + return ""; + } + public int compareTo(Object obj) { CharBuffer a = (CharBuffer) obj; @@ -191,9 +221,9 @@ } public abstract char get(); - public abstract java.nio. CharBuffer put(char b); + public abstract CharBuffer put(char b); public abstract char get(int index); - public abstract java.nio. CharBuffer put(int index, char b); + public abstract CharBuffer put(int index, char b); public abstract CharBuffer compact(); public abstract boolean isDirect(); public abstract CharBuffer slice();