KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > vladium > util > ResourceLoader


1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2  *
3  * This program and the accompanying materials are made available under
4  * the terms of the Common Public License v1.0 which accompanies this distribution,
5  * and is available at http://www.eclipse.org/legal/cpl-v10.html
6  *
7  * $Id: ResourceLoader.java,v 1.1.1.1.2.1 2004/06/20 18:24:05 vlad_r Exp $
8  */

9 package com.vladium.util;
10
11 import java.io.IOException JavaDoc;
12 import java.io.InputStream JavaDoc;
13 import java.net.URL JavaDoc;
14 import java.util.Enumeration JavaDoc;
15
16 // ----------------------------------------------------------------------------
17
/**
18  * A static API that can be used as a drop-in replacement for
19  * java.lang.ClassLoader API (the class/resource loading part). This
20  * implementation is merely a wrapper around ClassLoaderResolverget.ClassLoader()
21  * method.
22  *
23  * @author Vlad Roubtsov, (C) 2003
24  */

25 public
26 abstract class ResourceLoader
27 {
28     // public: ................................................................
29

30     /**
31      * @see java.lang.ClassLoader#loadClass(java.lang.String)
32      */

33     public static Class JavaDoc loadClass (final String JavaDoc name)
34         throws ClassNotFoundException JavaDoc
35     {
36         final Class JavaDoc caller = ClassLoaderResolver.getCallerClass (1);
37         final ClassLoader JavaDoc loader = ClassLoaderResolver.getClassLoader (caller);
38         
39         return Class.forName (name, false, loader);
40     }
41
42     /**
43      * @see java.lang.ClassLoader#getResource(java.lang.String)
44      */

45     public static URL JavaDoc getResource (final String JavaDoc name)
46     {
47         final Class JavaDoc caller = ClassLoaderResolver.getCallerClass (1);
48         final ClassLoader JavaDoc loader = ClassLoaderResolver.getClassLoader (caller);
49         
50         if (loader != null)
51             return loader.getResource (name);
52         else
53             return ClassLoader.getSystemResource (name);
54     }
55
56     /**
57      * @see java.lang.ClassLoader#getResourceAsStream(java.lang.String)
58      */

59     public static InputStream JavaDoc getResourceAsStream (final String JavaDoc name)
60     {
61         final Class JavaDoc caller = ClassLoaderResolver.getCallerClass (1);
62         final ClassLoader JavaDoc loader = ClassLoaderResolver.getClassLoader (caller);
63         
64         if (loader != null)
65             return loader.getResourceAsStream (name);
66         else
67             return ClassLoader.getSystemResourceAsStream (name);
68     }
69
70     /**
71      * @see java.lang.ClassLoader#getResources(java.lang.String)
72      */

73     public static Enumeration JavaDoc getResources (final String JavaDoc name)
74         throws IOException JavaDoc
75     {
76         final Class JavaDoc caller = ClassLoaderResolver.getCallerClass (1);
77         final ClassLoader JavaDoc loader = ClassLoaderResolver.getClassLoader (caller);
78         
79         if (loader != null)
80             return loader.getResources (name);
81         else
82             return ClassLoader.getSystemResources (name);
83     }
84     
85     
86     public static Class JavaDoc loadClass (final String JavaDoc name, final ClassLoader JavaDoc loader)
87         throws ClassNotFoundException JavaDoc
88     {
89         return Class.forName (name, false, loader != null ? loader : ClassLoader.getSystemClassLoader ());
90     }
91
92     public static URL JavaDoc getResource (final String JavaDoc name, final ClassLoader JavaDoc loader)
93     {
94         if (loader != null)
95             return loader.getResource (name);
96         else
97             return ClassLoader.getSystemResource (name);
98     }
99
100     public static InputStream JavaDoc getResourceAsStream (final String JavaDoc name, final ClassLoader JavaDoc loader)
101     {
102         if (loader != null)
103             return loader.getResourceAsStream (name);
104         else
105             return ClassLoader.getSystemResourceAsStream (name);
106     }
107
108     public static Enumeration JavaDoc getResources (final String JavaDoc name, final ClassLoader JavaDoc loader)
109         throws IOException JavaDoc
110     {
111         if (loader != null)
112             return loader.getResources (name);
113         else
114             return ClassLoader.getSystemResources (name);
115     }
116     
117     // protected: .............................................................
118

119     // package: ...............................................................
120

121     // private: ...............................................................
122

123     
124     private ResourceLoader () {} // prevent subclassing
125

126 } // end of class
127
// ----------------------------------------------------------------------------
Popular Tags