appjam 0.1.0.pre4

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 (83) hide show
  1. data/LICENSE.txt +20 -0
  2. data/README.rdoc +27 -0
  3. data/bin/appjam +17 -0
  4. data/lib/appjam.rb +50 -0
  5. data/lib/appjam/generators/Classes/ContactsAppDelegate.h.tt +18 -0
  6. data/lib/appjam/generators/Classes/ContactsAppDelegate.m.tt +88 -0
  7. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/Controller.h +54 -0
  8. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/Controller.m +145 -0
  9. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/Model.h +47 -0
  10. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/Model.m +117 -0
  11. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/View.h +39 -0
  12. data/lib/appjam/generators/Classes/org/puremvc/objectivec/core/View.m +207 -0
  13. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/ICommand.h +16 -0
  14. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IController.h +57 -0
  15. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IFacade.h +135 -0
  16. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IMediator.h +84 -0
  17. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IModel.h +50 -0
  18. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/INotification.h +57 -0
  19. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/INotifier.h +41 -0
  20. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IObserver.h +67 -0
  21. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IProxy.h +53 -0
  22. data/lib/appjam/generators/Classes/org/puremvc/objectivec/interfaces/IView.h +96 -0
  23. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/command/MacroCommand.h +50 -0
  24. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/command/MacroCommand.m +101 -0
  25. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/command/SimpleCommand.h +28 -0
  26. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/command/SimpleCommand.m +34 -0
  27. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/facade/Facade.h +52 -0
  28. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/facade/Facade.m +304 -0
  29. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/mediator/Mediator.h +35 -0
  30. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/mediator/Mediator.m +101 -0
  31. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Notification.h +52 -0
  32. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Notification.m +71 -0
  33. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Notifier.h +40 -0
  34. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Notifier.m +54 -0
  35. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Observer.h +42 -0
  36. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/observer/Observer.m +67 -0
  37. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/proxy/Proxy.h +51 -0
  38. data/lib/appjam/generators/Classes/org/puremvc/objectivec/patterns/proxy/Proxy.m +73 -0
  39. data/lib/appjam/generators/Classes/users/ApplicationFacade.h.tt +31 -0
  40. data/lib/appjam/generators/Classes/users/ApplicationFacade.m.tt +33 -0
  41. data/lib/appjam/generators/Classes/users/controller/CreateUserCommand.h.tt +16 -0
  42. data/lib/appjam/generators/Classes/users/controller/CreateUserCommand.m.tt +27 -0
  43. data/lib/appjam/generators/Classes/users/controller/DeleteUserCommand.h.tt +16 -0
  44. data/lib/appjam/generators/Classes/users/controller/DeleteUserCommand.m.tt +21 -0
  45. data/lib/appjam/generators/Classes/users/controller/GetUsersCommand.h.tt +17 -0
  46. data/lib/appjam/generators/Classes/users/controller/GetUsersCommand.m.tt +21 -0
  47. data/lib/appjam/generators/Classes/users/controller/StartupCommand.h.tt +16 -0
  48. data/lib/appjam/generators/Classes/users/controller/StartupCommand.m.tt +29 -0
  49. data/lib/appjam/generators/Classes/users/controller/UpdateUserCommand.h.tt +16 -0
  50. data/lib/appjam/generators/Classes/users/controller/UpdateUserCommand.m.tt +27 -0
  51. data/lib/appjam/generators/Classes/users/model/UserProxy.h.tt +19 -0
  52. data/lib/appjam/generators/Classes/users/model/UserProxy.m.tt +59 -0
  53. data/lib/appjam/generators/Classes/users/model/vo/UserVO.h.tt +22 -0
  54. data/lib/appjam/generators/Classes/users/model/vo/UserVO.m.tt +47 -0
  55. data/lib/appjam/generators/Classes/users/view/ContactsMediator.h.tt +15 -0
  56. data/lib/appjam/generators/Classes/users/view/ContactsMediator.m.tt +43 -0
  57. data/lib/appjam/generators/Classes/users/view/UserFormMediator.h.tt +17 -0
  58. data/lib/appjam/generators/Classes/users/view/UserFormMediator.m.tt +57 -0
  59. data/lib/appjam/generators/Classes/users/view/UserListMediator.h.tt +17 -0
  60. data/lib/appjam/generators/Classes/users/view/UserListMediator.m.tt +59 -0
  61. data/lib/appjam/generators/Classes/users/view/components/Contacts.h.tt +27 -0
  62. data/lib/appjam/generators/Classes/users/view/components/Contacts.m.tt +46 -0
  63. data/lib/appjam/generators/Classes/users/view/components/UserForm.h.tt +37 -0
  64. data/lib/appjam/generators/Classes/users/view/components/UserForm.m.tt +118 -0
  65. data/lib/appjam/generators/Classes/users/view/components/UserList.h.tt +31 -0
  66. data/lib/appjam/generators/Classes/users/view/components/UserList.m.tt +77 -0
  67. data/lib/appjam/generators/Contacts-Info.plist.tt +28 -0
  68. data/lib/appjam/generators/Contacts.xcodeproj/eiffel.pbxuser +1671 -0
  69. data/lib/appjam/generators/Contacts.xcodeproj/eiffel.perspectivev3 +1638 -0
  70. data/lib/appjam/generators/Contacts.xcodeproj/project.pbxproj +574 -0
  71. data/lib/appjam/generators/Contacts_Prefix.pch.tt +8 -0
  72. data/lib/appjam/generators/app.rb +78 -0
  73. data/lib/appjam/generators/main.m.tt +17 -0
  74. data/lib/appjam/generators/utils/NSStringWhiteSpace.h +17 -0
  75. data/lib/appjam/generators/utils/NSStringWhiteSpace.m +31 -0
  76. data/lib/appjam/generators/utils/UIDevice.h +17 -0
  77. data/lib/appjam/generators/utils/UIDevice.m +83 -0
  78. data/lib/appjam/generators/utils/URLEncodeString.h +16 -0
  79. data/lib/appjam/generators/utils/URLEncodeString.m +29 -0
  80. data/lib/appjam/version.rb +10 -0
  81. data/spec/appjam_spec.rb +7 -0
  82. data/spec/spec_helper.rb +12 -0
  83. metadata +270 -0
