1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
*
* This program and the accompanying materials are made available under
* the terms of the Common Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/cpl-v10.html
*
* $Id: ResourceLoader.java,v 1.1.1.1.2.1 2004/06/20 18:24:05 vlad_r Exp $
*/
package com.vladium.util;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
// ----------------------------------------------------------------------------
/**
* A static API that can be used as a drop-in replacement for
* java.lang.ClassLoader API (the class/resource loading part). This
* implementation is merely a wrapper around ClassLoaderResolverget.ClassLoader()
* method.
*
* @author Vlad Roubtsov, (C) 2003
*/
public
abstract class ResourceLoader
{
// public: ................................................................
/**
* @see java.lang.ClassLoader#loadClass(java.lang.String)
*/
public static Class loadClass (final String name)
throws ClassNotFoundException
{
final Class caller = ClassLoaderResolver.getCallerClass (1);
final ClassLoader loader = ClassLoaderResolver.getClassLoader (caller);
return Class.forName (name, false, loader);
}
/**
* @see java.lang.ClassLoader#getResource(java.lang.String)
*/
public static URL getResource (final String name)
{
final Class caller = ClassLoaderResolver.getCallerClass (1);
final ClassLoader loader = ClassLoaderResolver.getClassLoader (caller);
if (loader != null)
return loader.getResource (name);
else
return ClassLoader.getSystemResource (name);
}
/**
* @see java.lang.ClassLoader#getResourceAsStream(java.lang.String)
*/
public static InputStream getResourceAsStream (final String name)
{
final Class caller = ClassLoaderResolver.getCallerClass (1);
final ClassLoader loader = ClassLoaderResolver.getClassLoader (caller);
if (loader != null)
return loader.getResourceAsStream (name);
else
return ClassLoader.getSystemResourceAsStream (name);
}
/**
* @see java.lang.ClassLoader#getResources(java.lang.String)
*/
public static Enumeration getResources (final String name)
throws IOException
{
final Class caller = ClassLoaderResolver.getCallerClass (1);
final ClassLoader loader = ClassLoaderResolver.getClassLoader (caller);
if (loader != null)
return loader.getResources (name);
else
return ClassLoader.getSystemResources (name);
}
public static Class loadClass (final String name, final ClassLoader loader)
throws ClassNotFoundException
{
return Class.forName (name, false, loader != null ? loader : ClassLoader.getSystemClassLoader ());
}
public static URL getResource (final String name, final ClassLoader loader)
{
if (loader != null)
return loader.getResource (name);
else
return ClassLoader.getSystemResource (name);
}
public static InputStream getResourceAsStream (final String name, final ClassLoader loader)
{
if (loader != null)
return loader.getResourceAsStream (name);
else
return ClassLoader.getSystemResourceAsStream (name);
}
public static Enumeration getResources (final String name, final ClassLoader loader)
throws IOException
{
if (loader != null)
return loader.getResources (name);
else
return ClassLoader.getSystemResources (name);
}
// protected: .............................................................
// package: ...............................................................
// private: ...............................................................
private ResourceLoader () {} // prevent subclassing
} // end of class
// ----------------------------------------------------------------------------
|