puremvc-as3 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. data/2.0.4/asdoc/all-classes.html +81 -0
  2. data/2.0.4/asdoc/all-index-A.html +59 -0
  3. data/2.0.4/asdoc/all-index-B.html +52 -0
  4. data/2.0.4/asdoc/all-index-C.html +92 -0
  5. data/2.0.4/asdoc/all-index-D.html +58 -0
  6. data/2.0.4/asdoc/all-index-E.html +89 -0
  7. data/2.0.4/asdoc/all-index-F.html +72 -0
  8. data/2.0.4/asdoc/all-index-G.html +190 -0
  9. data/2.0.4/asdoc/all-index-H.html +174 -0
  10. data/2.0.4/asdoc/all-index-I.html +202 -0
  11. data/2.0.4/asdoc/all-index-J.html +52 -0
  12. data/2.0.4/asdoc/all-index-K.html +52 -0
  13. data/2.0.4/asdoc/all-index-L.html +67 -0
  14. data/2.0.4/asdoc/all-index-M.html +112 -0
  15. data/2.0.4/asdoc/all-index-N.html +128 -0
  16. data/2.0.4/asdoc/all-index-O.html +178 -0
  17. data/2.0.4/asdoc/all-index-P.html +79 -0
  18. data/2.0.4/asdoc/all-index-Q.html +52 -0
  19. data/2.0.4/asdoc/all-index-R.html +308 -0
  20. data/2.0.4/asdoc/all-index-S.html +193 -0
  21. data/2.0.4/asdoc/all-index-T.html +67 -0
  22. data/2.0.4/asdoc/all-index-U.html +52 -0
  23. data/2.0.4/asdoc/all-index-V.html +84 -0
  24. data/2.0.4/asdoc/all-index-W.html +52 -0
  25. data/2.0.4/asdoc/all-index-X.html +52 -0
  26. data/2.0.4/asdoc/all-index-Y.html +52 -0
  27. data/2.0.4/asdoc/all-index-Z.html +52 -0
  28. data/2.0.4/asdoc/appendixes.html +47 -0
  29. data/2.0.4/asdoc/asdoc.js +273 -0
  30. data/2.0.4/asdoc/class-summary.html +174 -0
  31. data/2.0.4/asdoc/cookies.js +84 -0
  32. data/2.0.4/asdoc/images/collapsed.gif +0 -0
  33. data/2.0.4/asdoc/images/detailHeaderRule.jpg +0 -0
  34. data/2.0.4/asdoc/images/detailSectionHeader.jpg +0 -0
  35. data/2.0.4/asdoc/images/expanded.gif +0 -0
  36. data/2.0.4/asdoc/images/inherit-arrow.gif +0 -0
  37. data/2.0.4/asdoc/images/inheritedSummary.gif +0 -0
  38. data/2.0.4/asdoc/images/logo.jpg +0 -0
  39. data/2.0.4/asdoc/images/titleTableBottom.jpg +0 -0
  40. data/2.0.4/asdoc/images/titleTableMiddle.jpg +0 -0
  41. data/2.0.4/asdoc/images/titleTableTop.jpg +0 -0
  42. data/2.0.4/asdoc/index-list.html +121 -0
  43. data/2.0.4/asdoc/index.html +63 -0
  44. data/2.0.4/asdoc/mxml-tags.html +45 -0
  45. data/2.0.4/asdoc/org/puremvc/as3/core/Controller.html +433 -0
  46. data/2.0.4/asdoc/org/puremvc/as3/core/Model.html +405 -0
  47. data/2.0.4/asdoc/org/puremvc/as3/core/View.html +524 -0
  48. data/2.0.4/asdoc/org/puremvc/as3/core/class-list.html +30 -0
  49. data/2.0.4/asdoc/org/puremvc/as3/core/package-detail.html +65 -0
  50. data/2.0.4/asdoc/org/puremvc/as3/interfaces/ICommand.html +110 -0
  51. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IController.html +226 -0
  52. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IFacade.html +520 -0
  53. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IMediator.html +345 -0
  54. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IModel.html +226 -0
  55. data/2.0.4/asdoc/org/puremvc/as3/interfaces/INotification.html +269 -0
  56. data/2.0.4/asdoc/org/puremvc/as3/interfaces/INotifier.html +151 -0
  57. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IObserver.html +234 -0
  58. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IProxy.html +217 -0
  59. data/2.0.4/asdoc/org/puremvc/as3/interfaces/IView.html +350 -0
  60. data/2.0.4/asdoc/org/puremvc/as3/interfaces/class-list.html +54 -0
  61. data/2.0.4/asdoc/org/puremvc/as3/interfaces/package-detail.html +93 -0
  62. data/2.0.4/asdoc/org/puremvc/as3/patterns/command/MacroCommand.html +284 -0
  63. data/2.0.4/asdoc/org/puremvc/as3/patterns/command/SimpleCommand.html +164 -0
  64. data/2.0.4/asdoc/org/puremvc/as3/patterns/command/class-list.html +27 -0
  65. data/2.0.4/asdoc/org/puremvc/as3/patterns/command/package-detail.html +61 -0
  66. data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/Facade.html +940 -0
  67. data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/class-list.html +24 -0
  68. data/2.0.4/asdoc/org/puremvc/as3/patterns/facade/package-detail.html +57 -0
  69. data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/Mediator.html +402 -0
  70. data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/class-list.html +24 -0
  71. data/2.0.4/asdoc/org/puremvc/as3/patterns/mediator/package-detail.html +57 -0
  72. data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Notification.html +312 -0
  73. data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Notifier.html +180 -0
  74. data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/Observer.html +253 -0
  75. data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/class-list.html +30 -0
  76. data/2.0.4/asdoc/org/puremvc/as3/patterns/observer/package-detail.html +65 -0
  77. data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/Proxy.html +338 -0
  78. data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/class-list.html +24 -0
  79. data/2.0.4/asdoc/org/puremvc/as3/patterns/proxy/package-detail.html +57 -0
  80. data/2.0.4/asdoc/package-frame.html +36 -0
  81. data/2.0.4/asdoc/package-list.html +52 -0
  82. data/2.0.4/asdoc/package-summary.html +68 -0
  83. data/2.0.4/asdoc/print.css +110 -0
  84. data/2.0.4/asdoc/style.css +565 -0
  85. data/2.0.4/asdoc/title-bar.html +55 -0
  86. data/2.0.4/bin/PureMVC_AS3_2_0_4.swc +0 -0
  87. data/2.0.4/license.txt +61 -0
  88. data/2.0.4/src/org/puremvc/as3/core/Controller.as +183 -0
  89. data/2.0.4/src/org/puremvc/as3/core/Model.as +144 -0
  90. data/2.0.4/src/org/puremvc/as3/core/View.as +271 -0
  91. data/2.0.4/src/org/puremvc/as3/interfaces/ICommand.as +21 -0
  92. data/2.0.4/src/org/puremvc/as3/interfaces/IController.as +64 -0
  93. data/2.0.4/src/org/puremvc/as3/interfaces/IFacade.as +131 -0
  94. data/2.0.4/src/org/puremvc/as3/interfaces/IMediator.as +150 -0
  95. data/2.0.4/src/org/puremvc/as3/interfaces/IModel.as +57 -0
  96. data/2.0.4/src/org/puremvc/as3/interfaces/INotification.as +76 -0
  97. data/2.0.4/src/org/puremvc/as3/interfaces/INotifier.as +46 -0
  98. data/2.0.4/src/org/puremvc/as3/interfaces/IObserver.as +81 -0
  99. data/2.0.4/src/org/puremvc/as3/interfaces/IProxy.as +61 -0
  100. data/2.0.4/src/org/puremvc/as3/interfaces/IView.as +106 -0
  101. data/2.0.4/src/org/puremvc/as3/patterns/command/MacroCommand.as +121 -0
  102. data/2.0.4/src/org/puremvc/as3/patterns/command/SimpleCommand.as +42 -0
  103. data/2.0.4/src/org/puremvc/as3/patterns/facade/Facade.as +419 -0
  104. data/2.0.4/src/org/puremvc/as3/patterns/mediator/Mediator.as +115 -0
  105. data/2.0.4/src/org/puremvc/as3/patterns/observer/Notification.as +128 -0
  106. data/2.0.4/src/org/puremvc/as3/patterns/observer/Notifier.as +55 -0
  107. data/2.0.4/src/org/puremvc/as3/patterns/observer/Observer.as +114 -0
  108. data/2.0.4/src/org/puremvc/as3/patterns/proxy/Proxy.as +88 -0
  109. data/2.0.4/src/puremvc-manifest.xml +20 -0
  110. data/2.0.4/version.txt +117 -0
  111. data/Gemfile +4 -0
  112. data/README.textile +107 -0
  113. data/Rakefile +24 -0
  114. data/lib/puremvc-as3.rb +29 -0
  115. data/lib/rake/rename.rb +34 -0
  116. metadata +198 -0
