All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.puremvc.java.patterns.observer.Notification Maven / Gradle / Ivy

Go to download

PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern. This is the specific implementation for the Java language. It does not support modular programming since it uses Singletons as Core actors rather than the Multiton used in the MultiCore Version.

The newest version!
//
//  PureMVC Java Standard
//
//  Copyright(c) 2019 Saad Shams 
//  Your reuse is governed by the Creative Commons Attribution 3.0 License
//

package org.puremvc.java.patterns.observer;

import org.puremvc.java.interfaces.INotification;

/**
 * 

A base INotification implementation.

* *

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/Apollo. 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 Notifications to * trigger ICommands or to communicate with other IMediators. IProxy and ICommand * instances communicate with each other and IMediators * by broadcasting INotifications.

* *

A key difference between Flash Events and PureMVC * Notifications is that Events follow the * 'Chain of Responsibility' pattern, 'bubbling' up the display hierarchy * until some parent component handles the Event, while * PureMVC Notifications 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 Notifications.

* * @see Observer Observer * */ public class Notification implements INotification { // the name of the notification instance private String name; // the type of the notification instance private String type; // the body of the notification instance private Object body; /** *

Constructor.

* * @param name name of the Notification instance. (required) * @param body the Notification body. * @param type the type of the Notification */ public Notification(String name, Object body, String type) { this.name = name; this.body = body; this.type = type; } /** *

Constructor.

* * @param name name of the Notification instance. * @param body the Notification body. */ public Notification(String name, Object body) { this(name, body, null); } /** *

Constructor.

* * @param name name of the Notification instance. */ public Notification(String name) { this(name, null, null); } /** *

Get the name of the Notification instance.

* * @return the name of the Notification instance. */ public String getName() { return name; } /** *

Set the body of the Notification instance.

*/ public void setBody(Object body) { this.body = body; } /** *

Get the body of the Notification instance.

* * @return the body object. */ public Object getBody() { return body; } /** *

Set the type of the Notification instance.

*/ public void setType(String type) { this.type = type; } /** *

Get the type of the Notification instance.

* * @return the type */ public String getType() { return type; } /** *

Get the string representation of the Notification instance.

* * @return the string representation of the Notification instance. */ public String toString() { String msg = "Notification Name: " + getName(); msg += "\nBody:" + ((body == null) ? "null" : body.toString()); msg += "\nType:" + ((type == null) ? "null" : type); return msg; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy