MediaListener.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. See terms of license at gnu.org. */ package javax.emb; import java.io.Serializable; /** * This interface defines the common behavior of media listener. Such observers * are implemented by application programmers to be persisted with and extend * the semantics of media entity EJBs in a way that does not depend on the * implementation of the latter. Listeners are notified of specific events in * media entity EJBs once they are registered with said. As they have to be * persisted with media entity EJBs, all listeners must be serializable. * * <p>The persistent observer design differs from the standard Java listener * practice by passing the name of properties affected instead of passing the * property value to distinct callback methods. The reason for this is that the * large size of media content makes it practically impossible to pass it to * observers. Therefore, observers are forced to retrieve property values from * entity beans when there is a need. Please note that Entity Beans must be * deployed as reentrant in order for the latter to work. * * @version <tt>$Revision: 1.1 $</tt> * @author <a href="mailto:ricardoarguello@users.sourceforge.net">Ricardo * Argüello</a> */ public interface MediaListener extends Serializable { /** * This method handles the fact that the given media entity is about to * change the value of its property named <code>propertyName</code>. * Valid property names are "content", "location", "mimeType", "name" and * "description". * * @param mediaEntity media entity. * @param propertyName prppoerty name. * @throws javax.emb.ListenerVetoException if the listener does not agree to * the intended change. * @throws javax.emb.MediaException if there's an application specific * problem. * @throws java.lang.NullPointerException is thrown if one of the values * passed is <code>null</code>. */ void handleAboutToChangeMediaEntity( MediaEntityLocal mediaEntity, String propertyName) throws MediaException; /** * This method handles the fact that the given media entity is about to be * removed. * * @param mediaEntity media entity. * @throws javax.emb.ListenerVetoException if the listener does not agree to * the intended removal. * @throws javax.emb.MediaException if there's an application specific * problem. * @throws java.lang.NullPointerException if the value passed is <code>null</code>. */ void handleAboutToRemoveMediaEntity(MediaEntityLocal mediaEntity) throws MediaException; /** * This method handles the fact that the given media entity has changed the * value of its property named propertyName. Valid property names are * "content", "location", "mimeType", "name" and "description". * * @param mediaEntity media entity. * @param propertyName property name. * @throws javax.emb.ListenerVetoException if the listener does not agree to * the change performed. * @throws javax.emb.MediaException if there's an application specific * problem. * @throws java.lang.NullPointerException if one of the values passed is * <code>null</code>. */ void handleMediaEntityChanged( MediaEntityLocal mediaEntity, String propertyName) throws MediaException; /** * This method overwrites the matching method in <code>java.lang.Object</code>. * The result is <code>true</code> if the given object is a <code>MediaListener</code> * and it is content equal to the receiver, otherwise <code>false</code>. * Note that this behavior is required as listeners are stored and loaded as * part of EJB operations and therefore frequently change their object * identity. * * @param object object. */ boolean equals(Object object); /** * This method overwrites the matching method in <code>java.lang.Object</code>. * The resulting hash code is calculated based on the receiver's content. * Note that this behavior is required as listeners are stored and loaded as * part of EJB operations and therefore frequently change their object * identity. * * @return hashcode. */ int hashCode(); }
MediaListener.java |