Skip to content

Commit 68a6c66

Browse files
committed
Added validation classes
1 parent 1d47231 commit 68a6c66

36 files changed

+1258
-0
lines changed

KVC Validation Pattern/KVC Validation Pattern.xcodeproj/project.pbxproj

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,23 @@
1818
0331CC1816D2BC340037911A /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0331CC1716D2BC340037911A /* Default-568h@2x.png */; };
1919
0331CC1B16D2BC340037911A /* CTCViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0331CC1A16D2BC340037911A /* CTCViewController.m */; };
2020
0331CC1E16D2BC340037911A /* CTCViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0331CC1C16D2BC340037911A /* CTCViewController.xib */; };
21+
D1A960CA1CD295B23407E722 /* CTCFloatTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A960AB8D8D5F2608D1D05C /* CTCFloatTypeValidator.m */; };
22+
D1A9612D29BDD99669FA0318 /* CTCDateTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96B13B681A0BF8B33277F /* CTCDateTypeValidator.m */; };
23+
D1A961558ADE642EBB7A278D /* CTCStation.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96109D2CD25E51B9DC18F /* CTCStation.m */; };
24+
D1A9621C56912347ADCFE486 /* CTCBaseModelValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96F977C69F2AEB680CF33 /* CTCBaseModelValidator.m */; };
25+
D1A96393A51F39EB36C09B15 /* CTCNumberTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96431BB0178BFF883997B /* CTCNumberTypeValidator.m */; };
26+
D1A96420C22B3EE0EC8B3302 /* CTCBooleanTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96AC4326DB106A6B7A748 /* CTCBooleanTypeValidator.m */; };
27+
D1A965A8D4879E9760B90CC0 /* CTCDoubleTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96EBE1A57032C1359BB0D /* CTCDoubleTypeValidator.m */; };
28+
D1A966991653B11B5E87F508 /* CTCBaseValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96B0273E016C33D792DD3 /* CTCBaseValidator.m */; };
29+
D1A966A3389F1134D28145A1 /* CTCHistoricalPrice.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A963FA34856D738D23FCE5 /* CTCHistoricalPrice.m */; };
30+
D1A966E4FCD1AEB29818902A /* CTCAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96DAB6710395F2577CAA3 /* CTCAddress.m */; };
31+
D1A9677609D8EFF77241C201 /* CTCArrayTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A965D6EE2DC8E368276665 /* CTCArrayTypeValidator.m */; };
32+
D1A96840AAD0A01D4EC67395 /* CTCBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96FDA94E719E970ACD8D1 /* CTCBaseModel.m */; };
33+
D1A9691945674836A09D2BC8 /* NSString+Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96C133C16E9532FEA9D77 /* NSString+Utilities.m */; };
34+
D1A9694E6EBF067748CF7520 /* CTCDictionaryTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A96F8FFAE93D1CA79F847E /* CTCDictionaryTypeValidator.m */; };
35+
D1A96C04F57F99ECCA398A35 /* CTCStringTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A969301137DB19C2E681C4 /* CTCStringTypeValidator.m */; };
36+
D1A96E7A320FB5300C08EC25 /* CTCIntegerTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A965882BA8DE414198C4BB /* CTCIntegerTypeValidator.m */; };
37+
D1A96EA0F0A13B39EAD6002F /* CTCUnsignedIntegerTypeValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A9633A6D221155B7466BCC /* CTCUnsignedIntegerTypeValidator.m */; };
2138
/* End PBXBuildFile section */
2239

2340
/* Begin PBXFileReference section */
@@ -37,6 +54,41 @@
3754
0331CC1916D2BC340037911A /* CTCViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CTCViewController.h; sourceTree = "<group>"; };
3855
0331CC1A16D2BC340037911A /* CTCViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CTCViewController.m; sourceTree = "<group>"; };
3956
0331CC1D16D2BC340037911A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/CTCViewController.xib; sourceTree = "<group>"; };
57+
D1A960242C2D383AC3DEAC1C /* CTCIntegerTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCIntegerTypeValidator.h; sourceTree = "<group>"; };
58+
D1A9603D974FAEAA5655C472 /* CTCDictionaryTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCDictionaryTypeValidator.h; sourceTree = "<group>"; };
59+
D1A9608DF3D8068F64698BC3 /* CTCUnsignedIntegerTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCUnsignedIntegerTypeValidator.h; sourceTree = "<group>"; };
60+
D1A960AB8D8D5F2608D1D05C /* CTCFloatTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCFloatTypeValidator.m; sourceTree = "<group>"; };
61+
D1A960BB8118621FAC9EC597 /* CTCBaseModelValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCBaseModelValidator.h; sourceTree = "<group>"; };
62+
D1A96109D2CD25E51B9DC18F /* CTCStation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCStation.m; sourceTree = "<group>"; };
63+
D1A961ED56103D603228633F /* CTCBooleanTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCBooleanTypeValidator.h; sourceTree = "<group>"; };
64+
D1A9631937B4815842753788 /* ValidationFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ValidationFunctions.h; sourceTree = "<group>"; };
65+
D1A9633A6D221155B7466BCC /* CTCUnsignedIntegerTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCUnsignedIntegerTypeValidator.m; sourceTree = "<group>"; };
66+
D1A9634AAEA04A7DAC761FB9 /* CTCStation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCStation.h; sourceTree = "<group>"; };
67+
D1A963B4A978AB7D6900FAEC /* CTCDoubleTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCDoubleTypeValidator.h; sourceTree = "<group>"; };
68+
D1A963FA34856D738D23FCE5 /* CTCHistoricalPrice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCHistoricalPrice.m; sourceTree = "<group>"; };
69+
D1A96431BB0178BFF883997B /* CTCNumberTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCNumberTypeValidator.m; sourceTree = "<group>"; };
70+
D1A964B154B9C3E18DF2E026 /* CTCNumberTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCNumberTypeValidator.h; sourceTree = "<group>"; };
71+
D1A965882BA8DE414198C4BB /* CTCIntegerTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCIntegerTypeValidator.m; sourceTree = "<group>"; };
72+
D1A965D6EE2DC8E368276665 /* CTCArrayTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCArrayTypeValidator.m; sourceTree = "<group>"; };
73+
D1A967B31A2F6F35B7A26450 /* CTCStringTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCStringTypeValidator.h; sourceTree = "<group>"; };
74+
D1A9682FCF8E44DE2645C622 /* CTCBaseValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCBaseValidator.h; sourceTree = "<group>"; };
75+
D1A96919538C61431C404BCD /* CTCDateTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCDateTypeValidator.h; sourceTree = "<group>"; };
76+
D1A969301137DB19C2E681C4 /* CTCStringTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCStringTypeValidator.m; sourceTree = "<group>"; };
77+
D1A9697EA73C7580ADBD935A /* NSString+Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Utilities.h"; sourceTree = "<group>"; };
78+
D1A96A254F4AF318022696FB /* CTCHistoricalPrice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCHistoricalPrice.h; sourceTree = "<group>"; };
79+
D1A96A4A42FF9FB0178DA2BD /* CTCAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCAddress.h; sourceTree = "<group>"; };
80+
D1A96AC4326DB106A6B7A748 /* CTCBooleanTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCBooleanTypeValidator.m; sourceTree = "<group>"; };
81+
D1A96AC843999D5242A3C415 /* CTCBaseModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCBaseModel.h; sourceTree = "<group>"; };
82+
D1A96B0273E016C33D792DD3 /* CTCBaseValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCBaseValidator.m; sourceTree = "<group>"; };
83+
D1A96B13B681A0BF8B33277F /* CTCDateTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCDateTypeValidator.m; sourceTree = "<group>"; };
84+
D1A96B6E1AD55C1C9EC59F97 /* CTCArrayTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCArrayTypeValidator.h; sourceTree = "<group>"; };
85+
D1A96C133C16E9532FEA9D77 /* NSString+Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Utilities.m"; sourceTree = "<group>"; };
86+
D1A96C839902F7B92E090955 /* CTCFloatTypeValidator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTCFloatTypeValidator.h; sourceTree = "<group>"; };
87+
D1A96DAB6710395F2577CAA3 /* CTCAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCAddress.m; sourceTree = "<group>"; };
88+
D1A96EBE1A57032C1359BB0D /* CTCDoubleTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCDoubleTypeValidator.m; sourceTree = "<group>"; };
89+
D1A96F8FFAE93D1CA79F847E /* CTCDictionaryTypeValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCDictionaryTypeValidator.m; sourceTree = "<group>"; };
90+
D1A96F977C69F2AEB680CF33 /* CTCBaseModelValidator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCBaseModelValidator.m; sourceTree = "<group>"; };
91+
D1A96FDA94E719E970ACD8D1 /* CTCBaseModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTCBaseModel.m; sourceTree = "<group>"; };
4092
/* End PBXFileReference section */
4193

