KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ozoneDB > DxLib > DxClassLoader


1 // You can redistribute this software and/or modify it under the terms of
2
// the Ozone Library License version 1 published by ozone-db.org.
3
//
4
// The original code and portions created by SMB are
5
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
6
//
7
// $Id: DxClassLoader.java,v 1.2 2003/01/23 18:07:00 per_nyfelt Exp $
8

9 package org.ozoneDB.DxLib;
10
11
12 /**
13  */

14 class DxClass extends DxObject {
15     final static long serialVersionUID = 1L;
16
17     Class JavaDoc clazz;
18     DxString name;
19
20
21     DxClass( DxString clazzName ) throws ClassNotFoundException JavaDoc{
22         name = clazzName;
23         // todo: uncommented until verified that it works
24
// todo: maybe we should use ClassManager here instead ot Thread.currentThread...?
25
// clazz = Class.forName( clazzName.toString() );
26
clazz = Thread.currentThread().getContextClassLoader().loadClass( clazzName.toString() );
27     }
28
29
30     Class JavaDoc clazz() {
31         return clazz;
32     }
33
34
35     DxString name() {
36         return name;
37     }
38 }
39
40
41 /**
42  *
43  *
44  * @author <a HREF="http://www.softwarebuero.de/">SMB</a>
45  * @version $Revision: 1.2 $Date: 2003/01/23 18:07:00 $
46  */

47 public class DxClassLoader extends Object JavaDoc {
48     static DxMap clazzes = new DxHashMap();
49
50
51     public DxClassLoader() {
52     }
53
54
55     public static Class JavaDoc classForName( String JavaDoc name ) throws ClassNotFoundException JavaDoc {
56         return classForName( new DxString( name ) );
57     }
58
59
60     public static Class JavaDoc classForName( DxString name ) throws ClassNotFoundException JavaDoc {
61         DxClass c = (DxClass)clazzes.elementForKey( name );
62         if (c == null) {
63             c = new DxClass( name );
64             clazzes.addForKey( c, c.name() );
65         }
66
67         return c.clazz();
68     }
69
70
71     public static void registerClass( DxString fileName ) {
72         // not implemented yet
73
}
74 }
75
Popular Tags