2002-11-01 Michael Koch <konqueror@gmx.de>
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Nov 2002 12:03:40 +0000 (12:03 +0000)
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Nov 2002 12:03:40 +0000 (12:03 +0000)
* java/nio/ByteOrder.java: New file.
* java/nio/channels/DatagramChannel.java:
(DatagramChannel): New constructor.
* java/nio/channels/Pipe.java: New file.
* java/nio/channels/SelectableChannel.java: New file.
* java/nio/channels/SelectionKey.java: New file.
* java/nio/channels/Selector.java: New file.
* java/nio/channels/ServerSocketChannel.java
(ServerSocketChannel): New constructor.
* java/nio/channels/SocketChannel.java
(SocketChannel): New constructor.
* java/nio/channels/Pipe.java: New file.
* java/nio/channels/spi/AbstractChannel.java: New file.
* java/nio/channels/spi/AbstractInterruptibleChannel.java: New file.
* java/nio/channels/spi/AbstractSelectableChannel.java:
License added
(AbstractSelectableChannel): New stubbed method.
* java/nio/channels/spi/AbstractSelectionKey.java: New file.
* java/nio/channels/spi/AbstractSelector.java: New file.
* java/nio/channels/spi/SelectorProvider.java: New file.
* java/nio/charset/Charset.java: New file.
* java/nio/charset/CoderMalfunctionError.java: New file.
* java/nio/charset/CodingErrorAction.java: New file.
* java/nio/charset/spi/CharsetProvider.java
(charsetForName): Uncommented.
* Makefile.am (java_native_source_files): Added new files.
* Makefile.in: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58713 138bc75d-0d04-0410-961f-82ee72b054a4

21 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/java/nio/ByteOrder.java [new file with mode: 0644]
libjava/java/nio/channels/DatagramChannel.java
libjava/java/nio/channels/Pipe.java [new file with mode: 0644]
libjava/java/nio/channels/SelectableChannel.java [new file with mode: 0644]
libjava/java/nio/channels/SelectionKey.java [new file with mode: 0644]
libjava/java/nio/channels/Selector.java [new file with mode: 0644]
libjava/java/nio/channels/ServerSocketChannel.java
libjava/java/nio/channels/SocketChannel.java
libjava/java/nio/channels/spi/AbstractChannel.java [new file with mode: 0644]
libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java [new file with mode: 0644]
libjava/java/nio/channels/spi/AbstractSelectableChannel.java
libjava/java/nio/channels/spi/AbstractSelectionKey.java [new file with mode: 0644]
libjava/java/nio/channels/spi/AbstractSelector.java [new file with mode: 0644]
libjava/java/nio/channels/spi/SelectorProvider.java [new file with mode: 0644]
libjava/java/nio/charset/Charset.java [new file with mode: 0644]
libjava/java/nio/charset/CoderMalfunctionError.java [new file with mode: 0644]
libjava/java/nio/charset/CodingErrorAction.java [new file with mode: 0644]
libjava/java/nio/charset/spi/CharsetProvider.java

index 8d04a29..66d6f5e 100644 (file)
@@ -1,5 +1,35 @@
 2002-11-01  Michael Koch  <konqueror@gmx.de>
 
+       * java/nio/ByteOrder.java: New file.
+       * java/nio/channels/DatagramChannel.java:
+       (DatagramChannel): New constructor.
+       * java/nio/channels/Pipe.java: New file.
+       * java/nio/channels/SelectableChannel.java: New file.
+       * java/nio/channels/SelectionKey.java: New file.
+       * java/nio/channels/Selector.java: New file.
+       * java/nio/channels/ServerSocketChannel.java
+       (ServerSocketChannel): New constructor.
+       * java/nio/channels/SocketChannel.java
+       (SocketChannel): New constructor.
+       * java/nio/channels/Pipe.java: New file.
+       * java/nio/channels/spi/AbstractChannel.java: New file.
+       * java/nio/channels/spi/AbstractInterruptibleChannel.java: New file.
+       * java/nio/channels/spi/AbstractSelectableChannel.java:
+       License added
+       (AbstractSelectableChannel): New stubbed method.
+       * java/nio/channels/spi/AbstractSelectionKey.java: New file.
+       * java/nio/channels/spi/AbstractSelector.java: New file.
+       * java/nio/channels/spi/SelectorProvider.java: New file.
+       * java/nio/charset/Charset.java: New file.
+       * java/nio/charset/CoderMalfunctionError.java: New file.
+       * java/nio/charset/CodingErrorAction.java: New file.
+       * java/nio/charset/spi/CharsetProvider.java
+       (charsetForName): Uncommented.
+       * Makefile.am (java_native_source_files): Added new files.
+       * Makefile.in: Regenerated.
+
+2002-11-01  Michael Koch  <konqueror@gmx.de>
+
        * java/net/InetAddress.java:
        (isAnyLocalAddress): Implemented.
        (isLoopbackAddress): Implemented, comment added.
index bbcd51d..e55c964 100644 (file)
@@ -1958,6 +1958,7 @@ java/net/UnknownHostException.java \
 java/net/UnknownServiceException.java \
 java/nio/Buffer.java \
 java/nio/ByteBuffer.java \
+java/nio/ByteOrder.java \
 java/nio/MappedByteBuffer.java \
 java/nio/channels/AlreadyConnectedException.java \
 java/nio/channels/ByteChannel.java \
@@ -1967,13 +1968,25 @@ java/nio/channels/DatagramChannel.java \
 java/nio/channels/GatheringByteChannel.java \
 java/nio/channels/IllegalBlockingModeException.java \
 java/nio/channels/InterruptibleChannel.java \
+java/nio/channels/Pipe.java \
 java/nio/channels/ReadableByteChannel.java \
 java/nio/channels/ScatteringByteChannel.java \
+java/nio/channels/SelectableChannel.java \
+java/nio/channels/SelectionKey.java \
+java/nio/channels/Selector.java \
 java/nio/channels/ServerSocketChannel.java \
 java/nio/channels/SocketChannel.java \
 java/nio/channels/WritableByteChannel.java \
 java/nio/channels/spi/AbstractSelectableChannel.java \
+java/nio/channels/spi/AbstractChannel.java \
+java/nio/channels/spi/AbstractInterruptibleChannel.java \
+java/nio/channels/spi/AbstractSelectionKey.java \
+java/nio/channels/spi/AbstractSelector.java \
+java/nio/channels/spi/SelectorProvider.java \
+java/nio/charset/Charset.java \
 java/nio/charset/CharacterCodingException.java \
+java/nio/charset/CoderMalfunctionError.java \
+java/nio/charset/CodingErrorAction.java \
 java/nio/charset/IllegalCharsetNameException.java \
 java/nio/charset/MalformedInputException.java \
 java/nio/charset/UnmappableCharacterException.java \
index b459660..02093fa 100644 (file)
@@ -1708,6 +1708,7 @@ java/net/UnknownHostException.java \
 java/net/UnknownServiceException.java \
 java/nio/Buffer.java \
 java/nio/ByteBuffer.java \
+java/nio/ByteOrder.java \
 java/nio/MappedByteBuffer.java \
 java/nio/channels/AlreadyConnectedException.java \
 java/nio/channels/ByteChannel.java \
@@ -1717,13 +1718,25 @@ java/nio/channels/DatagramChannel.java \
 java/nio/channels/GatheringByteChannel.java \
 java/nio/channels/IllegalBlockingModeException.java \
 java/nio/channels/InterruptibleChannel.java \
+java/nio/channels/Pipe.java \
 java/nio/channels/ReadableByteChannel.java \
 java/nio/channels/ScatteringByteChannel.java \
+java/nio/channels/SelectableChannel.java \
+java/nio/channels/SelectionKey.java \
+java/nio/channels/Selector.java \
 java/nio/channels/ServerSocketChannel.java \
 java/nio/channels/SocketChannel.java \
 java/nio/channels/WritableByteChannel.java \
 java/nio/channels/spi/AbstractSelectableChannel.java \
+java/nio/channels/spi/AbstractChannel.java \
+java/nio/channels/spi/AbstractInterruptibleChannel.java \
+java/nio/channels/spi/AbstractSelectionKey.java \
+java/nio/channels/spi/AbstractSelector.java \
+java/nio/channels/spi/SelectorProvider.java \
+java/nio/charset/Charset.java \
 java/nio/charset/CharacterCodingException.java \