4294
/* Begin PBXFrameworksBuildPhase section */
@@ -89,6 +141,7 @@
89141
0331CC1A16D2BC340037911A /* CTCViewController.m */,
90142
0331CC1C16D2BC340037911A /* CTCViewController.xib */,
91143
0331CC0816D2BC330037911A /* Supporting Files */,
144+
D1A9640FB1434F9E98A40B64 /* Model */,
92145
);
93146
path = "KVC Validation Pattern";
94147
sourceTree = "<group>";
@@ -107,6 +160,56 @@
107160
name = "Supporting Files";
108161
sourceTree = "<group>";
109162
};
163+
D1A9640FB1434F9E98A40B64 /* Model */ = {
164+
isa = PBXGroup;
165+
children = (
166+
D1A96FDA94E719E970ACD8D1 /* CTCBaseModel.m */,
167+
D1A96AC843999D5242A3C415 /* CTCBaseModel.h */,
168+
D1A96C133C16E9532FEA9D77 /* NSString+Utilities.m */,
169+
D1A9697EA73C7580ADBD935A /* NSString+Utilities.h */,
170+
D1A9649CC08AFC85AF889CE2 /* Validation */,
171+
D1A96109D2CD25E51B9DC18F /* CTCStation.m */,
172+
D1A9634AAEA04A7DAC761FB9 /* CTCStation.h */,
173+
D1A96DAB6710395F2577CAA3 /* CTCAddress.m */,
174+
D1A96A4A42FF9FB0178DA2BD /* CTCAddress.h */,
175+
D1A963FA34856D738D23FCE5 /* CTCHistoricalPrice.m */,
176+
D1A96A254F4AF318022696FB /* CTCHistoricalPrice.h */,
177+
);
178+
path = Model;
179+
sourceTree = "<group>";
180+
};
181+
D1A9649CC08AFC85AF889CE2 /* Validation */ = {
182+
isa = PBXGroup;
183+
children = (
184+
D1A96B6E1AD55C1C9EC59F97 /* CTCArrayTypeValidator.h */,
185+
D1A965D6EE2DC8E368276665 /* CTCArrayTypeValidator.m */,
186+
D1A9682FCF8E44DE2645C622 /* CTCBaseValidator.h */,
187+
D1A96B0273E016C33D792DD3 /* CTCBaseValidator.m */,
188+
D1A961ED56103D603228633F /* CTCBooleanTypeValidator.h */,
189+
D1A96AC4326DB106A6B7A748 /* CTCBooleanTypeValidator.m */,
190+
D1A96919538C61431C404BCD /* CTCDateTypeValidator.h */,
191+
D1A96B13B681A0BF8B33277F /* CTCDateTypeValidator.m */,
192+
D1A96C839902F7B92E090955 /* CTCFloatTypeValidator.h */,
193+
D1A960AB8D8D5F2608D1D05C /* CTCFloatTypeValidator.m */,
194+
D1A964B154B9C3E18DF2E026 /* CTCNumberTypeValidator.h */,
195+
D1A96431BB0178BFF883997B /* CTCNumberTypeValidator.m */,
196+
D1A967B31A2F6F35B7A26450 /* CTCStringTypeValidator.h */,
197+
D1A969301137DB19C2E681C4 /* CTCStringTypeValidator.m */,
198+
D1A965882BA8DE414198C4BB /* CTCIntegerTypeValidator.m */,
199+
D1A960242C2D383AC3DEAC1C /* CTCIntegerTypeValidator.h */,
200+
D1A96F8FFAE93D1CA79F847E /* CTCDictionaryTypeValidator.m */,
201+
D1A9603D974FAEAA5655C472 /* CTCDictionaryTypeValidator.h */,
202+
D1A9633A6D221155B7466BCC /* CTCUnsignedIntegerTypeValidator.m */,
203+
D1A9608DF3D8068F64698BC3 /* CTCUnsignedIntegerTypeValidator.h */,
204+
D1A96EBE1A57032C1359BB0D /* CTCDoubleTypeValidator.m */,
205+
D1A963B4A978AB7D6900FAEC /* CTCDoubleTypeValidator.h */,
206+
D1A96F977C69F2AEB680CF33 /* CTCBaseModelValidator.m */,
207+
D1A960BB8118621FAC9EC597 /* CTCBaseModelValidator.h */,
208+
D1A9631937B4815842753788 /* ValidationFunctions.h */,
209+
);
210+
path = Validation;
211+
sourceTree = "<group>";
212+
};
110213
/* End PBXGroup section */
111214

