--- src/java/org/activeio/adapter/SynchToAsynchChannelAdapter.java.sav 2006-09-06 11:00:46.000000000 +0200 +++ src/java/org/activeio/adapter/SynchToAsynchChannelAdapter.java 2006-09-06 11:01:47.000000000 +0200 @@ -16,8 +16,39 @@ */ package org.activeio.adapter; +import org.activeio.SyncChannel; +import org.activeio.AsyncChannel; +import org.activeio.Channel; +import EDU.oswego.cs.dl.util.concurrent.Executor; + /** - * @version $Revision$ $Date$ + * @deprecated Use AsyncChannelServer instead. This class will be removed very soon. */ -public class SynchToAsynchChannelAdapter { +public class SynchToAsynchChannelAdapter extends SyncToAsyncChannel{ + public SynchToAsynchChannelAdapter(SyncChannel syncChannel) { + super(syncChannel); + } + + public SynchToAsynchChannelAdapter(SyncChannel syncChannel, Executor executor) { + super(syncChannel, executor); + } + static public AsyncChannel adapt(Channel channel, Executor executor) { + + // It might not need adapting + if( channel instanceof AsyncChannel ) { + return (AsyncChannel) channel; + } + + // Can we just just undo the adaptor + if( channel.getClass() == SyncToAsyncChannel.class ) { + return ((AsyncToSyncChannel)channel).getAsyncChannel(); + } + // Can we just just undo the adaptor + if( channel.getClass() == org.activeio.adapter.SynchToAsynchChannelAdapter.class ) { + return ((AsyncToSyncChannel)channel).getAsyncChannel(); + } + + return new SyncToAsyncChannel((SyncChannel) channel, executor); + + } }