2005/5/9

     
 

class ClassLoader

artefaktur
Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

acdk::lang::ClassLoader Class Reference

#include <ClassLoader.h>

Inheritance diagram for acdk::lang::ClassLoader:

acdk::lang::Object acdk::lang::ObjectBase acdk::lang::dmi::StdDispatch acdk::cfgscript::ScriptClassLoader List of all members.

Detailed Description

ClassLoader find and loads new classes.

API: Java Modified Note Will be used with SharedLibrary and/or the common type library.

Author:
Roger Rene Kommer
Version:
Revision
1.25
Date:
Date
2005/04/09 19:26:48
See also:
 ClassLoader

ResourceBundle

Package

Class

Bug:
some function, which enables loaded Java-Classes from remote are not implemented


Public Member Functions

 ClassLoader ()
 ClassLoader (IN(RClassLoader) parent)
virtual RClass defineClass (IN(RString) name, IN(RbyteArray) b, int off, int len)
 This method is not implemented.

virtual RClass findClass (IN(RString) name, bool nothrow=false) throw ( RClassNotFoundException )
 Try to find a class by name.

virtual bool loadClassLibrary (IN(RString) classname)
virtual RString findLibrary (IN(RString) libname)
 Try to find and load a library corresponding the package name.

virtual RString findLibrary2 (IN(RString) libname)
virtual RClass findLoadedClass (IN(RString) name, bool nothrow=true) throw ( RClassNotFoundException )
 find a class, which is already loaded

virtual RClass findSystemClass (IN(RString) name) throw ( RClassNotFoundException )
 just return findClass(name)

virtual RPackage getPackage (IN(RString) name)
 Method is not implemented.

virtual RPackageArray getPackages ()
 Method is not implemented.

virtual RClassLoader getParent ()
virtual acdk::io::RFile findResource (IN(RString) name)
 return a ressource located by name otherwise Nil

virtual acdk::util::RIterator findResources (IN(RString) name)
 return iterator to acdk::io::RFile

virtual acdk::io::RFile getResource (IN(RString) name)
 Different to Java this method returns a File (which may also contain URL).

virtual acdk::io::RReader getResourceAsStream (IN(RString) name)
 is equaly to getResource(name)->getReader()

virtual acdk::util::RIterator getResources (IN(RString) name)
 return iterator to acdk::io::RFile

virtual RClass loadClass (IN(RString) name) throw ( RClassNotFoundException )
virtual RClass loadClass (IN(RString) name, bool resolve) throw ( RClassNotFoundException )
virtual acdk::lang::reflect::RUnit loadUnit (IN(RString) name) throw ( RClassNotFoundException )
 try to load Unit.

virtual bool loadMetaInfoLibrary (IN(RString) classname)
 try to load metainfo library of given class

virtual bool loadDmiProxyLibrary (IN(RString) classname)
 try to load dmi proxy library of given class

virtual void resolveClass (IN(RClass) c)
 Method has no functionality.

virtual void setSigners (IN(RClass) c, IN(RObjectArray) signers)
 Method is not implemented.

void registerClassLoader (IN(RClassLoader) classLoader)

Static Public Member Functions

acdk::io::RFile getSystemResource (IN(RString) name)
acdk::io::RReader getSystemResourceAsStream (IN(RString) name)
 returns getSystemClassLoader()->getResourceAsStream()

acdk::util::RIterator getSystemResources (IN(RString) name)
 return getSystemClassLoader()->getSystemResources(name)

RClassLoader getSystemClassLoader ()
 The normal ClassLoader which loads native ACDK classes and libraries.


Protected Member Functions

bool loadExtInfoLibrary (IN(RString) classname, IN(RString) sufix)

Static Protected Member Functions

 OUT (RClassLoader) _getSystemClassLoader()

Protected Attributes

RClassLoader _parent
RClassLoaderArray _registeredClassLoader


Constructor & Destructor Documentation

acdk::lang::ClassLoader::ClassLoader (   ) 
 

acdk::lang::ClassLoader::ClassLoader (  IN(RClassLoader)  parent  ) 
 


Member Function Documentation

virtual RClass acdk::lang::ClassLoader::defineClass (  IN(RString)  name,
IN(RbyteArray)  b,
int  off,
int  len
)  [virtual]
 

This method is not implemented.

virtual RClass acdk::lang::ClassLoader::findClass (  IN(RString)  name,
bool  nothrow = false
)  throw ( RClassNotFoundException ) [virtual]
 

Try to find a class by name.

If the class currently is not loaded it uses the acdk::lang::SharedLibrary to find a shared library which mapps the full class name or parts of the namespace. It uses following pattern: findClass(acdk::security::GeneralSecurityException) try to load following librares: Unix: acdk_security_GeneralSecurityException.so acdk_security.so acdk.so Windows (Debug-Release): acdk_security_GeneralSecurityException_d.dll acdk_security_d.dll acdk_d.dll

See also:
also ClassLoader::findLibrary
Parameters:
name of the class in one of following forms: acdk::security::GeneralSecurityException acdk.security.GeneralSecurityException acdk/security/GeneralSecurityException
nothrow,if true method does't throw ex if not found
Returns:
the loaded class if found otherwise Nil

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual RString acdk::lang::ClassLoader::findLibrary (  IN(RString)  libname  )  [virtual]
 

Try to find and load a library corresponding the package name.

