Package gw.internal.gosu.compiler
Class GosuClassLoader
java.lang.Object
gw.internal.gosu.compiler.GosuClassLoader
- All Implemented Interfaces:
IGosuClassLoader
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
assignParent
(ClassLoader parent) private static byte[]
compileClass
(ICompilableType type, boolean debug) private Class
defineClass
(ICompilableTypeInternal gsClass, boolean useSingleServingLoader) defineClass
(String name, byte[] bytes) private Class
defineClassInLoader
(ICompilableTypeInternal gsClass, boolean forceSingleServingLoader) private Class<?>
defineClassInSingleServingLoader
(ICompilableTypeInternal gsClass, SingleServingGosuClassLoader loader) void
void
evictLoader
(String packageName) Class<?>
private Class
findOrDefineClass
(ICompilableTypeInternal gsClass) byte[]
getBytes
(ICompilableType gsClass) private ClassLoader
getClassLoader
(ICompilableTypeInternal enclosingType) (package private) DiscreteClassLoader
getDiscreteNamespaceLoader
(String namespace) getFunctionClassForArity
(boolean hasReturn, int length) private SingleServingGosuClassLoader
(package private) boolean
hasDiscreteNamespace
(String namespace) private void
init()
static GosuClassLoader
instance()
private boolean
boolean
isLoaderUnloaded
(String namespace) private boolean
private boolean
isThrowawayProgram
(ICompilableType gsClass) (package private) boolean
shouldDebugClass
(ICompilableType gsClass) private boolean
boolean
waitForLoaderToUnload
(String packageName, long millisToWait)
-
Field Details
-
_discreteLoaders
-
_loader
-
-
Constructor Details
-
GosuClassLoader
-
-
Method Details
-
instance
-
dumpAllClasses
public void dumpAllClasses()- Specified by:
dumpAllClasses
in interfaceIGosuClassLoader
-
getBytes
- Specified by:
getBytes
in interfaceIGosuClassLoader
-
assignParent
- Specified by:
assignParent
in interfaceIGosuClassLoader
-
init
private void init() -
getLoader
-
loadClass
- Specified by:
loadClass
in interfaceIGosuClassLoader
- Throws:
ClassNotFoundException
-
findClass
- Specified by:
findClass
in interfaceIGosuClassLoader
- Throws:
ClassNotFoundException
-
getFunctionClassForArity
- Specified by:
getFunctionClassForArity
in interfaceIGosuClassLoader
-
defineClass
public Class defineClass(ICompilableTypeInternal gsClass, boolean useSingleServingLoader) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
hasDiscreteNamespace
-
getDiscreteNamespaceLoader
-
isLoaderUnloaded
-
isEnclosingTypeInSingleServingLoader
-
findOrDefineClass
- Throws:
ClassNotFoundException
-
defineClassInLoader
private Class defineClassInLoader(ICompilableTypeInternal gsClass, boolean forceSingleServingLoader) -
getOrCreateSingleServingLoader
private SingleServingGosuClassLoader getOrCreateSingleServingLoader(ICompilableTypeInternal gsClass) -
isOldStyleGosuAnnotationExpression
-
getClassLoader
-
defineClassInSingleServingLoader
private Class<?> defineClassInSingleServingLoader(ICompilableTypeInternal gsClass, SingleServingGosuClassLoader loader) -
shouldUseSingleServingLoader
-
shouldDebugClass
-
defineAndMaybeVerify
-
compileClass
-
isThrowawayProgram
-
getActualLoader
- Specified by:
getActualLoader
in interfaceIGosuClassLoader
-
defineClass
- Specified by:
defineClass
in interfaceIGosuClassLoader
-
waitForLoaderToUnload
- Specified by:
waitForLoaderToUnload
in interfaceIGosuClassLoader
-
evictLoader
- Specified by:
evictLoader
in interfaceIGosuClassLoader
-