]> err.no Git - sope/blob - sope-core/EOControl/EOKeyValueCoding.h
fixed copyrights for 2005
[sope] / sope-core / EOControl / EOKeyValueCoding.h
1 /*
2   Copyright (C) 2000-2005 SKYRIX Software AG
3
4   This file is part of SOPE.
5
6   SOPE is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with SOPE; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21
22 #ifndef __EOControl_EOKeyValueCoding_H__
23 #define __EOControl_EOKeyValueCoding_H__
24
25 #import <Foundation/NSObject.h>
26 #import <Foundation/NSArray.h>
27
28 #if NeXT_Foundation_LIBRARY
29
30 #import <Foundation/NSKeyValueCoding.h>
31
32 #else
33
34 @interface NSObject(EOKeyValueCoding)
35
36 + (BOOL)accessInstanceVariablesDirectly;
37 + (void)flushAllKeyBindings;
38
39 - (void)handleTakeValue:(id)_value forUnboundKey:(NSString *)_key;
40 - (id)handleQueryWithUnboundKey:(NSString *)_key;
41 - (void)unableToSetNullForKey:(NSString *)_key;
42
43 - (void)takeValuesFromDictionary:(NSDictionary *)_dictionary;
44 - (NSDictionary *)valuesForKeys:(NSArray *)_keys;
45
46 - (void)takeValue:(id)_value forKey:(NSString *)_key;
47 - (id)valueForKey:(NSString *)_key;
48
49 /* stored values */
50
51 + (BOOL)useStoredAccessor;
52 - (void)takeStoredValue:(id)_value forKey:(NSString *)_key;
53 - (id)storedValueForKey:(NSString *)_key;
54
55 @end
56
57 /* key-path stuff */
58
59 @interface NSObject(EOKeyPathValueCoding)
60
61 - (void)takeValue:(id)_value forKeyPath:(NSString *)_keyPath;
62 - (id)valueForKeyPath:(NSString *)_keyPath;
63
64 @end
65
66 /* array stuff */
67
68 @interface NSArray(EOKeyValueCoding)
69
70 /*
71   Special functions for computed values. Computed keys start with
72   '@', seg '@sum'. Yoy can define own computed keys by following the
73   method naming 'compute' + Func + 'ForKey:'.
74 */
75 - (id)computeSumForKey:(NSString *)_key;
76 - (id)computeAvgForKey:(NSString *)_key;
77 - (id)computeCountForKey:(NSString *)_key;
78 - (id)computeMaxForKey:(NSString *)_key;
79 - (id)computeMinForKey:(NSString *)_key;
80
81 /*
82   Attention: NSArray's 'valueForKey:' is special in that it does not
83   return properties of the array but an array of the properties of it's
84   elements. That is, it is similiar to a map function.
85 */
86 - (id)valueForKey:(NSString *)_key;
87
88 @end
89
90 #endif /* !NeXT_Foundation_LIBRARY */
91
92 #endif /* __EOControl_EOKeyValueCoding_H__ */