SOMA.agent.classLoading
Class ClassManager

java.lang.Object
  extended bySOMA.agent.classLoading.ClassManager

public class ClassManager
extends java.lang.Object

Permette di caricare e salvare classi dal file system.

Le classi non sono caricate in formato .class, ma sotto forma di byte[] in modo da essere direttamente utilizzabili dai classloader per definire classi.

Author:
Livio Profiri

Nested Class Summary
static class ClassManager.ClassManagerException
          Eccezione del ClassManager.
 
Field Summary
(package private)  java.io.File classPathDirectory
          Punto di partenza per la ricerca delle classi.
(package private)  boolean createDirectory
           
 
Constructor Summary
ClassManager(java.lang.String classPath)
          Costruttore.
ClassManager(java.lang.String classPath, boolean createDirectory)
          Costruttore.
 
Method Summary
 java.lang.String getClassPathDirectory()
          Restituisce classPathDirectory.
 boolean getCreateDirectory()
          Restituisce createDirectory.
 byte[] loadClassFile(java.lang.String className)
          Carica un file ".class" da disco andandolo a cercare nella directory specificata da classPathDirectory.
(package private)  void saveClassFile(java.lang.String className, byte[] data)
          Salva un file ".class" su disco andandolo a cercare nella directory specificata da classPathDirectory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classPathDirectory

java.io.File classPathDirectory
Punto di partenza per la ricerca delle classi. Voglio che termini con un FILE.separator, in modo da poter subito concatenare il nome della classe cercata.


createDirectory

final boolean createDirectory
Constructor Detail

ClassManager

public ClassManager(java.lang.String classPath)
             throws ClassManager.ClassManagerException
Costruttore. Equivale all'altro costruttore con createDirectory a false


ClassManager

public ClassManager(java.lang.String classPath,
                    boolean createDirectory)
             throws ClassManager.ClassManagerException
Costruttore.

Parameters:
classPath - Il direttorio in cui ricercare le classi.
Method Detail

getClassPathDirectory

public java.lang.String getClassPathDirectory()
Restituisce classPathDirectory.


getCreateDirectory

public boolean getCreateDirectory()
Restituisce createDirectory.


loadClassFile

public byte[] loadClassFile(java.lang.String className)
                     throws java.io.IOException
Carica un file ".class" da disco andandolo a cercare nella directory specificata da classPathDirectory.

Parameters:
className - Il nome della classe
Returns:
I byte del file.
Throws:
java.io.IOException

saveClassFile

void saveClassFile(java.lang.String className,
                   byte[] data)
             throws ClassManager.ClassManagerException,
                    java.io.IOException
Salva un file ".class" su disco andandolo a cercare nella directory specificata da classPathDirectory.

Parameters:
className - Il nome della classe
data - I byte del file.
Throws:
ClassManager.ClassManagerException
java.io.IOException


Copyright © 2004 Luca Foschini