uka.transport
Interface ObjectSpace

All Known Subinterfaces:
SharedObjectSpace
All Known Implementing Classes:
DefaultObjectSpace, DefaultSharedObjectSpace, ObjectSpaceAdapter, PartitionedObjectSpace, PartitionedObjectSpace.SubSpace, SimpleObjectSpace

public interface ObjectSpace

An object space is a bidirectional mapping between a set of objects and a set of integer values.


Method Summary
 void clear()
          Clears the object space by removing all identifier assignments.
 int findID(java.lang.Object obj)
          Same as getID(java.lang.Object), but does not assign the object to this object space, if the object was not yet a member.
 int getID(java.lang.Object obj)
          Returns the identifier for a given object.
 java.lang.Object getObject(int id)
          Finds the object for a given identifier.
 IntIterator getUsedIDs()
           
 void includeID(int id)
          Make the object that corresponds to the given identifier part of this object space.
 boolean isAccepted(int id)
          Decides whether an object reference should be blocked during transmission through a MarshalStream/UnmarshalStream pair.
 boolean isIncluded(int id)
          Decides whether the obect that corresponds to the given identifier is part of this object space.
 boolean isShared(int id)
           
 boolean isUsed(int id)
          Checks whether this object space has an object assigned to the given identifier.
 void remove(int id)
          Removes the given identifer from this object space.
 void resetObject(int id, java.lang.Object obj)
          Reassigns a new object to an existing identifier.
 void setObject(int id, java.lang.Object obj)
          Assigns the given object to an application provided identifier and includes the given object to this object space.
 

Method Detail

setObject

public void setObject(int id,
                      java.lang.Object obj)
Assigns the given object to an application provided identifier and includes the given object to this object space.


resetObject

public void resetObject(int id,
                        java.lang.Object obj)
Reassigns a new object to an existing identifier. The effect is the same as removing the identifier first and then reassigning it with setObject(int, java.lang.Object). Since setObject(int, java.lang.Object) may be overridden in subclasses to handle the first assignment of an identifier especially, resetObject(int, java.lang.Object) can be used to avoid additional calls to setObject(int, java.lang.Object).


getObject

public java.lang.Object getObject(int id)
Finds the object for a given identifier.

Returns:
the object passed to the getID(java.lang.Object) call that returned the given identifier.

getID

public int getID(java.lang.Object obj)
Returns the identifier for a given object. If the object was presented to the ObjectSpace the first time, the #isNew method returns true for the resulting identifier.


findID

public int findID(java.lang.Object obj)
Same as getID(java.lang.Object), but does not assign the object to this object space, if the object was not yet a member.


isUsed

public boolean isUsed(int id)
Checks whether this object space has an object assigned to the given identifier. This is most useful, for traversing a non-contiguous identifier space. isUsed(int) returns true for identifier returned from getID(java.lang.Object).


includeID

public void includeID(int id)
Make the object that corresponds to the given identifier part of this object space. An object is part of an object space, if the isIncluded(int) method returns true for the corresponding identifier. An object can have an assigned identifier in some object space without being part of that object space.

Returns:
the identifier assigned to the object passed as parameter.

isIncluded

public boolean isIncluded(int id)
Decides whether the obect that corresponds to the given identifier is part of this object space.

Returns:
whether the object that corresponds to the given identifier is part of this object space.
See Also:
includeID(int)

isShared

public boolean isShared(int id)
Returns:
whether the object that corresponds to the given identifier is a shared object.

isAccepted

public boolean isAccepted(int id)
Decides whether an object reference should be blocked during transmission through a MarshalStream/UnmarshalStream pair. If a call to isAccepted(int) on the ObjectSpace of the sender-side stream returns false for an object identifier, a reference to the corresponding object is blocked (replaced with null).

Returns:
whether references to the corresponding object should be marshaled or blocked.

getUsedIDs

public IntIterator getUsedIDs()

remove

public void remove(int id)
Removes the given identifer from this object space. This operation removes the complete binding of the corresponding object to its identifier from this object space. A future call to getID(java.lang.Object) with the object corresponding to the given identifier as argument will result in a new identifier.


clear

public void clear()
Clears the object space by removing all identifier assignments.