112215
/* Begin PBXNativeTarget section */
@@ -177,6 +280,23 @@
177280
0331CC0E16D2BC330037911A /* main.m in Sources */,
178281
0331CC1216D2BC330037911A /* CTCAppDelegate.m in Sources */,
179282
0331CC1B16D2BC340037911A /* CTCViewController.m in Sources */,
283+
D1A96840AAD0A01D4EC67395 /* CTCBaseModel.m in Sources */,
284+
D1A9691945674836A09D2BC8 /* NSString+Utilities.m in Sources */,
285+
D1A966991653B11B5E87F508 /* CTCBaseValidator.m in Sources */,
286+
D1A96C04F57F99ECCA398A35 /* CTCStringTypeValidator.m in Sources */,
287+
D1A96420C22B3EE0EC8B3302 /* CTCBooleanTypeValidator.m in Sources */,
288+
D1A96393A51F39EB36C09B15 /* CTCNumberTypeValidator.m in Sources */,
289+
D1A960CA1CD295B23407E722 /* CTCFloatTypeValidator.m in Sources */,
290+
D1A9677609D8EFF77241C201 /* CTCArrayTypeValidator.m in Sources */,
291+
D1A9612D29BDD99669FA0318 /* CTCDateTypeValidator.m in Sources */,
292+
D1A961558ADE642EBB7A278D /* CTCStation.m in Sources */,
293+
D1A966E4FCD1AEB29818902A /* CTCAddress.m in Sources */,
294+
D1A966A3389F1134D28145A1 /* CTCHistoricalPrice.m in Sources */,
295+
D1A96E7A320FB5300C08EC25 /* CTCIntegerTypeValidator.m in Sources */,
296+
D1A9694E6EBF067748CF7520 /* CTCDictionaryTypeValidator.m in Sources */,
297+
D1A96EA0F0A13B39EAD6002F /* CTCUnsignedIntegerTypeValidator.m in Sources */,
298+
D1A965A8D4879E9760B90CC0 /* CTCDoubleTypeValidator.m in Sources */,
299+
D1A9621C56912347ADCFE486 /* CTCBaseModelValidator.m in Sources */,
180300
);
181301
runOnlyForDeploymentPostprocessing = 0;
182302
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//
2+
// CTCAddress
3+
// KVC Validation Pattern
4+
//
5+
// Created by ncipollina on 2/19/13.
6+
// Copyright 2013 CapTech Consulting. All rights reserved.
7+
//
8+
9+
10+
#import <Foundation/Foundation.h>
11+
#import "CTCBaseModel.h"
12+
13+
14+
@interface CTCAddress : CTCBaseModel
15+
16+
@property (nonatomic, strong) NSString *street;
17+
@property (nonatomic, strong) NSString *city;
18+
@property (nonatomic, strong) NSString *state;
19+
@property (nonatomic, strong) NSString *zip;
20+
21+
@end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// CTCAddress
3+
// KVC Validation Pattern
4+
//
5+
// Created by ncipollina on 2/19/13.
6+
// Copyright 2013 CapTech Consulting. All rights reserved.
7+
//
8+
9+
10+
#import "CTCAddress.h"
11+
12+
13+
@implementation CTCAddress {
14+
15+
}
16+
17+
@end
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// CTCBaseModel
3+
// KVC Validation Pattern
4+
//
5+
// Created by ncipollina on 2/18/13.
6+
// Copyright 2013 CapTech Consulting. All rights reserved.
7+
//
8+
9+
10+
#import <Foundation/Foundation.h>
11+
12+
13+
@interface CTCBaseModel : NSObject
14+
15+
@property (nonatomic, strong, readonly) NSString *dictionaryKey;
16+
@property (nonatomic, readonly, strong) NSDictionary *undefinedKeys;
17+
18+
- (id)initWithDictionary:(NSDictionary *)jsonObject;
19+
20+
+ (NSString *)calculateClassName;
21+
22+
@end

0 commit comments

Comments
 (0)