package gw.lang.reflect.gs;
/**
* Copyright 2010 Guidewire Software, Inc.
*/
public interface IGosuClassLoader
{
Class<?> findClass( String strName ) throws ClassNotFoundException;
Class<?> getFunctionClassForArity( int length );
void dispose( Class<?> javaClass );
/**
* Reloads all classes that been disposed via the dispose(Class) method since the last time this method was called.
* This method will be a no-op if BytecodeOptions.canReloadClasses() returns false.
*
* @return the results of the class redefinition attempt
*/
ReloadResults reloadDisposedClasses();
void dumpAllClasses();
/**
* Reloads all classes that have changed on disk since they were initially loaded. This is done by tracking the
* associated file's timestamp at the time that the class is compiled, and then comparing the current timestamps
* on all loaded classes to see if they've changed. This method will be a no-op if BytecodeOptions.canReloadClasses()
* returns false.
*
* @return the results of the class redefinition attempt
*/
ReloadResults reloadChangedClasses();
}