|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.rit.m2mi.Handle
edu.rit.m2mi.Multihandle
public class Multihandle
Class Multihandle is the base class for all M2MI multihandle objects. An actual multihandle class is a synthesized subclass of class Multihandle which implements the handle's target interface(s). Calling a target interface method on a multihandle object causes M2MI invocations to be performed on the target object or objects to which the multihandle refers, namely, all objects that have been attached to the multihandle.
While instances of class Multihandle can be constructed, this is intended only for use during object serialization. When a synthesized multihandle is serialized into an object output stream, the synthesized multihandle replaces itself in the stream with an instance of class Multihandle containing the same EOID and target interface list. When an instance of class Multihandle is deserialized from an object input stream, the multihandle synthesizes the proper subclass, creates an instance of the synthesized subclass containing the same EOID and target interface list, and replaces itself with the subclass instance. In this way multihandle objects can be transported across the network without needing to transport the synthesized subclasses.
Field Summary |
---|
Fields inherited from class edu.rit.m2mi.Handle |
---|
myEoid, myInvocationFactory, myTargetInterface |
Constructor Summary | |
---|---|
Multihandle()
Construct a new multihandle. |
|
Multihandle(Eoid theEoid,
Class theTargetInterface)
Construct a new multihandle with the given EOID and target interface. |
Method Summary | |
---|---|
void |
attach(Object theObject)
Attach the given object to this multihandle. |
void |
detach(Object theObject)
Detach the given object from this multihandle. |
boolean |
equals(Object theObject)
Determine if this multihandle is equal to the given object. |
int |
hashCode()
Returns a hash code for this multihandle. |
boolean |
invokes(Object theObject)
Determine if a method invocation on this multihandle will be executed by the given object. |
Iterator |
iterator()
Obtain an iterator for visiting the objects associated with this multihandle. |
void |
readExternal(ObjectInput theObjectInput)
Read this multihandle from the given object input stream. |
String |
toString()
Returns a string version of this multihandle. |
void |
writeExternal(ObjectOutput theObjectOutput)
Write this multihandle to the given object output stream. |
Methods inherited from class edu.rit.m2mi.Handle |
---|
getEoid, getInterface, getInterfaceName, isExportedEoid, isExportedInterface, iteratorEoid, iteratorInterface, setEoid, setInvocationFactory, setTargetInterface |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Multihandle()
public Multihandle(Eoid theEoid, Class theTargetInterface)
theEoid
- EOID.theTargetInterface
- Target interface.Method Detail |
---|
public boolean invokes(Object theObject)
invokes
in class Handle
theObject
- Object to test.
IllegalStateException
- (unchecked exception) Thrown if the M2MI layer is not initialized.public Iterator iterator()
iterator
in class Handle
public void attach(Object theObject)
theObject
- Object.
IllegalStateException
- (unchecked exception) Thrown if the M2MI layer is not initialized.
NullPointerException
- (unchecked exception) Thrown if theObject is null.
ClassCastException
- (unchecked exception) Thrown if neither theObject's class
nor any of its superclasses implements this multihandle's target
interface.
ExportException
- (unchecked exception) Thrown if there was a problem exporting the
object.public void detach(Object theObject)
theObject
- Object.
IllegalStateException
- (unchecked exception) Thrown if the M2MI layer is not initialized.
NullPointerException
- (unchecked exception) Thrown if theObject is null.
ExportException
- (unchecked exception) Thrown if there was a problem unexporting the
object.public void writeExternal(ObjectOutput theObjectOutput) throws IOException
writeExternal
in interface Externalizable
writeExternal
in class Handle
theObjectOutput
- Object output stream.
IOException
- Thrown if an I/O error occurred.public void readExternal(ObjectInput theObjectInput) throws ClassNotFoundException, IOException
readExternal
in interface Externalizable
readExternal
in class Handle
theObjectInput
- Object input stream.
ClassNotFoundException
- Thrown if the class for an object being deserialized cannot be found.
IOException
- Thrown if an I/O error occurred.public boolean equals(Object theObject)
equals
in class Object
theObject
- Object to test.
public int hashCode()
hashCode
in class Object
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |