package ro.bmocanu.zendo.capabilities; import ro.bmocanu.zendo.Destroyable; import ro.bmocanu.zendo.Initializable; import ro.bmocanu.zendo.base.PropertiesManager; import ro.bmocanu.zendo.base.TestDescriptor; /** * This internal interface must be implemented by the Zendo capabilities "behind-the-scenes" in order to * allow the Zendo core to set the properties manager, parent capabilities manager, the test descriptor as * well as the init() & destroy() methods inherited from {@link ro.bmocanu.zendo.Initializable} and * {@link ro.bmocanu.zendo.Destroyable}. * * <p> * Since these methods must not be visible to the client (the actual tests that use the capabilities), each * capability must implement two interfaces: this internal capability interface and the actual interface of * the capability. * </p> * * @author bogdan.mocanu */ public interface CapabilityInternalInterface extends Initializable, Destroyable { public String getName(); public void setName( String name ); public CapabilityType getType(); public void setType( CapabilityType type ); public void setPropertiesManager( PropertiesManager propertiesManager ); public void setCapabilitiesManager( CapabilitiesManager capabilitiesManager ); public void setTestDescriptor( TestDescriptor testDescriptor ); /** * This is a generic-return-type version of the main method exposed by each capability. This should * return the core object (the SQL Connection, the ApplicationContext etc). * * @return the core object of the capability, as an Object */ public Object getCapabilityObject(); }