+java/nio/charset/CoderMalfunctionError.java \
+java/nio/charset/CodingErrorAction.java \
 java/nio/charset/IllegalCharsetNameException.java \
 java/nio/charset/MalformedInputException.java \
 java/nio/charset/UnmappableCharacterException.java \
@@ -2959,7 +2972,8 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/net/natInetAddress.P .deps/java/net/natNetworkInterface.P \
 .deps/java/net/natPlainDatagramSocketImpl.P \
 .deps/java/net/natPlainSocketImpl.P .deps/java/nio/Buffer.P \
-.deps/java/nio/ByteBuffer.P .deps/java/nio/MappedByteBuffer.P \
+.deps/java/nio/ByteBuffer.P .deps/java/nio/ByteOrder.P \
+.deps/java/nio/MappedByteBuffer.P \
 .deps/java/nio/channels/AlreadyConnectedException.P \
 .deps/java/nio/channels/ByteChannel.P .deps/java/nio/channels/Channel.P \
 .deps/java/nio/channels/ClosedChannelException.P \
@@ -2967,13 +2981,25 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/java/nio/channels/GatheringByteChannel.P \
 .deps/java/nio/channels/IllegalBlockingModeException.P \
 .deps/java/nio/channels/InterruptibleChannel.P \
+.deps/java/nio/channels/Pipe.P \
 .deps/java/nio/channels/ReadableByteChannel.P \
 .deps/java/nio/channels/ScatteringByteChannel.P \
+.deps/java/nio/channels/SelectableChannel.P \
+.deps/java/nio/channels/SelectionKey.P \
+.deps/java/nio/channels/Selector.P \
 .deps/java/nio/channels/ServerSocketChannel.P \
 .deps/java/nio/channels/SocketChannel.P \
 .deps/java/nio/channels/WritableByteChannel.P \
+.deps/java/nio/channels/spi/AbstractChannel.P \
+.deps/java/nio/channels/spi/AbstractInterruptibleChannel.P \
 .deps/java/nio/channels/spi/AbstractSelectableChannel.P \
+.deps/java/nio/channels/spi/AbstractSelectionKey.P \
+.deps/java/nio/channels/spi/AbstractSelector.P \
+.deps/java/nio/channels/spi/SelectorProvider.P \
 .deps/java/nio/charset/CharacterCodingException.P \
+.deps/java/nio/charset/Charset.P \
+.deps/java/nio/charset/CoderMalfunctionError.P \
+.deps/java/nio/charset/CodingErrorAction.P \
 .deps/java/nio/charset/IllegalCharsetNameException.P \
 .deps/java/nio/charset/MalformedInputException.P \
 .deps/java/nio/charset/UnmappableCharacterException.P \
diff --git a/libjava/java/nio/ByteOrder.java b/libjava/java/nio/ByteOrder.java
new file mode 100644 (file)
index 0000000..010fa29
--- /dev/null
@@ -0,0 +1,60 @@
+/* ByteOrder.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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;
+
+
+public final class ByteOrder
+{
+  public static final ByteOrder BIG_ENDIAN     = new ByteOrder();
+  public static final ByteOrder LITTLE_ENDIAN  = new ByteOrder();
+
+  public static ByteOrder nativeOrder()
+  {
+    return BIG_ENDIAN;
+  }
+
+  public String toString()
+  {
+    return this == BIG_ENDIAN ? "BIG_ENDIAN" : "LITTLE_ENDIAN";
+  }
+
+  // This class can only be instantiated here.
+  private ByteOrder ()
+  {
+  }
+}
index 74a26c6..301f33e 100644 (file)
@@ -38,10 +38,13 @@ exception statement from your version. */
 package java.nio.channels;
 
 import java.nio.channels.spi.AbstractSelectableChannel;
+import java.nio.channels.spi.SelectorProvider;
 
-public class DatagramChannel
+public abstract class DatagramChannel
   extends AbstractSelectableChannel
 {
+  public DatagramChannel (SelectorProvider provider)
+  {
+    super (provider);
+  }
 }
