2 Copyright (C) 2000-2003 SKYRIX Software AG
4 This file is part of OGo
6 OGo 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 OGo 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 OGo; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
23 #ifndef __SoObjects_SoClassRegistry_H__
24 #define __SoObjects_SoClassRegistry_H__
26 #import <Foundation/NSObject.h>
31 The class registry is used to map ObjC classes to SoClasses, to map names
32 to SoClasses and to map file-extensions to SoClasses.
35 @class NSMutableDictionary, NSString, NSException;
38 @interface SoClassRegistry : NSObject
40 NSMutableDictionary *objcToSoClass;
41 NSMutableDictionary *extToSoClass;
42 NSMutableDictionary *nameToSoClass;
45 + (id)sharedClassRegistry;
49 - (SoClass *)soClassWithName:(NSString *)_name;
50 - (SoClass *)soClassForExtension:(NSString *)_ext;
51 - (SoClass *)soClassForExactName:(NSString *)_name;
53 - (NSException *)registerSoClass:(SoClass *)_clazz forExtension:(NSString *)_e;
54 - (NSException *)registerSoClass:(SoClass *)_clazz forExactName:(NSString *)_n;
58 - (SoClass *)soClassForClass:(Class)_clazz;
62 #endif /* __SoObjects_SoClassRegistry_H__ */