/* * ****************************************************************************** * * Copyright 2015 See AUTHORS file. * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * ***************************************************************************** */ package com.puremvc.patterns.observer; import com.puremvc.patterns.facade.SimpleFacade; /** * A Base <code>Notifier</code> implementation. * <p> * <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> * <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 com.puremvc.patterns.facade.Facade Facade * @see com.puremvc.patterns.mediator.Mediator Mediator * @see com.puremvc.patterns.proxy Proxy * @see com.puremvc.patterns.command.SimpleCommand SimpleCommand * @see com.puremvc.patterns.command.MacroCommand MacroCommand */ public class BaseNotifier { // The Multiton Key for this app /** * Local reference to the Facade Singleton */ protected SimpleFacade facade; /** * Send an <code>Notification</code>s. * <p> * <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> * <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> * <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); } }