|
RSE Release 2.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface IRemoteObjectIdentifier
Interface that remote objects must implement in order to be identifiable for drag and drop, clipboard support, and finding multiple occurrences of the same remote object in different contexts in the SystemView.
This is the functional opposite of IRemoteObjectResolver.
IRemoteObjectIdentifier| Method Summary | |
|---|---|
String |
getAbsoluteName(Object object)
Return a String ID for the given remote object, that is unique within the subsystem. |
| Method Detail |
|---|
String getAbsoluteName(Object object)
This must be implemented by subsystem element adapters in order to
marshal a reference to the remote object for drag and drop, and
clipboard support. It is also used for uniquely identifying
objects with changing properties in the SystemView. This method
is the functional opposite of
IRemoteObjectResolver.getObjectWithAbsoluteName(String).
The unique ID for an object must remain the same over the entire lifetime of that object, such that it can always be identified. When an object is renamed, it should be removed from the views with the old ID and then re-added with the new ID. This is especially important for the SystemView, where the String ID is used for finding multiple occurrences of the same remote resource in different contexts during refresh events. In this case, the String ID can be used to find the remote object even if its hashCode changes due to updated properties. So even if a subsystem does not support drag and drop, or clipboard operations, it does need to return unique IDs for its object to support refresh in the SystemView.
Because each subsystem maintains its own objects, it is the
responsibility of the subsystem and its adapters to come up
with a mapping that is unique for the subsystem. Some subsystems
use fully qualified path names, while others may use other methods.
Extenders just need to ensure that objects of different type (such
as filters, actual resources or error messages) all have different
IDs within the subsystem, and the corresponding
IRemoteObjectResolver.getObjectWithAbsoluteName(String)
method actually finds the object by the given ID. Other subsystems
do not need to be considered.
Uniqueness and Multiple Contexts
The RSE SystemView allows the same remote object to be displayed
in multiple different contexts, i.e. under multiple different
filters. In this case, each occurrence of the same object must
return the same absolute name. For the reverse mapping, however,
it is up to the subsystem whether its IRemoteObjectResolver
returns only one internal model object for the given identifier,
or multiple context objects which all refer to the same remote
object but also hold context information.
Examples
In the File Subsystem, a fully qualified pathname is used to
uniquely identify remote objects. For other kinds of objects
maintained by the same subsystem, the following schemes are used:
IHostSearchResult.SEARCH_RESULT_DELIMITER
embedded in the ID.
object - the remote element to be identified.
null.IRemoteObjectResolver.getObjectWithAbsoluteName(String)
|
RSE Release 2.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||