## org.opencyc.javashell
Class NClassLoader

    java.lang.Object
      |
      +--java.lang.ClassLoader
            |
            +--org.opencyc.javashell.NClassLoader

public class NClassLoader
extends java.lang.ClassLoader

`NClassLoader` is an extension of `ClassLoader`. It offers extra features such as class reloading and the ability to specify a base directory to load classes from.

Constructor Summary
`NClassLoader(java.lang.ClassLoader parent)` Uses another class loader - TODO!
`NClassLoader(java.lang.String strRepositoryPath, java.lang.String strExtension, java.lang.String strJarDir)` Constructs `NClassLoader` and sets the base dir, file extension and jar dir.

Method Summary
`java.lang.Class` `findClass(java.lang.String name)`
`java.lang.Class` `loadClass(java.lang.String name)` Loads a class by name.
`java.lang.Class` `loadClass(java.lang.String name, boolean resolve)` Loads a class by name with or without resolving it first.
`java.lang.Class` `loadClass(java.lang.String base, java.lang.String name)` Loads a class by name from a base directory.
`void` `setExtension(java.lang.String ext)` Sets the file extension of the classes you are loading, the default extension is .class
`void` `setJarDir(java.lang.String jardir)` Sets the jar directory where your classpath will be built from TODO!
`void` `setRoot(java.lang.String root)` Sets the root directory from where classes will be loaded.

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

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

Constructor Detail

### NClassLoader

    public NClassLoader(java.lang.ClassLoader parent)

  Uses another class loader - TODO!
  Parameters:
    `parent` - `ClassLoader`

### NClassLoader

    public NClassLoader(java.lang.String strRepositoryPath,
                        java.lang.String strExtension,
                        java.lang.String strJarDir)

  Constructs `NClassLoader` and sets the base dir, file extension and jar dir.
  Parameters:
    `strRepositoryPath` - `String` containing root directory.
    `strExtension` - `String` containing the file extension.
    `strJarDir` - `String` containing the jar directory.

Method Detail

### setRoot

    public void setRoot(java.lang.String root)

  Sets the root directory from where classes will be loaded.
  Parameters:
    `root` - `String` containing root directory.

### setExtension

    public void setExtension(java.lang.String ext)

  Sets the file extension of the classes you are loading, the default extension is .class
  Parameters:
    `ext` - `String` containing the file extension.

### setJarDir

    public void setJarDir(java.lang.String jardir)

  Sets the jar directory where your classpath will be built from TODO!
  Parameters:
    `jardir` - `String` containing the jar directory.

### loadClass

    public java.lang.Class loadClass(java.lang.String name)
                              throws java.lang.ClassNotFoundException

  Loads a class by name.
  Overrides:
    `loadClass` in class `java.lang.ClassLoader`
  Parameters:
    `name` - `String` containing class name.
  Returns:
    `Class` matching the name.
  Throws:
    ``ClassNotFoundException`` -

### loadClass

    public java.lang.Class loadClass(java.lang.String base,
                                     java.lang.String name)
                              throws java.lang.ClassNotFoundException

  Loads a class by name from a base directory.
  Parameters:
    `base` - `String` containing the base directory.
    `name` - `String` containing class name.
  Returns:
    `Class` matching the name that exists in the base directory.
  Throws:
    ``ClassNotFoundException`` -

### loadClass

    public java.lang.Class loadClass(java.lang.String name,
                                     boolean resolve)
                              throws java.lang.ClassNotFoundException

  Loads a class by name with or without resolving it first.
  Overrides:
    `loadClass` in class `java.lang.ClassLoader`
  Parameters:
    `name` - `String` containing class name.
    `resolve` - `boolean` whether to resolve the class or not.
  Returns:
    `Class` matching the name.
  Throws:
    ``ClassNotFoundException`` -

### findClass

    public java.lang.Class findClass(java.lang.String name)
                              throws java.lang.ClassNotFoundException

  Overrides:
    `findClass` in class `java.lang.ClassLoader`