@@ -0,0 +1,21 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+ /**
8
+ * The interface definition for a PureMVC Command.
9
+ *
10
+ * @see org.puremvc.as3.interfaces INotification
11
+ */
12
+ public interface ICommand
13
+ {
14
+ /**
15
+ * Execute the <code>ICommand</code>'s logic to handle a given <code>INotification</code>.
16
+ *
17
+ * @param note an <code>INotification</code> to handle.
18
+ */
19
+ function execute( notification:INotification ) : void;
20
+ }
21
+ }
@@ -0,0 +1,64 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+ /**
8
+ * The interface definition for a PureMVC Controller.
9
+ *
10
+ * <P>
11
+ * In PureMVC, an <code>IController</code> implementor
12
+ * follows the 'Command and Controller' strategy, and
13
+ * assumes these responsibilities:
14
+ * <UL>
15
+ * <LI> Remembering which <code>ICommand</code>s
16
+ * are intended to handle which <code>INotifications</code>.</LI>
17
+ * <LI> Registering itself as an <code>IObserver</code> with
18
+ * the <code>View</code> for each <code>INotification</code>
19
+ * that it has an <code>ICommand</code> mapping for.</LI>
20
+ * <LI> Creating a new instance of the proper <code>ICommand</code>
21
+ * to handle a given <code>INotification</code> when notified by the <code>View</code>.</LI>
22
+ * <LI> Calling the <code>ICommand</code>'s <code>execute</code>
23
+ * method, passing in the <code>INotification</code>.</LI>
24
+ * </UL>
25
+ *
26
+ * @see org.puremvc.as3.interfaces INotification
27
+ * @see org.puremvc.as3.interfaces ICommand
28
+ */
29
+ public interface IController
30
+ {
31
+
32
+ /**
33
+ * Register a particular <code>ICommand</code> class as the handler
34
+ * for a particular <code>INotification</code>.
35
+ *
36
+ * @param notificationName the name of the <code>INotification</code>
37
+ * @param commandClassRef the Class of the <code>ICommand</code>
38
+ */
39
+ function registerCommand( notificationName : String, commandClassRef : Class ) : void;
40
+
41
+ /**
42
+ * Execute the <code>ICommand</code> previously registered as the
43
+ * handler for <code>INotification</code>s with the given notification name.
44
+ *
45
+ * @param notification the <code>INotification</code> to execute the associated <code>ICommand</code> for
46
+ */
47
+ function executeCommand( notification : INotification ) : void;
48
+
49
+ /**
50
+ * Remove a previously registered <code>ICommand</code> to <code>INotification</code> mapping.
51
+ *
52
+ * @param notificationName the name of the <code>INotification</code> to remove the <code>ICommand</code> mapping for
53
+ */
54
+ function removeCommand( notificationName : String ):void;
55
+
56
+ /**
57
+ * Check if a Command is registered for a given Notification
58
+ *
59
+ * @param notificationName
60
+ * @return whether a Command is currently registered for the given <code>notificationName</code>.
61
+ */
62
+ function hasCommand( notificationName:String ) : Boolean;
63
+ }
64
+ }
@@ -0,0 +1,131 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+
8
+ /**
9
+ * The interface definition for a PureMVC Facade.
10
+ *
11
+ * <P>
12
+ * The Facade Pattern suggests providing a single
13
+ * class to act as a central point of communication
14
+ * for a subsystem. </P>
15
+ *
16
+ * <P>
17
+ * In PureMVC, the Facade acts as an interface between
18
+ * the core MVC actors (Model, View, Controller) and
19
+ * the rest of your application.</P>
20
+ *
21
+ * @see org.puremvc.as3.interfaces.IModel IModel
22
+ * @see org.puremvc.as3.interfaces.IView IView
23
+ * @see org.puremvc.as3.interfaces.IController IController
24
+ * @see org.puremvc.as3.interfaces.ICommand ICommand
25
+ * @see org.puremvc.as3.interfaces.INotification INotification
26
+ */
27
+ public interface IFacade extends INotifier
28
+ {
29
+
30
+ /**
31
+ * Register an <code>IProxy</code> with the <code>Model</code> by name.
32
+ *
33
+ * @param proxy the <code>IProxy</code> to be registered with the <code>Model</code>.
34
+ */
35
+ function registerProxy( proxy:IProxy ) : void;
36
+
37
+ /**
38
+ * Retrieve a <code>IProxy</code> from the <code>Model</code> by name.
39
+ *
40
+ * @param proxyName the name of the <code>IProxy</code> instance to be retrieved.
41
+ * @return the <code>IProxy</code> previously regisetered by <code>proxyName</code> with the <code>Model</code>.
42
+ */
43
+ function retrieveProxy( proxyName:String ) : IProxy;
44
+
45
+ /**
46
+ * Remove an <code>IProxy</code> instance from the <code>Model</code> by name.
47
+ *
48
+ * @param proxyName the <code>IProxy</code> to remove from the <code>Model</code>.
49
+ * @return the <code>IProxy</code> that was removed from the <code>Model</code>
50
+ */
51
+ function removeProxy( proxyName:String ) : IProxy;
52
+
53
+ /**
54
+ * Check if a Proxy is registered
55
+ *
56
+ * @param proxyName
57
+ * @return whether a Proxy is currently registered with the given <code>proxyName</code>.
58
+ */
59
+ function hasProxy( proxyName:String ) : Boolean;
60
+
61
+ /**
62
+ * Register an <code>ICommand</code> with the <code>Controller</code>.
63
+ *
64
+ * @param noteName the name of the <code>INotification</code> to associate the <code>ICommand</code> with.
65
+ * @param commandClassRef a reference to the <code>Class</code> of the <code>ICommand</code>.
66
+ */
67
+ function registerCommand( noteName : String, commandClassRef : Class ) : void;
68
+
69
+ /**
70
+ * Remove a previously registered <code>ICommand</code> to <code>INotification</code> mapping from the Controller.
71
+ *
72
+ * @param notificationName the name of the <code>INotification</code> to remove the <code>ICommand</code> mapping for
73
+ */
74
+ function removeCommand( notificationName:String ): void;
75
+
76
+ /**
77
+ * Check if a Command is registered for a given Notification
78
+ *
79
+ * @param notificationName
80
+ * @return whether a Command is currently registered for the given <code>notificationName</code>.
81
+ */
82
+ function hasCommand( notificationName:String ) : Boolean;
83
+
84
+ /**
85
+ * Register an <code>IMediator</code> instance with the <code>View</code>.
86
+ *
87
+ * @param mediator a reference to the <code>IMediator</code> instance
88
+ */
89
+ function registerMediator( mediator:IMediator ) : void;
90
+
91
+ /**
92
+ * Retrieve an <code>IMediator</code> instance from the <code>View</code>.
93
+ *
94
+ * @param mediatorName the name of the <code>IMediator</code> instance to retrievve
95
+ * @return the <code>IMediator</code> previously registered with the given <code>mediatorName</code>.
96
+ */
97
+ function retrieveMediator( mediatorName:String ) : IMediator;
98
+
99
+ /**
100
+ * Remove a <code>IMediator</code> instance from the <code>View</code>.
101
+ *
102
+ * @param mediatorName name of the <code>IMediator</code> instance to be removed.
103
+ * @return the <code>IMediator</code> instance previously registered with the given <code>mediatorName</code>.
104
+ */
105
+ function removeMediator( mediatorName:String ) : IMediator;
106
+
107
+ /**
108
+ * Check if a Mediator is registered or not
109
+ *
110
+ * @param mediatorName
111
+ * @return whether a Mediator is registered with the given <code>mediatorName</code>.
112
+ */
113
+ function hasMediator( mediatorName:String ) : Boolean;
114
+
115
+ /**
116
+ * Notify the <code>IObservers</code> for a particular <code>INotification</code>.
117
+ *
118
+ * <P>
119
+ * All previously attached <code>IObservers</code> for this <code>INotification</code>'s
120
+ * list are notified and are passed a reference to the <code>INotification</code> in
121
+ * the order in which they were registered.</P>
122
+ * <P>
123
+ * NOTE: Use this method only if you are sending custom Notifications. Otherwise
124
+ * use the sendNotification method which does not require you to create the
125
+ * Notification instance.</P>
126
+ *
127
+ * @param notification the <code>INotification</code> to notify <code>IObservers</code> of.
128
+ */
129
+ function notifyObservers( note:INotification ) : void;
130
+ }
131
+ }
@@ -0,0 +1,150 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+
8
+ /**
9
+ * The interface definition for a PureMVC Mediator.
10
+ *
11
+ * <P>
12
+ * In PureMVC, <code>IMediator</code> implementors assume these responsibilities:</P>
13
+ * <UL>
14
+ * <LI>Implement a common method which returns a list of all <code>INotification</code>s
15
+ * the <code>IMediator</code> has interest in.</LI>
16
+ * <LI>Implement a notification callback method.</LI>
17
+ * <LI>Implement methods that are called when the IMediator is registered or removed from the View.</LI>
18
+ * </UL>
19
+ * <P>
20
+ * Additionally, <code>IMediator</code>s typically:
21
+ * <UL>
22
+ * <LI>Act as an intermediary between one or more view components such as text boxes or
23
+ * list controls, maintaining references and coordinating their behavior.</LI>
24
+ * <LI>In Flash-based apps, this is often the place where event listeners are
25
+ * added to view components, and their handlers implemented.</LI>
26
+ * <LI>Respond to and generate <code>INotifications</code>, interacting with of
27
+ * the rest of the PureMVC app.
28
+ * </UL></P>
29
+ * <P>
30
+ * When an <code>IMediator</code> is registered with the <code>IView</code>,
31
+ * the <code>IView</code> will call the <code>IMediator</code>'s
32
+ * <code>listNotificationInterests</code> method. The <code>IMediator</code> will
33
+ * return an <code>Array</code> of <code>INotification</code> names which
34
+ * it wishes to be notified about.</P>
35
+ *
36
+ * <P>
37
+ * The <code>IView</code> will then create an <code>Observer</code> object
38
+ * encapsulating that <code>IMediator</code>'s (<code>handleNotification</code>) method
39
+ * and register it as an Observer for each <code>INotification</code> name returned by
40
+ * <code>listNotificationInterests</code>.</P>
41
+ *
42
+ * <P>
43
+ * A concrete IMediator implementor usually looks something like this:</P>
44
+ *
45
+ * <listing>
46
+ * import org.puremvc.as3.patterns.mediator.~~;
47
+ * import org.puremvc.as3.patterns.observer.~~;
48
+ * import org.puremvc.as3.core.view.~~;
49
+ *
50
+ * import com.me.myapp.model.~~;
51
+ * import com.me.myapp.view.~~;
52
+ * import com.me.myapp.controller.~~;
53
+ *
54
+ * import mx.controls.ComboBox;
55
+ * import mx.events.ListEvent;
56
+ *
57
+ * public class MyMediator extends Mediator implements IMediator {
58
+ *
59
+ * public function MyComboMediator( viewComponent:Object ) {
60
+ * super( viewComponent );
61
+ * combo.addEventListener( Event.CHANGE, onChange );
62
+ * }
63
+ *
64
+ * override public function listNotificationInterests():Array {
65
+ * return [ MyFacade.SET_SELECTION,
66
+ * MyFacade.SET_DATAPROVIDER ];
67
+ * }
68
+ *
69
+ * override public function handleNotification( notification:INotification ):void {
70
+ * switch ( notification.getName() ) {
71
+ * case MyFacade.SET_SELECTION:
72
+ * setSelection(notification);
73
+ * break;
74
+ * case MyFacade.SET_DATAPROVIDER:
75
+ * setDataProvider(notification);
76
+ * break;
77
+ * }
78
+ * }
79
+ *
80
+ * // Set the data provider of the combo box
81
+ * protected function setDataProvider( notification:INotification ):void {
82
+ * combo.dataProvider = notification.getBody() as Array;
83
+ * }
84
+ *
85
+ * // Invoked when the combo box dispatches a change event, we send a
86
+ * // notification with the
87
+ * protected function onChange(event:ListEvent):void {
88
+ * sendNotification( MyFacade.MYCOMBO_CHANGED, this );
89
+ * }
90
+ *
91
+ * // A private getter for accessing the view object by class
92
+ * protected function get combo():ComboBox {
93
+ * return view as ComboBox;
94
+ * }
95
+ *
96
+ * }
97
+ * </listing>
98
+ *
99
+ * @see org.puremvc.as3.interfaces.INotification INotification
100
+ */
101
+ public interface IMediator
102
+ {
103
+
104
+ /**
105
+ * Get the <code>IMediator</code> instance name
106
+ *
107
+ * @return the <code>IMediator</code> instance name
108
+ */
109
+ function getMediatorName():String;
110
+
111
+ /**
112
+ * Get the <code>IMediator</code>'s view component.
113
+ *
114
+ * @return Object the view component
115
+ */
116
+ function getViewComponent():Object;
117
+
118
+ /**
119
+ * Set the <code>IMediator</code>'s view component.
120
+ *
121
+ * @param Object the view component
122
+ */
123
+ function setViewComponent( viewComponent:Object ):void;
124
+
125
+ /**
126
+ * List <code>INotification</code> interests.
127
+ *
128
+ * @return an <code>Array</code> of the <code>INotification</code> names this <code>IMediator</code> has an interest in.
129
+ */
130
+ function listNotificationInterests( ):Array;
131
+
132
+ /**
133
+ * Handle an <code>INotification</code>.
134
+ *
135
+ * @param notification the <code>INotification</code> to be handled
136
+ */
137
+ function handleNotification( notification:INotification ):void;
138
+
139
+ /**
140
+ * Called by the View when the Mediator is registered
141
+ */
142
+ function onRegister( ):void;
143
+
144
+ /**
145
+ * Called by the View when the Mediator is removed
146
+ */
147
+ function onRemove( ):void;
148
+
149
+ }
150
+ }
@@ -0,0 +1,57 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+ /**
8
+ * The interface definition for a PureMVC Model.
9
+ *
10
+ * <P>
11
+ * In PureMVC, <code>IModel</code> implementors provide
12
+ * access to <code>IProxy</code> objects by named lookup. </P>
13
+ *
14
+ * <P>
15
+ * An <code>IModel</code> assumes these responsibilities:</P>
16
+ *
17
+ * <UL>
18
+ * <LI>Maintain a cache of <code>IProxy</code> instances</LI>
19
+ * <LI>Provide methods for registering, retrieving, and removing <code>IProxy</code> instances</LI>
20
+ * </UL>
21
+ */
22
+ public interface IModel
23
+ {
24
+ /**
25
+ * Register an <code>IProxy</code> instance with the <code>Model</code>.
26
+ *
27
+ * @param proxyName the name to associate with this <code>IProxy</code> instance.
28
+ * @param proxy an object reference to be held by the <code>Model</code>.
29
+ */
30
+ function registerProxy( proxy:IProxy ) : void;
31
+
32
+ /**
33
+ * Retrieve an <code>IProxy</code> instance from the Model.
34
+ *
35
+ * @param proxyName
36
+ * @return the <code>IProxy</code> instance previously registered with the given <code>proxyName</code>.
37
+ */
38
+ function retrieveProxy( proxyName:String ) : IProxy;
39
+
40
+ /**
41
+ * Remove an <code>IProxy</code> instance from the Model.
42
+ *
43
+ * @param proxyName name of the <code>IProxy</code> instance to be removed.
44
+ * @return the <code>IProxy</code> that was removed from the <code>Model</code>
45
+ */
46
+ function removeProxy( proxyName:String ) : IProxy;
47
+
48
+ /**
49
+ * Check if a Proxy is registered
50
+ *
51
+ * @param proxyName
52
+ * @return whether a Proxy is currently registered with the given <code>proxyName</code>.
53
+ */
54
+ function hasProxy( proxyName:String ) : Boolean;
55
+
56
+ }
57
+ }
@@ -0,0 +1,76 @@
1
+ /*
2
+ PureMVC - Copyright(c) 2006-08 Futurescale, Inc., Some rights reserved.
3
+ Your reuse is governed by the Creative Commons Attribution 3.0 United States License
4
+ */
5
+ package org.puremvc.as3.interfaces
6
+ {
7
+ /**
8
+ * The interface definition for a PureMVC Notification.
9
+ *
10
+ * <P>
11
+ * PureMVC does not rely upon underlying event models such
12
+ * as the one provided with Flash, and ActionScript 3 does
13
+ * not have an inherent event model.</P>
14
+ *
15
+ * <P>
16
+ * The Observer Pattern as implemented within PureMVC exists
17
+ * to support event-driven communication between the
18
+ * application and the actors of the MVC triad.</P>
19
+ *
20
+ * <P>
21
+ * Notifications are not meant to be a replacement for Events
22
+ * in Flex/Flash/AIR. Generally, <code>IMediator</code> implementors
23
+ * place event listeners on their view components, which they
24
+ * then handle in the usual way. This may lead to the broadcast of <code>Notification</code>s to
25
+ * trigger <code>ICommand</code>s or to communicate with other <code>IMediators</code>. <code>IProxy</code> and <code>ICommand</code>
26
+ * instances communicate with each other and <code>IMediator</code>s
27
+ * by broadcasting <code>INotification</code>s.</P>
28
+ *
29
+ * <P>
30
+ * A key difference between Flash <code>Event</code>s and PureMVC
31
+ * <code>Notification</code>s is that <code>Event</code>s follow the
32
+ * 'Chain of Responsibility' pattern, 'bubbling' up the display hierarchy
33
+ * until some parent component handles the <code>Event</code>, while
34
+ * PureMVC <code>Notification</code>s follow a 'Publish/Subscribe'
35
+ * pattern. PureMVC classes need not be related to each other in a
36
+ * parent/child relationship in order to communicate with one another
37
+ * using <code>Notification</code>s.
38
+ *
39
+ * @see org.puremvc.as3.interfaces.IView IView
40
+ * @see org.puremvc.as3.interfaces.IObserver IObserver
41
+ */
42
+ public interface INotification
43
+ {
44
+
45
+ /**
46
+ * Get the name of the <code>INotification</code> instance.
47
+ * No setter, should be set by constructor only
48
+ */
49
+ function getName():String;
50
+
51
+ /**
52
+ * Set the body of the <code>INotification</code> instance
53
+ */
54
+ function setBody( body:Object ):void;
55
+
56
+ /**
57
+ * Get the body of the <code>INotification</code> instance
58
+ */
59
+ function getBody():Object;
60
+
61
+ /**
62
+ * Set the type of the <code>INotification</code> instance
63
+ */
64
+ function setType( type:String ):void;
65
+
66
+ /**
67
+ * Get the type of the <code>INotification</code> instance
68
+ */
69
+ function getType():String;
70
+
71
+ /**
72
+ * Get the string representation of the <code>INotification</code> instance
73
+ */
74
+ function toString():String;
75
+ }
76
+ }