|
|
1.1 root 1: /* DictionaryDataSource.m:
2: * You may freely copy, distribute, and reuse the code in this example.
3: * NeXT disclaims any warranty of any kind, expressed or implied, as to its
4: * fitness for any particular use.
5: *
6: * Written by EO Development Team
7: * Last modified 07/26/94 Mai Nguyen
8: *
9: * Example of a non-database data source implementation
10: */
11:
12: #import "DictionaryDataSource.h"
13:
14: @implementation DictionaryDataSource
15:
16: - init
17: {
18: return [self initWithKeys: nil];
19: }
20:
21:
22: - initWithKeys: (NSArray *)k;
23: {
24: [super init];
25: array = [[NSMutableArray alloc] init];
26: if (k)
27: keys = [[NSArray alloc] initWithArray: k];
28: return self;
29: }
30:
31: - (void)dealloc
32: {
33: [array release];
34: [keys dealloc];
35: [super dealloc];
36: }
37:
38: /* Return a set of keys describing the data bearing objects */
39: - (NSArray *)keys
40: {
41: return keys;
42: }
43:
44:
45: /* Returns a new data bearing object */
46: - createObject
47: {
48: id anObject = [[NSMutableDictionary alloc] init];
49: return anObject;
50: }
51:
52:
53: /* Inserts the object in the data source */
54: - (BOOL)insertObject:object
55: {
56: [array addObject: object];
57: return YES;
58: }
59:
60: - (BOOL)canDelete
61: {
62: return YES;
63: }
64:
65:
66: /* Removes the object from the data source */
67: - (BOOL)deleteObject:object
68: {
69: [array removeObject: object];
70: return YES;
71: }
72:
73: /* Saves edits to the object */
74: - (BOOL)updateObject:object
75: {
76: // NOOP
77: return YES;
78: }
79:
80: - (NSArray *)fetchObjects
81: {
82: return array;
83: }
84:
85: /* Saves insertions, removals and updates to storage */
86: - (BOOL)saveObjects
87: {
88: return YES;
89: }
90:
91: /* Since the DictionaryDataSource does not use an eomodel, this method
92: * just returns the value.
93: * No type coercion is needed.
94: */
95: - coerceValue: value forKey: (NSString *)key
96: {
97: return value;
98: }
99:
100: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.