package fractal.api;
/**
* A component interface to introspect the external interfaces of the component
* to which it belongs.
*/
public interface Component extends ErrorConst {
/**
* Returns an external interface of the component to which this interface
* belongs.
*
* @param interfaceName the name of the external interface that must be
* returned.
* @param interfaceReference (out parameter) the external interface of the
* component to which this interface belongs, whose name is equal to the
* given name.
* @return <code>0</code> if the interface exist and as been returned
* correctly or {@link ErrorConst#NO_SUCH_INTERFACE} if there is no such
* interface.
*/
int getFcInterface(const in string interfaceName, out any interfaceReference);
/**
* Returns the external interfaces of the component to which this interface
* belongs. More precisely, if the given <code>interfaceReferences</code> is
* <code>null</code>, this method returns the number of external interfaces.
* If it is not <code>null</code>, this method assumes that the given array is
* big enough to contain all the external interfaces.
*
* @param interfaceReferences an array into which references of the external
* interfaces are copied. Can be <code>null</code>.
* @return the number of interface references; or
* {@link ErrorConst#OPERATION_NOT_SUPPORTED} if this operation is not
* supported.
*/
int getFcInterfaces(in any[] interfaceReferences);
}