]> err.no Git - sope/blob - sope-core/EOControl/EOGenericRecord.h
Drop apache 1 build-dependency
[sope] / sope-core / EOControl / EOGenericRecord.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_EOGenericRecord_h__
23 #define __EOControl_EOGenericRecord_h__
24
25 #import <Foundation/NSObject.h>
26 #import <Foundation/NSMapTable.h>
27 #include <EOControl/EOGlobalID.h>
28
29 @class NSDictionary, NSArray, NSString, NSEnumerator;
30 @class EOClassDescription;
31
32 /*
33  * EOGeneric record class, used for enterprise objects
34  * that do not have special data handling
35  */
36
37 @interface EOGenericRecord : NSObject < NSCopying >
38 {
39   EOClassDescription *classDescription;
40   IMP                willChange;
41
42   /* hash-table */
43   struct _NSMapNode  **nodes;
44   unsigned int       hashSize;
45   unsigned int       itemsCount;
46 }
47
48 - (id)initWithEditingContext:(id)_ec
49   classDescription:(EOClassDescription *)_classDesc
50   globalID:(EOGlobalID *)_oid;
51
52 // Key-value coding methods
53
54 - (void)takeValuesFromDictionary:(NSDictionary *)dictionary;
55 - (NSDictionary *)valuesForKeys:(NSArray *)keys;
56
57 // Shortcuts to key-value coding methods
58
59 - (void)setObject:(id)anObject forKey:(id)aKey;
60 - (id)objectForKey:(id)aKey;
61 - (void)removeObjectForKey:(id)aKey;
62
63 @end /* EOGenericRecord */
64
65
66 @class NSEnumerator;
67
68 @interface EOGenericRecord(EOMOF2Extensions)
69 - (NSEnumerator *)keyEnumerator;
70 @end
71
72 #endif /* __EOControl_EOGenericRecord_h__ */