org.opt4j.core.config
Class ModuleAutoFinder

java.lang.Object
  extended by org.opt4j.core.config.ModuleAutoFinder
All Implemented Interfaces:
ModuleList

public class ModuleAutoFinder
extends java.lang.Object
implements ModuleList

The ModuleAutoFinder searches the classpath for all PropertyModules that are not annotated with Ignore.


Field Summary
protected  Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> accept
           
protected  java.lang.ClassLoader classLoader
           
protected  Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> ignore
           
protected  java.util.Set<ModuleAutoFinderListener> listeners
           
 
Constructor Summary
ModuleAutoFinder()
          Constructs a ModuleAutoFinder.
ModuleAutoFinder(Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> accept, Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> ignore)
          Constructs a ModuleAutoFinder.
 
Method Summary
 void addListener(ModuleAutoFinderListener listener)
          Add a ModuleAutoFinderListener.
protected  java.util.Collection<java.lang.Class<? extends com.google.inject.Module>> getAll()
          Returns all not abstract classes that implement PropertyModule.
protected  java.util.List<java.lang.Class<?>> getAllClasses(java.io.File directory)
          Retrieves all Classes from one directory.
protected  java.util.List<java.lang.Class<?>> getAllClasses(java.io.File root, java.io.File file)
          Recursive methods searching for classes in a root directory.
protected  java.util.List<java.lang.Class<?>> getAllClasses(java.util.zip.ZipFile zipFile)
          Retrieves all Classes from a ZipFile (Jar archive).
 java.util.Collection<java.lang.Class<? extends com.google.inject.Module>> getModules()
          Returns the classes of all modules.
protected  void invokeErr(java.lang.String message)
          Invoke an err message for the ModuleAutoFinderListener.
protected  void invokeOut(java.lang.String message)
          Invoke an out message for the ModuleAutoFinderListener.
protected  boolean isJar(java.io.File file)
          Returns true if the file is a Jar archive.
 void removeListener(ModuleAutoFinderListener listener)
          Remove a ModuleAutoFinderListener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

accept

protected final Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> accept

ignore

protected final Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> ignore

listeners

protected final java.util.Set<ModuleAutoFinderListener> listeners

classLoader

protected java.lang.ClassLoader classLoader
Constructor Detail

ModuleAutoFinder

@Inject
public ModuleAutoFinder()
Constructs a ModuleAutoFinder.


ModuleAutoFinder

public ModuleAutoFinder(Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> accept,
                        Transformer<java.lang.Class<? extends com.google.inject.Module>,java.lang.Boolean> ignore)
Constructs a ModuleAutoFinder.

Parameters:
accept - the accept transformer
ignore - the ignore transformer
Method Detail

getModules

public java.util.Collection<java.lang.Class<? extends com.google.inject.Module>> getModules()
Description copied from interface: ModuleList
Returns the classes of all modules.

Specified by:
getModules in interface ModuleList
Returns:
the classes of all modules

getAll

protected java.util.Collection<java.lang.Class<? extends com.google.inject.Module>> getAll()
Returns all not abstract classes that implement PropertyModule.

Returns:
all property modules

isJar

protected boolean isJar(java.io.File file)
Returns true if the file is a Jar archive.

Parameters:
file - the tested file
Returns:
true if the file is a Jar archive

getAllClasses

protected java.util.List<java.lang.Class<?>> getAllClasses(java.io.File directory)
Retrieves all Classes from one directory.

Parameters:
directory - the directory
Returns:
all classes in a list

getAllClasses

protected java.util.List<java.lang.Class<?>> getAllClasses(java.io.File root,
                                                           java.io.File file)
Recursive methods searching for classes in a root directory.

Parameters:
root - the root directory
file - the current file
Returns:
the list of all found classes

getAllClasses

protected java.util.List<java.lang.Class<?>> getAllClasses(java.util.zip.ZipFile zipFile)
Retrieves all Classes from a ZipFile (Jar archive).

Parameters:
zipFile - the Jar archive
Returns:
the list of all classes

invokeOut

protected void invokeOut(java.lang.String message)
Invoke an out message for the ModuleAutoFinderListener.

Parameters:
message - the message

invokeErr

protected void invokeErr(java.lang.String message)
Invoke an err message for the ModuleAutoFinderListener.

Parameters:
message - the message

addListener

public void addListener(ModuleAutoFinderListener listener)
Add a ModuleAutoFinderListener.

Parameters:
listener - the listener to be added

removeListener

public void removeListener(ModuleAutoFinderListener listener)
Remove a ModuleAutoFinderListener.

Parameters:
listener - the listener to be removed
See Also:
addListener(org.opt4j.core.config.ModuleAutoFinderListener)