@@ -0,0 +1,51 @@
1
+ //
2
+ // Proxy.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "IProxy.h"
11
+ #import "Notifier.h"
12
+
13
+ /**
14
+ * A base <code>IProxy</code> implementation.
15
+ *
16
+ * <P>
17
+ * In PureMVC, <code>Proxy</code> classes are used to manage parts of the
18
+ * application's data model. </P>
19
+ *
20
+ * <P>
21
+ * A <code>Proxy</code> might simply manage a reference to a local data object,
22
+ * in which case interacting with it might involve setting and
23
+ * getting of its data in synchronous fashion.</P>
24
+ *
25
+ * <P>
26
+ * <code>Proxy</code> classes are also used to encapsulate the application's
27
+ * interaction with remote services to save or retrieve data, in which case,
28
+ * we adopt an asyncronous idiom; setting data (or calling a method) on the
29
+ * <code>Proxy</code> and listening for a <code>Notification</code> to be sent
30
+ * when the <code>Proxy</code> has retrieved the data from the service. </P>
31
+ *
32
+ * @see Model
33
+ */
34
+ @interface Proxy : Notifier <IProxy> {
35
+ id data;
36
+ NSString *proxyName;
37
+ }
38
+
39
+ @property(nonatomic, retain) id data;
40
+ @property(nonatomic, retain) NSString *proxyName;
41
+
42
+ +(id)proxy;
43
+ +(id)withProxyName:(NSString *)proxyName;
44
+ +(id)withProxyName:(NSString *)proxyName data:(id)data;
45
+ +(id)withData:(id)data;
46
+ -(id)initWithProxyName:(NSString *)proxyName data:(id)data;
47
+ -(void)initializeProxy;
48
+
49
+ +(NSString *)NAME;
50
+
51
+ @end
@@ -0,0 +1,73 @@
1
+ //
2
+ // Proxy.m
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "Proxy.h"
10
+
11
+ @implementation Proxy
12
+
13
+ @synthesize data, proxyName;
14
+
15
+ +(id)proxy {
16
+ return [[[self alloc] initWithProxyName:nil data:nil] autorelease];
17
+ }
18
+
19
+ +(id)withProxyName:(NSString *)proxyName {
20
+ return [[[self alloc] initWithProxyName:proxyName data:nil] autorelease];
21
+ }
22
+
23
+ +(id)withProxyName:(NSString *)proxyName data:(id)data {
24
+ return [[[self alloc] initWithProxyName:proxyName data:data] autorelease];
25
+ }
26
+
27
+ +(id)withData:(id)data {
28
+ return [[[self alloc] initWithProxyName:nil data:data] autorelease];
29
+ }
30
+
31
+ -(id)initWithProxyName:(NSString *)_proxyName data:(id)_data {
32
+ if (self = [super init]) {
33
+ self.proxyName = (_proxyName == nil) ? [[self class] NAME] : _proxyName;
34
+ self.data = _data;
35
+ [self initializeProxy];
36
+ }
37
+ return self;
38
+ }
39
+
40
+ +(NSString *)NAME {
41
+ return @"Proxy";
42
+ }
43
+
44
+ /**
45
+ * Initialize the Proxy instance.
46
+ *
47
+ * <P>
48
+ * Called automatically by the constructor, this
49
+ * is your opportunity to initialize the Proxy
50
+ * instance in your subclass without overriding the
51
+ * constructor.</P>
52
+ *
53
+ * @return void
54
+ */
55
+ -(void)initializeProxy {}
56
+
57
+ /**
58
+ * Called by the Model when the Proxy is registered
59
+ */
60
+ -(void)onRegister {}
61
+
62
+ /**
63
+ * Called by the Model when the Proxy is removed
64
+ */
65
+ -(void)onRemove {}
66
+
67
+ -(void)dealloc {
68
+ self.data = nil;
69
+ self.proxyName = nil;
70
+ [super dealloc];
71
+ }
72
+
73
+ @end
@@ -0,0 +1,31 @@
1
+ //
2
+ // ApplicationFacade.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ #import "Facade.h"
11
+
12
+ #define Startup @"Startup"
13
+ #define ShowNewUser @"ShowNewUser"
14
+ #define ShowEditUser @"ShowEditUser"
15
+ #define ShowUserForm @"ShowUserForm"
16
+ #define ShowUserList @"ShowUserList"
17
+ #define ShowError @"ShowError"
18
+ #define CreateUser @"CreateUser"
19
+ #define UpdateUser @"UpdateUser"
20
+ #define DeleteUser @"DeleteUser"
21
+ #define GetUsers @"GetUsers"
22
+ #define GetUsersSuccess @"GetUsersSuccess"
23
+
24
+ @interface ApplicationFacade : Facade {
25
+ }
26
+
27
+ +(ApplicationFacade *)getInstance;
28
+
29
+ -(void)startup:(id)app;
30
+
31
+ @end
@@ -0,0 +1,33 @@
1
+ //
2
+ // ApplicationFacade.m
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "ApplicationFacade.h"
10
+ #import "StartupCommand.h"
11
+ #import "CreateUserCommand.h"
12
+ #import "UpdateUserCommand.h"
13
+ #import "GetUsersCommand.h"
14
+
15
+ @implementation ApplicationFacade
16
+
17
+ -(void)startup:(id)app {
18
+ [self sendNotification:Startup body:app];
19
+ }
20
+
21
+ +(ApplicationFacade *)getInstance {
22
+ return (ApplicationFacade *)[super getInstance];
23
+ }
24
+
25
+ -(void)initializeController {
26
+ [super initializeController];
27
+ [self registerCommand:Startup commandClassRef:[StartupCommand class]];
28
+ [self registerCommand:CreateUser commandClassRef:[CreateUserCommand class]];
29
+ [self registerCommand:UpdateUser commandClassRef:[UpdateUserCommand class]];
30
+ [self registerCommand:GetUsers commandClassRef:[GetUsersCommand class]];
31
+ }
32
+
33
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // CreateUserCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "SimpleCommand.h"
10
+
11
+
12
+ @interface CreateUserCommand : SimpleCommand {
13
+
14
+ }
15
+
16
+ @end
@@ -0,0 +1,27 @@
1
+ //
2
+ // CreateUserCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "CreateUserCommand.h"
10
+ #import "ApplicationFacade.h"
11
+ #import "UserProxy.h"
12
+ #import "UserVO.h"
13
+
14
+ @implementation CreateUserCommand
15
+
16
+ -(void)execute:(id<INotification>)notification {
17
+ UserProxy *userProxy = (UserProxy *)[facade retrieveProxy:[UserProxy NAME]];
18
+ UserVO *userVO = [notification body];
19
+ if ([userVO isValid]) {
20
+ [userProxy create:userVO];
21
+ [facade sendNotification:ShowUserList];
22
+ } else {
23
+ [facade sendNotification:ShowError body:@"Invalid User"];
24
+ }
25
+ }
26
+
27
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // DeleteUserCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "SimpleCommand.h"
10
+
11
+
12
+ @interface DeleteUserCommand : SimpleCommand {
13
+
14
+ }
15
+
16
+ @end
@@ -0,0 +1,21 @@
1
+ //
2
+ // DeleteUserCommand.m
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "DeleteUserCommand.h"
10
+ #import "UserProxy.h"
11
+ #import "UserVO.h"
12
+
13
+ @implementation DeleteUserCommand
14
+
15
+ -(void)execute:(id<INotification>)notification {
16
+ UserProxy *userProxy = (UserProxy *)[facade retrieveProxy:[UserProxy NAME]];
17
+ UserVO *userVO = [notification body];
18
+ [userProxy delete:userVO];
19
+ }
20
+
21
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // GetUsersCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+
10
+ #import "SimpleCommand.h"
11
+
12
+
13
+ @interface GetUsersCommand : SimpleCommand {
14
+
15
+ }
16
+
17
+ @end
@@ -0,0 +1,21 @@
1
+ //
2
+ // GetUsersCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+
10
+ #import "GetUsersCommand.h"
11
+ #import "ApplicationFacade.h"
12
+ #import "UserProxy.h"
13
+
14
+ @implementation GetUsersCommand
15
+
16
+ -(void)execute:(id<INotification>)notification {
17
+ UserProxy *userProxy = (UserProxy *)[facade retrieveProxy:[UserProxy NAME]];
18
+ [facade sendNotification:GetUsersSuccess body:userProxy.data];
19
+ }
20
+
21
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // StartupCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ #import "SimpleCommand.h"
11
+
12
+ @interface StartupCommand : SimpleCommand {
13
+
14
+ }
15
+
16
+ @end
@@ -0,0 +1,29 @@
1
+ //
2
+ // StartupCommand.m
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "StartupCommand.h"
10
+ #import "Contacts.h"
11
+ #import "ApplicationFacade.h"
12
+ #import "UserListMediator.h"
13
+ #import "UserProxy.h"
14
+ #import "ContactsMediator.h"
15
+ #import "UserFormMediator.h"
16
+
17
+ @implementation StartupCommand
18
+
19
+ -(void)execute:(id<INotification>)notification {
20
+ [facade registerProxy:[UserProxy proxy]];
21
+
22
+ Contacts *app = [notification body];
23
+
24
+ [facade registerMediator:[ContactsMediator withViewComponent:app]];
25
+ [facade registerMediator:[UserListMediator withViewComponent:app.userList]];
26
+ [facade registerMediator:[UserFormMediator withViewComponent:app.userForm]];
27
+ }
28
+
29
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // UpdateUserCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "SimpleCommand.h"
10
+
11
+
12
+ @interface UpdateUserCommand : SimpleCommand {
13
+
14
+ }
15
+
16
+ @end
@@ -0,0 +1,27 @@
1
+ //
2
+ // UpdateUserCommand.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "UpdateUserCommand.h"
10
+ #import "ApplicationFacade.h"
11
+ #import "UserProxy.h"
12
+ #import "UserVO.h"
13
+
14
+ @implementation UpdateUserCommand
15
+
16
+ -(void)execute:(id<INotification>)notification {
17
+ UserProxy *userProxy = (UserProxy *)[facade retrieveProxy:[UserProxy NAME]];
18
+ UserVO *userVO = [notification body];
19
+ if ([userVO isValid]) {
20
+ [userProxy update:userVO];
21
+ [facade sendNotification:ShowUserList];
22
+ } else {
23
+ [facade sendNotification:ShowError body:@"Invalid User"];
24
+ }
25
+ }
26
+
27
+ @end
@@ -0,0 +1,19 @@
1
+ //
2
+ // UserProxy.h
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import <UIKit/UIKit.h>
10
+ #import "Proxy.h"
11
+
12
+ @interface UserProxy : Proxy {
13
+ }
14
+
15
+ -(void)create:(id)item;
16
+ -(void)update:(id)item;
17
+ -(void)delete:(id)item;
18
+
19
+ @end
@@ -0,0 +1,59 @@
1
+ //
2
+ // UserProxy.m
3
+ // PureMVC_ObjectiveC
4
+ //
5
+ // PureMVC Port to ObjectiveC by Brian Knorr <brian.knorr@puremvc.org>
6
+ // PureMVC - Copyright(c) 2006-2008 Futurescale, Inc., Some rights reserved.
7
+ //
8
+
9
+ #import "UserProxy.h"
10
+ #import "UserVO.h"
11
+
12
+ @implementation UserProxy
13
+
14
+ -(void)initializeProxy {
15
+ [super initializeProxy];
16
+ self.proxyName = [UserProxy NAME];
17
+ self.data = [NSMutableArray array];
18
+ [self create:[UserVO withUserName:@"lstooge" firstName:@"Larry" lastName:@"Stooge" email:@"larry@stooges.com" password:@"ijk456" confirmPassword:@"ijk456" department:@"Accounting"]];
19
+ [self create:[UserVO withUserName:@"cstooge" firstName:@"Curly" lastName:@"Stooge" email:@"curly@stooges.com" password:@"xyz987" confirmPassword:@"xyz987" department:@"Sales"]];
20
+ [self create:[UserVO withUserName:@"mstooge" firstName:@"Moe" lastName:@"Stooge" email:@"moe@stooges.com" password:@"abc123" confirmPassword:@"abc123" department:@"Plant"]];
21
+ }
22
+
23
+ +(NSString *)NAME {
24
+ return @"UserProxy";
25
+ }
26
+
27
+ -(NSMutableArray *)data {
28
+ return data;
29
+ }
30
+
31
+ -(void)create:(id)item {
32
+ [self.data addObject:item];
33
+ }
34
+
35
+ -(void)update:(id)item {
36
+ for (int i=0; i<[self.data count]; i++) {
37
+ UserVO *userVO = [self.data objectAtIndex:i];
38
+ if ([userVO.username isEqualToString:[item username]]) {
39
+ [self.data replaceObjectAtIndex:i withObject:item];
40
+ break;
41
+ }
42
+ }
43
+ }
44
+
45
+ -(void)delete:(id)item {
46
+ for (int i=0; i<[self.data count]; i++) {
47
+ UserVO *userVO = [self.data objectAtIndex:i];
48
+ if ([userVO.username isEqualToString:[item username]]) {
49
+ [self.data removeObjectAtIndex:i];
50
+ break;
51
+ }
52
+ }
53
+ }
54
+
55
+ -(void)dealloc {
56
+ [super dealloc];
57
+ }
58
+
59
+ @end