|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.isolate.IsolateMessageVisitor
An abstract utility class used to process
an IsolateMessage
containing arbitrary data via
IsolateMessage.acceptVisitor
. It is
particularly useful if the data types are not known at the time the
IsolateMessage
arrives.
The default implementation for all visitor methods in this class is to
throw an IllegalStateException
. This class is extended by
overriding the methods
for the data types that are expected to be received and implementing the actual
processing or dispatching behavior.
An IsolateMessage
is processed or dispatched by passing a
subclassed IsolateMessageVisitor
instance to
IsolateMessage.acceptVisitor
.
The following example demonstrates usage, printing String
and serialized
object messages
while allowing all other message types to result in an IllegalStateException
.
import java.lang.isolate.*; import java.io.IOException; public class UsageExample { public static class ReportingVisitor extendsIsolateMessageVisitor
{ public voidvisitStringMessage
(IsolateMessage im) { System.out.println("received string: " + im.getString()); } public voidvisitSerializableMessage
(IsolateMessage im) throws LinkSerializationException { System.out.println("received serialized object: " + im.getSerializable()
); } } // Receive and process a message from Link l public static void receiveAndPrintFrom(Link
l) { IsolateMessage im; try { im = l.receive(); } catch (IOException e) { System.err.println("failed to receive isolate message: " + e); return; } try { im.acceptVisitor
(new ReportingVisitor()); } catch (IllegalStateException ise) { System.err.println("unexpected message: not a String or serializable object"); } catch(LinkSerializationException lse) { System.err.println("failed to deserialize received object: " + lse.getCause()); } } }
Constructor Summary | |
IsolateMessageVisitor()
|
Method Summary | |
void |
visitByteArrayMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a byte array. |
void |
visitByteBufferMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a ByteBuffer . |
void |
visitCompositeMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a CompositeMessage (IsolateMessage[] ). |
void |
visitDatagramChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a DatagramChannel . |
void |
visitDatagramSocketMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a DatagramSocket . |
void |
visitEmptyMessage()
Visits the IsolateMessage.EMPTY_MESSAGE . |
void |
visitFileChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a FileChannel . |
void |
visitFileInputStreamMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a FileInputStream . |
void |
visitFileOutputStreamMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a FileOutputStream . |
void |
visitIsolateEventMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing an IsolateEvent . |
void |
visitIsolateMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing an Isolate . |
void |
visitLinkMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a Link . |
void |
visitPipeSinkChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a Pipe.SinkChannel . |
void |
visitPipeSourceChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a Pipe.SourceChannel . |
void |
visitSerializableMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a serialized object. |
void |
visitServerSocketChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a ServerSocketChannel . |
void |
visitServerSocketMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a ServerSocket . |
void |
visitSocketChannelMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a SocketChannel . |
void |
visitSocketMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a Socket . |
void |
visitStringMessage(java.lang.isolate.IsolateMessage im)
Visits an IsolateMessage containing a String . |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public IsolateMessageVisitor()
Method Detail |
public void visitIsolateMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing an Isolate
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit an Isolate
public void visitLinkMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a Link
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a Link
public void visitByteBufferMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a ByteBuffer
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a ByteBufferpublic void visitByteArrayMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a byte array.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a byte arraypublic void visitStringMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a String
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a String
public void visitSocketMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a Socket
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a Socket
public void visitServerSocketMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a ServerSocket
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a ServerSocket
public void visitDatagramSocketMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a DatagramSocket
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a DatagramSocket
public void visitFileInputStreamMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a FileInputStream
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a FileInputStream
public void visitFileOutputStreamMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a FileOutputStream
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a FileOutputStream
public void visitSerializableMessage(java.lang.isolate.IsolateMessage im) throws LinkSerializationException
IsolateMessage
containing a serialized object.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a serialized object
LinkSerializationException
- if a Serialization error occurredpublic void visitPipeSourceChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a Pipe.SourceChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a Pipe.SourceChannel
public void visitPipeSinkChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a Pipe.SinkChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a Pipe.SinkChannel
public void visitIsolateEventMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing an IsolateEvent
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a IsolateEvent
public void visitCompositeMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a CompositeMessage
(IsolateMessage[]
).
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a CompositeMessage
public void visitSocketChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a SocketChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a SocketChannel
public void visitServerSocketChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a ServerSocketChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a ServerSocketChannel
public void visitDatagramChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a DatagramChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a DatagramChannel
public void visitFileChannelMessage(java.lang.isolate.IsolateMessage im)
IsolateMessage
containing a FileChannel
.
im
- the containing IsolateMessage
NullPointerException
- if im
is null
IllegalStateException
- if this message visitor cannot visit a FileChannel
public void visitEmptyMessage()
IsolateMessage.EMPTY_MESSAGE
.
IllegalStateException
- if this message visitor cannot visit the empty message
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |