Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.puremvc.java.patterns.facade
Class Facade

    java.lang.Object
      org.puremvc.java.patterns.facade.Facade

All Implemented Interfaces:
  IFacade, INotifier

    public class Facade

extends java.lang.Object
implements IFacade

A base Singleton `IFacade` implementation.

See Also:
  `Model`, `View`, `Controller`

Field Summary
`protected Controller` | `controller` Reference to the Controller
`protected static Facade` | `instance` The Singleton instance of the Facade
`protected Model` | `model` Reference to the Model
`protected View` | `view` Reference to the View

Constructor Summary
`protected` | `Facade()` Constructor.

Method Summary
`static Facade` | `getInstance()` Facade Singleton Factory method
`boolean` | `hasCommand(java.lang.String notificationName)` Check if a Command is registered for a given Notification
`boolean` | `hasMediator(java.lang.String mediatorName)` Check if a Mediator is registered or not
`boolean` | `hasProxy(java.lang.String proxyName)` Check if a Proxy is registered
`protected void` | `initializeController()` Initialize the `Controller`.
`protected void` | `initializeFacade()` Initialize the Multiton `Facade` instance.
`protected void` | `initializeModel()` Initialize the `Model`.
`protected void` | `initializeView()` Initialize the `View`.
`void` | `notifyObservers(INotification note)` Notify `Observer`s of an `INotification`.
`void` | `registerCommand(java.lang.String noteName, ICommand command)` Register an `ICommand` with the `Controller` by Notification name.
`void` | `registerMediator(IMediator mediator)` Register a `IMediator` with the `View`.
`void` | `registerProxy(IProxy proxy)` Register an `IProxy` with the `Model` by name.
`void` | `removeCommand(java.lang.String notificationName)` Remove a previously registered `ICommand` to `INotification` mapping from the Controller.
`IMediator` | `removeMediator(java.lang.String mediatorName)` Remove an `IMediator` from the `View`.
`IProxy` | `removeProxy(java.lang.String proxyName)` Remove an `IProxy` from the `Model` by name.
`IMediator` | `retrieveMediator(java.lang.String mediatorName)` Retrieve an `IMediator` from the `View`.
`IProxy` | `retrieveProxy(java.lang.String proxyName)` Retrieve an `IProxy` from the `Model` by name.
`void` | `sendNotification(java.lang.String notificationName)` Create and send an `INotification`.
`void` | `sendNotification(java.lang.String notificationName, java.lang.Object body)` Create and send an `INotification`.
`void` | `sendNotification(java.lang.String notificationName, java.lang.Object body, java.lang.String type)` Create and send an `INotification`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### instance

    protected static Facade instance

  The Singleton instance of the Facade

### controller

    protected Controller controller

  Reference to the Controller

### model

    protected Model model

  Reference to the Model

### view

    protected View view

  Reference to the View

Constructor Detail

### Facade

    protected Facade()

  Constructor.

  This `IFacade` implementation is a Singleton, so you should not call the constructor directly, but instead call the static Singleton Factory method `Facade.getInstance()`

Method Detail

### initializeFacade

    protected void initializeFacade()

  Initialize the Multiton `Facade` instance.

  Called automatically by the constructor. Override in your subclass to do any subclass specific initializations. Be sure to call `super.initializeFacade()`, though.

### getInstance

    public static Facade getInstance()

  Facade Singleton Factory method

  Returns:
    The Singleton instance of the Facade

### initializeController

    protected void initializeController()

  Initialize the `Controller`.

  Called by the `initializeFacade` method. Override this method in your subclass of `Facade` if one or both of the following are true:

  - You wish to initialize a different `IController`.
  - You have `Commands` to register with the `Controller` at startup..
  If you don't want to initialize a different `IController`, call `super.initializeController()` at the beginning of your method, then register `Command`s.

### initializeModel

    protected void initializeModel()

  Initialize the `Model`.

  Called by the `initializeFacade` method. Override this method in your subclass of `Facade` if one or both of the following are true:

  - You wish to initialize a different `IModel`.
  - You have `Proxy`s to register with the Model that do not retrieve a reference to the Facade at construction time.
  If you don't want to initialize a different `IModel`, call `super.initializeModel()` at the beginning of your method, then register `Proxy`s.

  Note: This method is rarely overridden; in practice you are more likely to use a `Command` to create and register `Proxy`s with the `Model`, since `Proxy`s with mutable data will likely need to send `INotification`s and thus will likely want to fetch a reference to the `Facade` during their construction.

### initializeView

    protected void initializeView()

  Initialize the `View`.

  Called by the `initializeFacade` method. Override this method in your subclass of `Facade` if one or both of the following are true:

  - You wish to initialize a different `IView`.
  - You have `Observers` to register with the `View`
  If you don't want to initialize a different `IView`, call `super.initializeView()` at the beginning of your method, then register `IMediator` instances.

  Note: This method is rarely overridden; in practice you are more likely to use a `Command` to create and register `Mediator`s with the `View`, since `IMediator` instances will need to send `INotification`s and thus will likely want to fetch a reference to the `Facade` during their construction.

