org.atzberger.application.selm_builder
Class Atz_ClassLoader

java.lang.Object
  extended by org.atzberger.application.selm_builder.Atz_ClassLoader

public class Atz_ClassLoader
extends java.lang.Object

Custom class loader allowing for retrieval of object instances for both the default classes implemented with this application and future extension classes supplied by users. The loader scans the class path associated with the build to find classes.

Automatic loading of objects of a generic type are also supported, such as loading all editor panels for a particular data type during initialization of the application.

The class loader allow for reflection features to be used in Java allowing for instantiation of new objects by providing a compiled class file and simply knowing the class name and constructor.

Author:
Paul J. Atzberger
See Also:
http://www.atzberger.org

Field Summary
static java.util.Hashtable registryOfClasses
           
 
Constructor Summary
Atz_ClassLoader()
           
 
Method Summary
static void addToRegistry(java.lang.String fullClassName, Atz_Object_Factory atz_Object_Factory)
           
 void Atz_ClassLoader()
           
static java.lang.Object loadAndInstantiateClass(java.lang.String className)
           
static java.lang.Object loadAndInstantiateClass(java.lang.String className, java.lang.Class[] partypes, java.lang.Object[] args, java.lang.ClassLoader classLoader)
           
static java.lang.Object loadAndInstantiateClass(java.lang.String className, java.lang.ClassLoader classLoader)
           
static java.lang.Object loadAndInstantiateClass(java.lang.String className, java.lang.Object[] args, java.lang.ClassLoader classLoader)
           
static java.lang.Object loadAndInstantiateClass(java.lang.String className, java.lang.Object arg, java.lang.ClassLoader classLoader)
           
static javax.swing.JPanel[] loadAndInstantiatePanelClassesStartingWith(java.lang.String startWithStr, java.lang.String packageName, application_SharedData applSharedData_in)
           
static javax.swing.JPanel[] loadAndInstantiatePanelClassesStartingWith(java.lang.String startWithStr, java.lang.String packageName, java.lang.ClassLoader classLoader, application_SharedData applSharedData_in)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

registryOfClasses

public static java.util.Hashtable registryOfClasses
Constructor Detail

Atz_ClassLoader

public Atz_ClassLoader()
Method Detail

Atz_ClassLoader

public void Atz_ClassLoader()

addToRegistry

public static void addToRegistry(java.lang.String fullClassName,
                                 Atz_Object_Factory atz_Object_Factory)

loadAndInstantiatePanelClassesStartingWith

public static javax.swing.JPanel[] loadAndInstantiatePanelClassesStartingWith(java.lang.String startWithStr,
                                                                              java.lang.String packageName,
                                                                              application_SharedData applSharedData_in)

loadAndInstantiatePanelClassesStartingWith

public static javax.swing.JPanel[] loadAndInstantiatePanelClassesStartingWith(java.lang.String startWithStr,
                                                                              java.lang.String packageName,
                                                                              java.lang.ClassLoader classLoader,
                                                                              application_SharedData applSharedData_in)

loadAndInstantiateClass

public static java.lang.Object loadAndInstantiateClass(java.lang.String className)

loadAndInstantiateClass

public static java.lang.Object loadAndInstantiateClass(java.lang.String className,
                                                       java.lang.ClassLoader classLoader)

loadAndInstantiateClass

public static java.lang.Object loadAndInstantiateClass(java.lang.String className,
                                                       java.lang.Object arg,
                                                       java.lang.ClassLoader classLoader)

loadAndInstantiateClass

public static java.lang.Object loadAndInstantiateClass(java.lang.String className,
                                                       java.lang.Object[] args,
                                                       java.lang.ClassLoader classLoader)

loadAndInstantiateClass

public static java.lang.Object loadAndInstantiateClass(java.lang.String className,
                                                       java.lang.Class[] partypes,
                                                       java.lang.Object[] args,
                                                       java.lang.ClassLoader classLoader)