2014년 2월 27일 목요일

N o t i f i e r ( PureMVC )



/*
 PureMVC Java port by Frederic Saunier <frederic.saunier@puremvc.org>

 Adapted from sources of thoses different authors :
  Donald Stinchfield <donald.stinchfield@puremvc.org>, et all
  Ima OpenSource <opensource@ima.eu>
  Anthony Quinault <anthony.quinault@puremvc.org>

 PureMVC - Copyright(c) 2006-10 Futurescale, Inc., Some rights reserved. 
 Your reuse is governed by the Creative Commons Attribution 3.0 License
*/
package org.puremvc.java.interfaces;

/**
 * The interface definition for a PureMVC Notifier.
 * 
 * <P>
 * <code>MacroCommand, Command, Mediator</code> and <code>Proxy</code> all
 * have a need to send <code>Notifications</code>.
 * </P>
 * 
 * <P>
 * The <code>INotifier</code> interface provides a common method called
 * <code>sendNotification</code> that relieves implementation code of the
 * necessity to actually construct <code>Notifications</code>.
 * </P>
 * 
 * <P>
 * The <code>Notifier</code> class, which all of the above mentioned classes
 * extend, also provides an initialized reference to the <code>Facade</code>
 * Singleton, which is required for the convienience method for sending
 * <code>Notifications</code>, but also eases implementation as these classes
 * have frequent <code>Facade</code> interactions and usually require access
 * to the facade anyway.
 * </P>
 * 
 * @see org.puremvc.java.interfaces.IFacade IFacade
 * @see org.puremvc.java.interfaces.INotification INotification
 */
public interface INotifier
{

/**
 * Send a <code>INotification</code>.
 * 
 * <P>
 * Convenience method to prevent having to construct new notification
 * instances in our implementation code.
 * </P>
 * 
 * @param notificationName
 *            the name of the notification to send
 * @param body
 *            the body of the notification (optional)
 * @param type
 *            the type of the notification (optional)
 */
public void sendNotification( String notificationName, Object body, String type );
/**
 * Send a <code>INotification</code>.
 * 
 * <P>
 * Convenience method to prevent having to construct new notification
 * instances in our implementation code.
 * </P>
 * 
 * @param notificationName
 *            the name of the notification to send
 * @param body
 *            the body of the notification (optional)
 */
public void sendNotification( String notificationName, Object body );
/**
 * Send a <code>INotification</code>.
 * 
 * <P>
 * Convenience method to prevent having to construct new notification
 * instances in our implementation code.
 * </P>
 * 
 * @param notificationName
 *            the name of the notification to send
 */
public void sendNotification( String notificationName );
}




/*
 PureMVC Java port by Frederic Saunier <frederic.saunier@puremvc.org>
 Adapted from sources of thoses different authors :
  Donald Stinchfield <donald.stinchfield@puremvc.org>, et all
  Ima OpenSource <opensource@ima.eu>
  Anthony Quinault <anthony.quinault@puremvc.org>
 PureMVC - Copyright(c) 2006-10 Futurescale, Inc., Some rights reserved. 
 Your reuse is governed by the Creative Commons Attribution 3.0 License
*/
package org.puremvc.java.patterns.observer;

import org.puremvc.java.interfaces.INotifier;
import org.puremvc.java.patterns.facade.Facade;

/**
 * A Base <code>INotifier</code> implementation.
 * 
 * <P>
 * <code>MacroCommand, Command, Mediator</code> and <code>Proxy</code> all
 * have a need to send <code>Notifications</code>.
 * <P>
 * <P>
 * The <code>INotifier</code> interface provides a common method called
 * <code>sendNotification</code> that relieves implementation code of the
 * necessity to actually construct <code>Notifications</code>.
 * </P>
 * 
 * <P>
 * The <code>Notifier</code> class, which all of the above mentioned classes
 * extend, provides an initialized reference to the <code>Facade</code>
 * Singleton, which is required for the convienience method for sending
 * <code>Notifications</code>, but also eases implementation as these classes
 * have frequent <code>Facade</code> interactions and usually require access
 * to the facade anyway.
 * </P>
 * 
 * @see org.puremvc.java.patterns.facade.Facade Facade
 * @see org.puremvc.java.patterns.mediator.Mediator Mediator
 * @see org.puremvc.java.patterns.proxy.Proxy Proxy
 * @see org.puremvc.java.patterns.command.SimpleCommand SimpleCommand
 * @see org.puremvc.java.patterns.command.MacroCommand MacroCommand
 */
public class Notifier implements INotifier
{
// The Multiton Key for this app
/**
 * Local reference to the Facade Singleton
 */
protected Facade facade = Facade.getInstance();

/**
 * Send an <code>INotification</code>s.
 * 
 * <P>
 * Keeps us from having to construct new notification instances in our
 * implementation code.
 * 
 * @param notificationName
 *            the name of the notiification to send
 * @param body
 *            the body of the notification (optional)
 * @param type
 *            the type of the notification (optional)
 */

public void sendNotification( String notificationName, Object body, String type )
{
facade.sendNotification( notificationName, body, type );
}
/**
 * Send an <code>INotification</code>s.
 * 
 * <P>
 * Keeps us from having to construct new notification instances in our
 * implementation code.
 * 
 * @param notificationName
 *            the name of the notiification to send
 * @param body
 *            the body of the notification (optional)
 */

public void sendNotification( String notificationName, Object body)
{
facade.sendNotification( notificationName, body);
}
/**
 * Send an <code>INotification</code>s.
 * 
 * <P>
 * Keeps us from having to construct new notification instances in our
 * implementation code.
 * 
 * @param notificationName
 *            the name of the notiification to send
 */

public void sendNotification( String notificationName)
{
facade.sendNotification( notificationName);
}

}


댓글 없음:

댓글 쓰기