com.myarch.reloader
Class ReloadPackageController

java.lang.Object
  |
  +--com.myarch.reloader.ReloadPackageController
All Implemented Interfaces:
LoadController

public class ReloadPackageController
extends java.lang.Object
implements LoadController

Allows loading all classes in the packages listed with ReloadPackageController.

Author:
Alexander Ananiev

Constructor Summary
ReloadPackageController()
          Constructs a new ReloadPackageController with the empty package list.
ReloadPackageController(java.util.Collection packages)
          Constructs a new ReloadPackageController with the specified collection of packages.
ReloadPackageController(java.lang.String pPackage)
          Constructs a new ReloadPackageController with a package list containing a single package.
 
Method Summary
 void addPackage(java.lang.String pPackage)
          Add a package to the list of packages with reloadable classes.
 java.util.Collection getPackages()
          Returns the current list (collection) of packages.
 boolean isLoadByParentAllowed(java.lang.String className, java.lang.String mainClassName, java.lang.ClassLoader loader)
          Prohibits using parent loader for loadable classes.
 boolean isReloadAllowed(java.lang.String className, java.lang.String mainClassName, java.lang.ClassLoader loader)
          Returns true if a class belongs to one of the packages from the package list.
 void setPackages(java.util.Collection packages)
          Sets the collection of packages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReloadPackageController

public ReloadPackageController()
Constructs a new ReloadPackageController with the empty package list.

ReloadPackageController

public ReloadPackageController(java.util.Collection packages)
Constructs a new ReloadPackageController with the specified collection of packages.
Parameters:
packages - collection of packages. All classes in these packages can be reloaded.

ReloadPackageController

public ReloadPackageController(java.lang.String pPackage)
Constructs a new ReloadPackageController with a package list containing a single package.
Parameters:
pPackage - package with reloadable classes
Method Detail

setPackages

public void setPackages(java.util.Collection packages)
Sets the collection of packages.
Parameters:
packages - collection of packages. All classes in these packages can be reloaded.

getPackages

public java.util.Collection getPackages()
Returns the current list (collection) of packages.
Returns:
package list

addPackage

public void addPackage(java.lang.String pPackage)
Add a package to the list of packages with reloadable classes.
Parameters:
pPackage - package with reloadable classes

isReloadAllowed

public boolean isReloadAllowed(java.lang.String className,
                               java.lang.String mainClassName,
                               java.lang.ClassLoader loader)
Returns true if a class belongs to one of the packages from the package list.
Specified by:
isReloadAllowed in interface LoadController
Parameters:
className - class name to load
mainClassName - name of the "main" class. Main class is a class passed as a parameter to Reloader.reload() method.
loader - the actual class loader used to load a class.
Returns:
true if class className is allowed to be loaded.

isLoadByParentAllowed

public boolean isLoadByParentAllowed(java.lang.String className,
                                     java.lang.String mainClassName,
                                     java.lang.ClassLoader loader)
Prohibits using parent loader for loadable classes. This ensures that the class is either loaded by the Reloader or ClassNotFoundException is thrown.
Specified by:
isLoadByParentAllowed in interface LoadController
Parameters:
className - class name to load
mainClassName - name of the "main" class. Main class is a class passed as a parameter to Reloader.reload() method.
loader - the actual class loader used to load a class (parent loader).
Returns:
false all the time to prohibit using the parent loader.


Copyright © 2001 Alexander Ananiev & MyArch.com. All Rights Reserved.