|
|
1.1 root 1: #import <eointerface/eointerface.h>
2:
3: @interface ValidatingDelegate : Object
4: {
5: BOOL validatesImmediately; // validate when change is made, or only when they
6: // try to save?
7: }
8:
9: - (void)setValidatesImmediately:(BOOL)yn;
10: - (BOOL)validatesImmediately;
11: // retuns whether the delegate will perform validation checks on user changes
12: // on a per-field basis. If not, check are performed before insert/update/delete.
13:
14: - (NSDictionary *)controller:(EOController *)controller willSaveEdits: (NSDictionary *)edits toObject:object;
15: // to perform validation on changes to objects as they are made.
16:
17: - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
18: willInsertObject:object
19: inDataSource:dataSource;
20: // Used to ask object if it's ready to be inserted.
21: // By default we will try to validate all of its properties.
22:
23: - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
24: willUpdateObject:object
25: inDataSource:dataSource;
26: // Used to ask object if it's ready to be updated.
27: // By default we will try to validate all of its properties.
28:
29: - (EODataSourceOperationDelegateResponse)controller:(EOController *)controller
30: willDeleteObject:object
31: inDataSource:dataSource;
32: // to ask object if it can be deleted.
33:
34: - (void)reportValidationErrors:(NSDictionary *)errors forObject:object
35: inController:(EOController *)controller;
36: // Called by delegate to report validate error. Default implementation displays
37: // a panel. Subclassers may want to update a status line in the window, or
38: // just beep.
39: @end
40:
41:
42: @interface NSObject (ValidationProtocols)
43: // An EO can implement some or all of these methods to play a roll in its validation
44: - (NSArray *)keysToValidate;
45: // Return list of property names that must be valid before object can be
46: // inserted or updated. Default implementation returns an empty array.
47: // Better implementations might scan the runtime information in the
48: // receiver for methods of the form validateXXXX:.
49: // For EOs that keep a pointer to their entity (provided in
50: // initWithPrimaryKey:entity) this method could return the classPropertyNames.
51:
52: - (NSDictionary *)validForDataSource:(id <EODataSources>)dataSource;
53: // should return nil if object is valid for insert and update,
54: // or a dictionary of key/error message pair describing the problem if not.
55: // The default implementation returns
56: // [self validateValuesInDictionary:[self valuesForKeys:[self keysToValidate]]]
57: - (NSDictionary *)validForInsertInDataSource:(id <EODataSources>)dataSource;
58: // should return nil if object is valid for insert, or a dictionary of key/error message
59: // pair describing the problem if not. The default implementation calls
60: // [self validForDataSource:dataSource]
61:
62: - (NSDictionary *)validForUpdateInDataSource:(id <EODataSources>)dataSource;
63: // should return nil if object is valid for update, or a dictionary of key/error message
64: // pair describing the problem if not. The default implementation calls
65: // [self validForDataSource:dataSource]
66:
67: - (NSDictionary *)validForDeleteInDataSource:(id <EODataSources>)dataSource;
68: // should return nil if object is valid for insert, or a dictionary of key/error message
69: // pair describing the problem if not. The default implementation returns nil.
70: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.