2
Copyright (C) 2002-2005 SKYRIX Software AG
4
This file is part of SOPE.
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
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.
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
22
#ifndef __SoObjects_SoClass_H__
23
#define __SoObjects_SoClass_H__
25
#import <Foundation/NSObject.h>
30
Abstract baseclass for SoObject classes. SoClasses collect common keys
31
and security info for sets of objects.
33
See SoObjCClass and SoExtClass for examples of concrete SoClasses.
36
@class NSString, NSMutableDictionary, NSArray, NSClassDescription;
37
@class SoClassSecurityInfo;
39
@interface SoClass : NSObject
41
SoClass *soSuperClass;
42
NSMutableDictionary *slots;
43
SoClassSecurityInfo *security;
46
- (id)initWithSoSuperClass:(SoClass *)_soClass;
50
- (SoClass *)soSuperClass;
52
/* keys (traverse hierarchy) */
54
- (BOOL)hasKey:(NSString *)_key inContext:(id)_ctx;
55
- (id)lookupKey:(NSString *)_key inContext:(id)_ctx;
58
/* slots (only works on the exact class) */
60
- (void)setValue:(id)_value forSlot:(NSString *)_key;
61
- (id)valueForSlot:(NSString *)_key;
62
- (NSArray *)slotNames;
66
- (SoClassSecurityInfo *)soClassSecurityInfo;
70
- (id)instantiateObject;
71
- (NSClassDescription *)soClassDescription;
72
- (NSString *)className;
76
#endif /* __SoObjects_SoClass_H__ */