-
-              
diff --git a/libjava/java/nio/channels/Pipe.java b/libjava/java/nio/channels/Pipe.java
new file mode 100644 (file)
index 0000000..9c3c6cd
--- /dev/null
@@ -0,0 +1,79 @@
+/* Pipe.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels;
+
+import java.nio.channels.spi.AbstractSelectableChannel;
+import java.nio.channels.spi.SelectorProvider;
+
+public abstract class Pipe
+{
+  public abstract static class SinkChannel
+    extends AbstractSelectableChannel
+    implements WritableByteChannel, GatheringByteChannel
+  {
+    protected SinkChannel(SelectorProvider provider)
+    {
+      super (provider);
+    }
+  }
+
+  public abstract static class SourceChannel
+    extends AbstractSelectableChannel
+    implements ReadableByteChannel, ScatteringByteChannel
+  {
+    protected SourceChannel(SelectorProvider provider)
+    {
+      super (provider);
+    }
+  }
+    
+  protected Pipe()
+  {
+  }
+
+  /**
+   * @exception IOException If an error occurs
+   */
+  public static Pipe open()
+  {
+    return null;
+  }
+    
+  public abstract Pipe.SinkChannel sink();
+  public abstract Pipe.SourceChannel source();   
+}
diff --git a/libjava/java/nio/channels/SelectableChannel.java b/libjava/java/nio/channels/SelectableChannel.java
new file mode 100644 (file)
index 0000000..7b3a50e
--- /dev/null
@@ -0,0 +1,89 @@
+/* SelectableChannel.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels;
+
+import java.nio.channels.spi.AbstractInterruptibleChannel;
+import java.nio.channels.spi.SelectorProvider;
+
+public abstract class SelectableChannel
+  extends AbstractInterruptibleChannel
+{
+  protected SelectableChannel()
+  {
+  }
+  
+  public abstract  Object blockingLock();
+
+  /**
+   * @exception ClosedChannelException FIXME
+   * @exception IllegalBlockingModeException FIXME
+   * @exception IOException FIXME
+   */
+  public abstract  SelectableChannel configureBlocking(boolean block);
+  
+  public abstract  boolean isBlocking();
+  
+  public abstract  boolean isRegistered();
+  
+  public abstract  SelectionKey keyFor(Selector sel);
+  
+  public abstract  SelectorProvider provider();
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   * @exception ClosedChannelException FIXME
+   * @exception IllegalArgumentException FIXME
+   * @exception IllegalBlockingModeException FIXME
+   * @exception IllegalSelectorException FIXME
+   */
+  public final SelectionKey register(Selector sel, int ops) throws java.nio.channels.ClosedChannelException
+  {
+    return register(sel, ops, null);
+  }
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   * @exception ClosedChannelException FIXME
+   * @exception IllegalArgumentException FIXME
+   * @exception IllegalBlockingModeException FIXME
+   * @exception IllegalSelectorException FIXME
+   */
+  public abstract  SelectionKey register(Selector sel, int ops, Object att) throws java.nio.channels.ClosedChannelException;
+  
+  public abstract  int validOps();  
+}
diff --git a/libjava/java/nio/channels/SelectionKey.java b/libjava/java/nio/channels/SelectionKey.java
new file mode 100644 (file)
index 0000000..6835d1d
--- /dev/null
@@ -0,0 +1,120 @@
+/* SelectionKey.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels;
+
+public abstract class SelectionKey
+{
+  public static final int OP_ACCEPT  = 1<<0;
+  public static final int OP_CONNECT = 1<<1;
+  public static final int OP_READ    = 1<<2;
+  public static final int OP_WRITE   = 1<<3;
+    
+  Object attached;
+    
+  protected SelectionKey()
+  {
+  }
+
+  public final Object attach(Object obj)
+  {
+    Object old = attached;
+    attached = obj;
+    return old;
+  }
+    
+  public final Object attachment()
+  {
+    return attached;
+  }    
+
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public final boolean isAcceptable()
+  { 
+    return (readyOps() & OP_ACCEPT) != 0;
+  }
+
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public final boolean isConnectable()
+  {
+    return (readyOps() & OP_CONNECT) != 0;  
+  }        
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public final boolean isReadable()
+  {
+    return (readyOps() & OP_READ) != 0; 
+  }
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public final boolean isWritable()
+  {
+    return (readyOps() & OP_WRITE) != 0;
+  }
+
+  public abstract void cancel(); 
+  
+  public abstract SelectableChannel channel();
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public abstract int interestOps();
+  
+  /**
+   * @exception CancelledKeyException FIXME
+   * @exception IllegalArgumentException FIXME
+   */
+  public abstract SelectionKey interestOps(int ops);
+  
+  public abstract boolean isValid();
+  /**
+   * @exception CancelledKeyException FIXME
+   */
+  public abstract int readyOps();
+  
+  public abstract Selector selector();
+}
diff --git a/libjava/java/nio/channels/Selector.java b/libjava/java/nio/channels/Selector.java
new file mode 100644 (file)
index 0000000..715bc7f
--- /dev/null
@@ -0,0 +1,96 @@
+/* Selector.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels;
+
+import java.util.Set;
+import java.nio.channels.spi.SelectorProvider;
+
+public abstract class Selector
+{
+  protected Selector()
+  {
+  }
+  /**
+   * @exception IOException If an error occurs
+   */
+  public static Selector open()
+  {
+       return SelectorProvider.provider().openSelector();
+  }
+
+  /**
+   * @exception IOException If an error occurs
+   */
+  public abstract void close();
+  
+  public abstract boolean isOpen();
+  
+  /**
+   * @exception ClosedSelectorException FIXME
+   */
+  public abstract Set keys();
+  
+  public abstract SelectorProvider provider();
+  
+  /**
+   * @exception ClosedSelectorException FIXME
+   * @exception IOException If an error occurs
+   */
+  public abstract int select();
+  
+  /**
+   * @exception ClosedSelectorException FIXME
+   * @exception IllegalArgumentException FIXME
+   * @exception IOException If an error occurs
+   */
+  public abstract int select(long timeout);
+  
+  /**
+   * @exception ClosedSelectorException FIXME
+   */
+  public abstract Set selectedKeys();
+  
+  /**
+   * @exception ClosedSelectorException FIXME
+   * @exception IOException If an error occurs
+   */
+  public abstract int selectNow();
+  
+  public abstract Selector wakeup();
+}
index e5d95c1..e423bd1 100644 (file)
@@ -38,8 +38,13 @@ exception statement from your version. */
 package java.nio.channels;
 
 import java.nio.channels.spi.AbstractSelectableChannel;
