org.puremvc.java.interfaces.INotification Maven / Gradle / Ivy
Show all versions of PureMVC Show documentation
//
// PureMVC Java Standard
//
// Copyright(c) 2019 Saad Shams
// Your reuse is governed by the Creative Commons Attribution 3.0 License
//
package org.puremvc.java.interfaces;
/**
* The interface definition for a PureMVC Notification.
*
* PureMVC does not rely upon underlying event models such
* as the one provided with Flash, and ActionScript 3 does
* not have an inherent event model.
*
* The Observer Pattern as implemented within PureMVC exists
* to support event-driven communication between the
* application and the actors of the MVC triad.
*
* Notifications are not meant to be a replacement for Events
* in Flex/Flash/AIR. Generally, IMediator
implementors
* place event listeners on their view components, which they
* then handle in the usual way. This may lead to the broadcast of Notification
s to
* trigger ICommand
s or to communicate with other IMediators
. IProxy
and ICommand
* instances communicate with each other and IMediator
s
* by broadcasting INotification
s.
*
* A key difference between Flash Event
s and PureMVC
* Notification
s is that Event
s follow the
* 'Chain of Responsibility' pattern, 'bubbling' up the display hierarchy
* until some parent component handles the Event
, while
* PureMVC Notification
s follow a 'Publish/Subscribe'
* pattern. PureMVC classes need not be related to each other in a
* parent/child relationship in order to communicate with one another
* using Notification
s.
*
* @see IView IView
* @see IObserver IObserver
*/
public interface INotification {
/**
* Get the name of the INotification
instance.
* No setter, should be set by constructor only
*
* @return notification name
*/
String getName();
/**
* Set the body of the INotification
instance
*
* @param body notification body
*/
void setBody(Object body);
/**
* Get the body of the INotification
instance
*
* @return notification body
*/
Object getBody();
/**
* Set the type of the INotification
instance
*
* @param type notification type
*/
void setType(String type);
/**
* Get the type of the INotification
instance
*
* @return notification type
*/
String getType();
/**
* Get the string representation of the INotification
instance
*
* @return string representation of INotification
*/
String toString();
}