/* * @@COPYRIGHT@@ */ package com.cosylab.acs.maci; /** * Component interface. * * Interface contains two methods: <code>construct()</code> and <code>destruct()</code>, which Component may choose to implement * to allow construction and destruction outside of the constructor/destructor. * This is mandatory if a component refers to other components, which could in turn refer back to this component. * * @author Matej Sekoranja (matej.sekoranja@cosylab.com) * @version @@VERSION@@ */ public interface Component { /** * Called by the Manager immediately after the object has been constructed and registered with the Manager. * This is a good place to resolve references to dependent components. */ public void construct() throws RemoteException; /** * Called immediately before the object is destructed. Here references to other components should be released. * After this method completes, the Manager unregisters the component. */ public void destruct() throws RemoteException; /** * Checks if component implements given type. * @param type implementation of the type to be checked. * @returns <code>true</code> if component implements <code>type</code> type, otherwise <code>false</code>. */ public boolean doesImplement(String type); /** * Returns list of intefaces implemented by this component. * @returns list of intefaces implemented by this component. */ public String[] implementedInterfaces(); /** * Returns implementation of component object. * @returns implementation of component object. */ public Object getObject(); }