package javax.slee.resource;
import javax.slee.EventTypeID;
import javax.slee.ServiceID;
/**
* The <code>ReceivableService</code> interface provides information about the event
* types that may be received by a service installed in the SLEE.
* @since SLEE 1.1
*/
public interface ReceivableService {
/**
* The <code>ReceiveableEvent</code> interface identifies information about an
* event type that may be received by SBBs in a service.
* @since SLEE 1.1
*/
public interface ReceivableEvent {
/**
* Get the component identifier of the event type.
* <p>
* This method is a non-transactional method.
* @return the component identifier of the event type.
*/
public EventTypeID getEventType();
/**
* Get the resource option specified by the SBB receiving the event type.
* <p>
* This method is a non-transactional method.
* @return the resource option. May be <code>null</code> if the SBB did not
* specify a resource option.
*/
public String getResourceOption();
/**
* Get the initial-event flag for the event type. An event type can only be
* an initial event if the event type is received by the service's root SBB and
* the root SBB has declared the event type as an initial event.
* <p>
* This method is a non-transactional method.
* @return <code>true</code> if the event type is an initial event for the service,
* <code>false</code> otherwise.
*/
public boolean isInitialEvent();
}
/**
* Get the component identifier of the service represented by this
* <code>ReceivableService</code> object.
* <p>
* This method is a non-transactional method.
* @return the component identifier of the service.
*/
public ServiceID getService();
/**
* Get information about the event types that can be received by SBBs in the service.
* <p>
* If different SBBs in the service have specified to receive the same event type
* but with different resource options, then separate <code>ReceivableEvent</code>
* objects are included in the returned array for each unique resource option.
* <p>
* This method is a non-transactional method.
* @return an array of <code>ReceivableEvent</code> objects that contain information
* about the event types that can be received by SBBs in the service.
*/
public ReceivableEvent[] getReceivableEvents();
/**
* Compare this <code>ReceivableService</code> object for equality with another object.
* @param obj the object to compare this with.
* @return <code>true</code> if <code>obj</code> is a <code>ReceivableService</code>
* object and the service component identifier of this object equals the service
* component identifier contained by <code>obj</code>.
* @see Object#equals(Object)
*/
public boolean equals(Object obj);
}