|
|
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.