package si.ijs.acs.objectexplorer.engine;
/**
* This interface represents the remote object.
* Name of the interface signifies that the
* instances are able to return metadata about themselves,
* such as listings of all remote methods and attributes
* that they declare. All introspectable instances have
* a name. How this name is mapped to the remote reference
* depends on the engine implementation.
*/
public interface SimpleIntrospectable {
/**
* This method returns all attributes declared
* by this introspectable instance. Before this
* method is called, the introspectable must have
* been connected.
*
* @return an array of declared attribute objects
*/
Attribute[] getAttributes();
/**
* Returns the name of this introspectable. Note that
* the implementing object should overload the
* <code>toString()</code> method to return the same
* value to provide GUI with a standardized way to
* display the introspectable in components such as
* lists or trees.
*
* @return name of <code>this</code>
*/
String getName();
/**
* Returns all operations declared by this introspectable.
* Before this method is called the introspectable instance
* must have been connected. The operations exclude
* attribute mutator and accessor methods.
*
* @return operations declared by the introspectable.
*/
Operation[] getOperations();
}