this method consul the property acdk.lang.ClassLoaderAliase if there are any aliase. It checks param libname starts with a key of an alias. if yes it replaces the beginning of libname with the value defined in the property.

Parameters:
libname name of the library without extends For example acdk_security try to load acdk_security_d.dll (Windows Debug) or acdk_security.so (Unix)
Returns:
the name of the loaded library. Otherwise Nil.

virtual RString acdk::lang::ClassLoader::findLibrary2 (  IN(RString)  libname  )  [virtual]
 

Parameters:
libname name of the library without extends For example acdk_security try to load acdk_security_d.dll (Windows Debug) or acdk_security.so (Unix)
Returns:
the name of the loaded library. Otherwise Nil.

virtual RClass acdk::lang::ClassLoader::findLoadedClass (  IN(RString)  name,
bool  nothrow = true
)  throw ( RClassNotFoundException ) [virtual]
 

find a class, which is already loaded

Parameters:
name of the class
Returns:
the Class corresponds to the name. Nil if the class is not loaded

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual acdk::io::RFile acdk::lang::ClassLoader::findResource (  IN(RString)  name  )  [virtual]
 

return a ressource located by name otherwise Nil

Parameters:
name identifies a file resource like acdk/locale/LocaleInfo.properties

virtual acdk::util::RIterator acdk::lang::ClassLoader::findResources (  IN(RString)  name  )  [virtual]
 

return iterator to acdk::io::RFile

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual RClass acdk::lang::ClassLoader::findSystemClass (  IN(RString)  name  )  throw ( RClassNotFoundException ) [virtual]
 

just return findClass(name)

virtual RPackage acdk::lang::ClassLoader::getPackage (  IN(RString)  name  )  [virtual]
 

Method is not implemented.

virtual RPackageArray acdk::lang::ClassLoader::getPackages (   )  [virtual]
 

Method is not implemented.

virtual RClassLoader acdk::lang::ClassLoader::getParent (   )  [inline, virtual]
 

Returns:
the parent Classloader if any otherwise Nil

virtual acdk::io::RFile acdk::lang::ClassLoader::getResource (  IN(RString)  name  )  [virtual]
 

Different to Java this method returns a File (which may also contain URL).

virtual acdk::io::RReader acdk::lang::ClassLoader::getResourceAsStream (  IN(RString)  name  )  [virtual]
 

is equaly to getResource(name)->getReader()

virtual acdk::util::RIterator acdk::lang::ClassLoader::getResources (  IN(RString)  name  )  [virtual]
 

return iterator to acdk::io::RFile

RClassLoader acdk::lang::ClassLoader::getSystemClassLoader (   )  [static]
 

The normal ClassLoader which loads native ACDK classes and libraries.

Returns:
the SystemClassLoader

acdk::io::RFile acdk::lang::ClassLoader::getSystemResource (  IN(RString)  name  )  [static]
 

acdk::io::RReader acdk::lang::ClassLoader::getSystemResourceAsStream (  IN(RString)  name  )  [static]
 

returns getSystemClassLoader()->getResourceAsStream()

acdk::util::RIterator acdk::lang::ClassLoader::getSystemResources (  IN(RString)  name  )  [static]
 

return getSystemClassLoader()->getSystemResources(name)

virtual RClass acdk::lang::ClassLoader::loadClass (  IN(RString)  name,
bool  resolve
)  throw ( RClassNotFoundException ) [virtual]
 

Parameters:
resolve has no effect

virtual RClass acdk::lang::ClassLoader::loadClass (  IN(RString)  name  )  throw ( RClassNotFoundException ) [virtual]
 

virtual bool acdk::lang::ClassLoader::loadClassLibrary (  IN(RString)  classname  )  [virtual]
 

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual bool acdk::lang::ClassLoader::loadDmiProxyLibrary (  IN(RString)  classname  )  [virtual]
 

try to load dmi proxy library of given class

Returns:
false if no meta info library can be found

Reimplemented in acdk::cfgscript::ScriptClassLoader.

bool acdk::lang::ClassLoader::loadExtInfoLibrary (  IN(RString)  classname,
IN(RString)  sufix
)  [protected]
 

virtual bool acdk::lang::ClassLoader::loadMetaInfoLibrary (  IN(RString)  classname  )  [virtual]
 

try to load metainfo library of given class

Returns:
false if no meta info library can be found

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual acdk::lang::reflect::RUnit acdk::lang::ClassLoader::loadUnit (  IN(RString)  name  )  throw ( RClassNotFoundException ) [virtual]
 

try to load Unit.

Tries to load also shared library

acdk::lang::ClassLoader::OUT (  RClassLoader   )  [static, protected]
 

void acdk::lang::ClassLoader::registerClassLoader (  IN(RClassLoader)  classLoader  )  [inline]
 

virtual void acdk::lang::ClassLoader::resolveClass (  IN(RClass)  c  )  [virtual]
 

Method has no functionality.

Reimplemented in acdk::cfgscript::ScriptClassLoader.

virtual void acdk::lang::ClassLoader::setSigners (  IN(RClass)  c,
IN(RObjectArray)  signers
)  [virtual]
 

Method is not implemented.


Member Data Documentation

RClassLoader acdk::lang::ClassLoader::_parent [protected]
 

RClassLoaderArray acdk::lang::ClassLoader::_registeredClassLoader [protected]