+import java.nio.channels.spi.SelectorProvider;
 
-public class ServerSocketChannel
+public abstract class ServerSocketChannel
   extends AbstractSelectableChannel
 {
+  public ServerSocketChannel (SelectorProvider provider)
+  {
+    super (provider);
+  }
 }
index 05fc8a5..dc6e1d2 100644 (file)
@@ -38,8 +38,13 @@ exception statement from your version. */
 package java.nio.channels;
 
 import java.nio.channels.spi.AbstractSelectableChannel;
+import java.nio.channels.spi.SelectorProvider;
 
-public class SocketChannel
+public abstract class SocketChannel
   extends AbstractSelectableChannel
 {
+  public SocketChannel (SelectorProvider provider)
+  {
+    super (provider);
+  }
 }
diff --git a/libjava/java/nio/channels/spi/AbstractChannel.java b/libjava/java/nio/channels/spi/AbstractChannel.java
new file mode 100644 (file)
index 0000000..3d7fe7a
--- /dev/null
@@ -0,0 +1,57 @@
+/* AbstractChannel.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
+
+import java.io.IOException;
+import java.nio.channels.Channel;
+
+public abstract class AbstractChannel implements Channel
+{
+  boolean opened;
+
+  public boolean isOpen()
+  {
+    return opened;
+  }
+
+  public void close() throws IOException
+  {
+    if (! isOpen())
+      return;
+  }
+}
diff --git a/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java b/libjava/java/nio/channels/spi/AbstractInterruptibleChannel.java
new file mode 100644 (file)
index 0000000..235b995
--- /dev/null
@@ -0,0 +1,87 @@
+/* AbstractInterruptibleChannel.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
+
+import java.io.IOException;
+import java.nio.channels.Channel;
+import java.nio.channels.InterruptibleChannel;
+
+public abstract class AbstractInterruptibleChannel
+  implements Channel, InterruptibleChannel
+{
+  boolean opened = false;
+
+  protected AbstractInterruptibleChannel()
+  {
+  }
+
+  protected final void begin()
+  {
+    // Marks the beginning of an I/O operation that might block indefinitely.
+  }
+    
+  /**
+   * @exception IOException If an error occurs
+   */
+  public final void close() throws IOException
+  {
+    // Closes this channel.
+    implCloseChannel();
+  }
+
+  /**
+   * @exception AsynchronousCloseException FIXME
+   * @exception ClosedByInterruptException FIXME
+   */
+  protected final void end(boolean completed)
+  {
+    // Marks the end of an I/O operation that might block indefinitely.
+  }   
+
+  /**
+   * @exception IOException If an error occurs
+   */
+  protected abstract void implCloseChannel() throws IOException;
+
+  public final boolean isOpen()
+  {
+    // Tells whether or not this channel is open.
+    return opened;
+  }
+}
+
index 99f7233..42bb1f2 100644 (file)
@@ -1,7 +1,51 @@
+/* AbstractSelectableChannel.java --
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
 
+import java.nio.channels.SelectableChannel;
+
 public abstract class AbstractSelectableChannel
+  extends SelectableChannel
 {
+  protected AbstractSelectableChannel (SelectorProvider provider)
+  {
+  }
+  
   public final boolean isBlocking()
   {
     return true;
diff --git a/libjava/java/nio/channels/spi/AbstractSelectionKey.java b/libjava/java/nio/channels/spi/AbstractSelectionKey.java
new file mode 100644 (file)
index 0000000..e14e3b3
--- /dev/null
@@ -0,0 +1,66 @@
+/* AbstractSelectionKey.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
+
+import java.nio.channels.SelectionKey;
+
+public abstract class AbstractSelectionKey
+  extends SelectionKey
+{
+  boolean ok = true;
+
+  protected AbstractSelectionKey ()
+  {
+  }
+  public final void cancel ()
+  {
+    if (ok)
+      {
+        selector ().selectedKeys ().add (this);
+      }
+    
+    ok = false;
+  }
+
+  public final boolean isValid ()
+  {
+    return ok;
+  }
+}
+
diff --git a/libjava/java/nio/channels/spi/AbstractSelector.java b/libjava/java/nio/channels/spi/AbstractSelector.java
new file mode 100644 (file)
index 0000000..033a8d7
--- /dev/null
@@ -0,0 +1,100 @@
+/* AbstractSelector.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
+
+import java.nio.channels.SelectionKey;
+import java.nio.channels.Selector;
+import java.util.List;
+import java.util.Set;
+
+public abstract class AbstractSelector extends Selector
+{
+  boolean closed = true;
+  SelectorProvider provider;
+
+  protected AbstractSelector(SelectorProvider provider)
+  {
+    this.provider = provider;
+  }
+  protected final void begin()
+  {
+  }
+
+  /**
+   * @exception IOException If an error occurs
+   */
+  public final void close()
+  {
+    if (closed)
+      return;
+    closed = true;
+    implCloseSelector();
+  }
+
+  protected final void deregister(AbstractSelectionKey key)
+  {
+    cancelledKeys().remove(key);
+  }
+    
+  protected final void end()
+  {
+  }
+    
+  public final boolean isOpen()
+  {
+    return ! closed;
+  }
+    
+  public final SelectorProvider provider()
+  {
+    return provider;
+  }
+    
+  protected final Set cancelledKeys()
+  {
+    return null;
+  }
+  
+  /**
+   * @exception IOException If an error occurs
+   */
+  protected abstract void implCloseSelector(); 
+  
+  protected abstract SelectionKey register(AbstractSelectableChannel ch, int ops, Object att);   
+}
diff --git a/libjava/java/nio/channels/spi/SelectorProvider.java b/libjava/java/nio/channels/spi/SelectorProvider.java
new file mode 100644 (file)
index 0000000..93ea537
--- /dev/null
@@ -0,0 +1,82 @@
+/* SelectorProvider.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.channels.spi;
+
+import java.nio.channels.DatagramChannel;
+import java.nio.channels.Pipe;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+
+/**
+ * @since 1.4
+ */
+public abstract class SelectorProvider
+{
+  static SelectorProvider pr;
+    
+  /**
+   * Creates the <code>SelectorProvider<code> object
+   *
+   * @exception SecurityException If a security manager has been installed and
+   * it denies RuntimePermission("selectorProvider")
+   */
+  protected SelectorProvider()
+  {
+    SecurityManager sm = System.getSecurityManager ();
+    if (sm != null)
+      sm.checkPermission (new RuntimePermission ("selectorProvider"));
+  }
+    
+  public abstract  DatagramChannel openDatagramChannel();
+
+  public abstract  Pipe openPipe();
+  
+  public abstract  AbstractSelector openSelector();
+  
+  public abstract  ServerSocketChannel openServerSocketChannel();
+  
+  public abstract  SocketChannel openSocketChannel();
+   
+  /**
+   * Returns the global <code>SelectorProvider</code> object
+   */
+  public static SelectorProvider provider()
+  {
+    return pr;
+  }
+}
diff --git a/libjava/java/nio/charset/Charset.java b/libjava/java/nio/charset/Charset.java
new file mode 100644 (file)
index 0000000..2a1338f
--- /dev/null
@@ -0,0 +1,90 @@
+/* Charset.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.charset;
+
+
+import java.nio.*;
+
+public class Charset
+{
+    public static Charset forName(String name)
+    {
+       return new Charset();
+    }
+
+/*
+    public CharsetDecoder newDecoder()
+    {  
+       return new CharsetDecoder(this,2,2)
+           {
+               protected CoderResult decodeLoop(ByteBuffer  in,
+                                                CharBuffer  out)
+               {
+                   while (in.hasRemaining())
+                       {
+                           char a = (char) in.get();
+                           out.put(a);
+                       }
+                   return null;
+               }
+           };
+    }
+
+    public CharsetEncoder newEncoder()
+    {          
+       return new CharsetEncoder(this,2,2)
+           {
+               protected CoderResult encodeLoop(CharBuffer  in,
+                                                ByteBuffer  out)
+               {
+                   //System.out.println("in encode loop:"+in.hasRemaining());
+
+                   while (in.hasRemaining())
+                       {
+                           char a = in.get();
+                           out.put((byte)a);
+
+                           //int len = out.position();
+                           //System.out.println("pos="+len + ","+a);
+                       }
+                   return null;
+               }
+           };
+    }
+ */
+}
diff --git a/libjava/java/nio/charset/CoderMalfunctionError.java b/libjava/java/nio/charset/CoderMalfunctionError.java
new file mode 100644 (file)
index 0000000..16c23bf
--- /dev/null
@@ -0,0 +1,52 @@
+/* CoderMalfunctionError.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.charset;
+
+/**
+ * @since 1.4
+ */
+class CoderMalfunctionError extends Error
+{
+  /**
+   * Creates the error
+   */
+  public CoderMalfunctionError(Exception cause)
+  {
+    super (cause);
+  }
+}
diff --git a/libjava/java/nio/charset/CodingErrorAction.java b/libjava/java/nio/charset/CodingErrorAction.java
new file mode 100644 (file)
index 0000000..4631077
--- /dev/null
@@ -0,0 +1,54 @@
+/* CodingErrorAction.java -- 
+   Copyright (C) 2002 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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.charset;
+
+
+class CodingErrorAction
+{
+  public static final CodingErrorAction IGNORE;
+  public static final CodingErrorAction REPLACE;
+  public static final CodingErrorAction REPORT;
+
+  /**
+   * FIXME
+   */
+  public String toString ()
+  {
+    return "";
+  }
+}
index 2eddf61..32346a0 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package java.nio.charset.spi;
 
-//import java.nio.charset.Charset;
+import java.nio.charset.Charset;
 import java.util.Iterator;
 
 /**
@@ -84,5 +84,5 @@ public abstract class CharsetProvider
    *
    * @return the charset, or null if not supported
    */
-  //public abstract Charset charsetForName(String name);
+  public abstract Charset charsetForName(String name);
 } // class CharsetProvider