javax.slee.profile.ProfileLocalObject Maven / Gradle / Ivy
package javax.slee.profile;
import javax.slee.NoSuchObjectLocalException;
import javax.slee.SLEEException;
import javax.slee.TransactionRequiredLocalException;
import javax.slee.TransactionRolledbackLocalException;
/**
* The ProfileLocalObject
interface must be extended by all Profile Local
* Interfaces used by SLEE components to interact with profiles.
* @since SLEE 1.1
*/
public interface ProfileLocalObject {
/**
* Compare this ProfileLocalObject
for identity equality with another.
*
* This method is a non-transactional method.
* @param obj the object to compare this with.
* @return true
if obj
is a reference to a profile with the
* same identity (profile table name and profile name) as the profile referenced
* by this ProfileLocalObject
object, false
otherwise.
* @throws SLEEException if the equality test could not be completed due to a
* system-level failure.
*/
public boolean isIdentical(ProfileLocalObject obj)
throws SLEEException;
/**
* Get the name of the profile table in which the profile referenced by this
* ProfileLocalObject
exists.
*
* This method is a non-transactional method.
* @return the profile table name.
* @throws SLEEException if the profile table name could not be obtained due to a
* system-level failure.
*/
public String getProfileTableName()
throws SLEEException;
/**
* Get the name of the profile referenced by this ProfileLocalObject
.
*
* This method is a non-transactional method.
* @return the profile name, or null
if the Profile object is associated
* with the profile table's default profile.
* @throws SLEEException if the profile name could not be obtained due to a
* system-level failure.
*/
public String getProfileName()
throws SLEEException;
/**
* Get an object that implements the Profile Table Interface of the profile table in
* which the profile that this ProfileLocalObject
references exists. If
* the profile specification of the profile table has defined a Profile Table Interface
* that extends {@link ProfileTable} then the object returned from this method may be
* safely typecast to the subinterface declared in the Profile Specification.
*
* This method is a non-transactional method.
* @return a Profile Table Interface object.
* @throws SLEEException if the Profile Table Interface object could not be obtained
* due to a system-level failure.
*/
public ProfileTable getProfileTable()
throws SLEEException;
/**
* Remove the profile referenced by this ProfileLocalObject
.
*
* This method is a mandatory transactional method.
* @throws TransactionRequiredLocalException if this method is invoked without a valid
* transaction context.
* @throws TransactionRolledbackLocalException if the SLEE catches a runtime exception during
* the remove that causes the transaction to be marked for rollback. The
* TransactionRolledbackLocalException
's {@link Throwable#getCause() getCause()}
* method returns the exception that caused the transaction to be marked for rollback.
* This could be, for example:
*
* - a {@link NoSuchObjectLocalException}, if the profile referenced by this
*
ProfileLocalObject
didn't exist;
* - a {@link ReadOnlyProfileException}, if the profile table's profile specification
* has enforced a read-only SLEE component view of profiles; or
*
- a runtime exception that propagated out of the {@link Profile#profileRemove()} method
*
* @throws SLEEException if the SBB entity could not be removed due to a system-level
* failure.
*/
public void remove()
throws TransactionRequiredLocalException, TransactionRolledbackLocalException, SLEEException;
}