### registerCommand

    public void registerCommand(java.lang.String noteName,
                                ICommand command)

  Register an `ICommand` with the `Controller` by Notification name.

  Specified by:
    `registerCommand` in interface `IFacade`
  Parameters:
    `noteName` - the name of the `INotification` to associate the `ICommand` with
    `command` - an instance of the `ICommand`

### removeCommand

    public void removeCommand(java.lang.String notificationName)

  Remove a previously registered `ICommand` to `INotification` mapping from the Controller.

  Specified by:
    `removeCommand` in interface `IFacade`
  Parameters:
    `notificationName` - the name of the `INotification` to remove the `ICommand` mapping for

### hasCommand

    public boolean hasCommand(java.lang.String notificationName)

  Check if a Command is registered for a given Notification

  Specified by:
    `hasCommand` in interface `IFacade`
  Parameters:
    `notificationName` -
  Returns:
    whether a Command is currently registered for the given `notificationName`.

### registerMediator

    public void registerMediator(IMediator mediator)

  Register a `IMediator` with the `View`.

  Specified by:
    `registerMediator` in interface `IFacade`
  Parameters:
    `mediator` - the name to associate with this `IMediator`

### registerProxy

    public void registerProxy(IProxy proxy)

  Register an `IProxy` with the `Model` by name.

  Specified by:
    `registerProxy` in interface `IFacade`
  Parameters:
    `proxy` - the name of the `IProxy` instance to be registered with the `Model`.

### removeMediator

    public IMediator removeMediator(java.lang.String mediatorName)

  Remove an `IMediator` from the `View`.

  Specified by:
    `removeMediator` in interface `IFacade`
  Parameters:
    `mediatorName` - name of the `IMediator` to be removed.
  Returns:
    the `IMediator` that was removed from the `View`

### removeProxy

    public IProxy removeProxy(java.lang.String proxyName)

  Remove an `IProxy` from the `Model` by name.

  Specified by:
    `removeProxy` in interface `IFacade`
  Parameters:
    `proxyName` - the `IProxy` to remove from the `Model`.
  Returns:
    the `IProxy` that was removed from the `Model`

### hasProxy

    public boolean hasProxy(java.lang.String proxyName)

  Check if a Proxy is registered

  Specified by:
    `hasProxy` in interface `IFacade`
  Parameters:
    `proxyName` -
  Returns:
    whether a Proxy is currently registered with the given `proxyName`.

### hasMediator

    public boolean hasMediator(java.lang.String mediatorName)

  Check if a Mediator is registered or not

  Specified by:
    `hasMediator` in interface `IFacade`
  Parameters:
    `mediatorName` -
  Returns:
    whether a Mediator is registered with the given `mediatorName`.

### retrieveMediator

    public IMediator retrieveMediator(java.lang.String mediatorName)

  Retrieve an `IMediator` from the `View`.

  Specified by:
    `retrieveMediator` in interface `IFacade`
  Parameters:
    `mediatorName` -
  Returns:
    the `IMediator` previously registered with the given `mediatorName`.

### retrieveProxy

    public IProxy retrieveProxy(java.lang.String proxyName)

  Retrieve an `IProxy` from the `Model` by name.

  Specified by:
    `retrieveProxy` in interface `IFacade`
  Parameters:
    `proxyName` - the name of the proxy to be retrieved.
  Returns:
    the `IProxy` instance previously registered with the given `proxyName`.

### sendNotification

    public void sendNotification(java.lang.String notificationName,
                                 java.lang.Object body,
                                 java.lang.String type)

  Create and send an `INotification`.

  Keeps us from having to construct new notification instances in our implementation code.

  Specified by:
    `sendNotification` in interface `INotifier`
  Parameters:
    `notificationName` - the name of the notification to send
    `body` - the body of the notification (optional)
    `type` - the type of the notification (optional)

### sendNotification

    public void sendNotification(java.lang.String notificationName,
                                 java.lang.Object body)

  Create and send an `INotification`.

  Keeps us from having to construct new notification instances in our implementation code.

  Specified by:
    `sendNotification` in interface `INotifier`
  Parameters:
    `notificationName` - the name of the notification to send
    `body` - the body of the notification (optional)

### sendNotification

    public void sendNotification(java.lang.String notificationName)

  Create and send an `INotification`.

  Keeps us from having to construct new notification instances in our implementation code.

  Specified by:
    `sendNotification` in interface `INotifier`
  Parameters:
    `notificationName` - the name of the notification to send

### notifyObservers

    public void notifyObservers(INotification note)

  Notify `Observer`s of an `INotification`.

  Specified by:
    `notifyObservers` in interface `IFacade`
  Parameters:
    `note` - the `INotification` to have the `View` notify observers of.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD