Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.crosswire.common.util
Class CWClassLoader

    java.lang.Object
      java.lang.ClassLoader
          org.crosswire.common.util.CWClassLoader

    public class CWClassLoader

extends ClassLoader

CWClassLoader extends the regular class loader by using looking in more places. This is needed so that ResourceBundle can find resources that are not held in the same package as the class.

Distribution Licence: JSword is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The License is available on the internet here, or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA The copyright to this program is held by it's authors.

Version:
  $Id: CWClassLoader.java,v 1.7 2005/03/06 20:21:59 dmsmith Exp $
Author:
  DM Smith [dmsmith555 at yahoo dot com]
See Also:
  `Licence`

Field Summary
`private static URL` | `home` Notion of a project's home from where additional resources can be found.
`private Class` | `owner` The class to which the resources belong

Constructor Summary
`CWClassLoader()` Creates a class loader that finds resources for the calling class that may not be in the class' package.
`CWClassLoader(Class resourceOwner)` Creates a class loader that finds resources for the supplied class that may not be in the class' package.

Method Summary
`private String` | `adjustPackageSearch(String search)` Prefix the search with a package prefix, if not already.
`private String` | `adjustPathSearch(String search)` Change all but a leading '/' to '.'
`static URL` | `findHomeResource(String search)` Look for the resource in the home directory
`URL` | `findResource(String search)`
`ClassLoader` | `getClassLoader()`
`static URL` | `getHome()` If the application has set the home, it will return the application's home directory, otherwise it returns null.
`private static ClassLoader` | `pickLoader(ClassLoader loader1, ClassLoader loader2)` Returns 'true' if 'loader2' is a delegation child of 'loader1' [or if 'loader1'=='loader2'].
`static void` | `setHome(URL newhome)` Establish the applications home directory from where additional resources can be found.

Methods inherited from class java.lang.ClassLoader
`clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### owner

    private Class owner

  The class to which the resources belong

### home

    private static URL home

  Notion of a project's home from where additional resources can be found.

Constructor Detail

### CWClassLoader

    public CWClassLoader(Class resourceOwner)

  Creates a class loader that finds resources for the supplied class that may not be in the class' package. You can use this within base classes by passing getClass() to load resources for a derived class.

  Parameters:
    `resourceOwner` - is the owner of the resource

### CWClassLoader

    public CWClassLoader()

  Creates a class loader that finds resources for the calling class that may not be in the class' package. Use this only within classes that are directly looking up their resources.

Method Detail

### findResource

    public URL findResource(String search)

  Overrides:
    `findResource` in class `ClassLoader`

### adjustPackageSearch

    private String adjustPackageSearch(String search)

  Prefix the search with a package prefix, if not already. Skip a leading '/' if present.

### adjustPathSearch

    private String adjustPathSearch(String search)

  Change all but a leading '/' to '.'

### getClassLoader

    public ClassLoader getClassLoader()

### pickLoader

    private static ClassLoader pickLoader(ClassLoader loader1,
                                          ClassLoader loader2)

  Returns 'true' if 'loader2' is a delegation child of 'loader1' [or if 'loader1'=='loader2']. Of course, this works only for classloaders that set their parent pointers correctly. 'null' is interpreted as the primordial loader [i.e., everybody's parent].

### getHome

    public static URL getHome()

  If the application has set the home, it will return the application's home directory, otherwise it returns null.

  Returns:
    Returns the home.

### setHome

    public static void setHome(URL newhome)

  Establish the applications home directory from where additional resources can be found. URL is expected to end with the directory name, not '/'.

  Parameters:
    `newhome` - The home to set.

### findHomeResource

    public static URL findHomeResource(String search)

  Look for the resource in the home directory

  Parameters:
    `search` - must be non-null, non-empty

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Copyright ? 2003-2004
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD