Package gw.internal.gosu.compiler
Class SingleServingGosuClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- gw.internal.gosu.compiler.SingleServingGosuClassLoader
-
- All Implemented Interfaces:
IGosuClassLoader
- Direct Known Subclasses:
DiscreteClassLoader
public class SingleServingGosuClassLoader extends java.lang.ClassLoader implements IGosuClassLoader
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.String>_classesprivate GosuClassLoader_parent(package private) static java.util.Map<java.lang.String,java.lang.Class>CACHE
-
Constructor Summary
Constructors Constructor Description SingleServingGosuClassLoader()SingleServingGosuClassLoader(GosuClassLoader parent)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.Class_defineClass(ICompilableType gsClass)voidassignParent(java.lang.ClassLoader classLoader)static voidclearCache()static voidclearCache(java.lang.String gosuClassName)private byte[]compileClass(ICompilableType type, boolean debug)java.lang.ClassdefineClass(java.lang.String name, byte[] bytes)voiddumpAllClasses()voidevictLoader(java.lang.String packageName)java.lang.Class<?>findClass(java.lang.String strName)java.lang.ClassLoadergetActualLoader()byte[]getBytes(ICompilableType gsClass)static java.lang.ClassgetCached(ICompilableType gsClass)IJavaTypegetFunctionClassForArity(boolean hasReturn, int length)booleanisDisposed()protected java.lang.Class<?>loadClass(java.lang.String name, boolean resolve)private booleanshouldCache(ICompilableType gsClass)protected voidunload(java.lang.String gosuClassName)booleanwaitForLoaderToUnload(java.lang.String packageName, long millisToWait)-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface gw.lang.reflect.gs.IGosuClassLoader
loadClass
-
-
-
-
Field Detail
-
CACHE
static final java.util.Map<java.lang.String,java.lang.Class> CACHE
-
_parent
private GosuClassLoader _parent
-
_classes
private java.util.Set<java.lang.String> _classes
-
-
Constructor Detail
-
SingleServingGosuClassLoader
SingleServingGosuClassLoader()
-
SingleServingGosuClassLoader
SingleServingGosuClassLoader(GosuClassLoader parent)
-
-
Method Detail
-
getCached
public static java.lang.Class getCached(ICompilableType gsClass)
-
clearCache
public static void clearCache()
-
clearCache
public static void clearCache(java.lang.String gosuClassName)
-
findClass
public java.lang.Class<?> findClass(java.lang.String strName) throws java.lang.ClassNotFoundException- Specified by:
findClassin interfaceIGosuClassLoader- Overrides:
findClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
unload
protected void unload(java.lang.String gosuClassName)
-
loadClass
protected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException- Overrides:
loadClassin classjava.lang.ClassLoader- Throws:
java.lang.ClassNotFoundException
-
dumpAllClasses
public void dumpAllClasses()
- Specified by:
dumpAllClassesin interfaceIGosuClassLoader
-
waitForLoaderToUnload
public boolean waitForLoaderToUnload(java.lang.String packageName, long millisToWait)- Specified by:
waitForLoaderToUnloadin interfaceIGosuClassLoader
-
evictLoader
public void evictLoader(java.lang.String packageName)
- Specified by:
evictLoaderin interfaceIGosuClassLoader
-
_defineClass
java.lang.Class _defineClass(ICompilableType gsClass)
-
shouldCache
private boolean shouldCache(ICompilableType gsClass)
-
compileClass
private byte[] compileClass(ICompilableType type, boolean debug)
-
getFunctionClassForArity
public IJavaType getFunctionClassForArity(boolean hasReturn, int length)
- Specified by:
getFunctionClassForArityin interfaceIGosuClassLoader
-
getActualLoader
public java.lang.ClassLoader getActualLoader()
- Specified by:
getActualLoaderin interfaceIGosuClassLoader
-
defineClass
public java.lang.Class defineClass(java.lang.String name, byte[] bytes)- Specified by:
defineClassin interfaceIGosuClassLoader
-
getBytes
public byte[] getBytes(ICompilableType gsClass)
- Specified by:
getBytesin interfaceIGosuClassLoader
-
assignParent
public void assignParent(java.lang.ClassLoader classLoader)
- Specified by:
assignParentin interfaceIGosuClassLoader
-
isDisposed
public boolean isDisposed()
-
-