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 TypeMethodDescriptionvoidassignParent(ClassLoader parent) private static byte[]compileClass(ICompilableType type, boolean debug) private ClassdefineClass(ICompilableTypeInternal gsClass, boolean useSingleServingLoader) defineClass(String name, byte[] bytes) private ClassdefineClassInLoader(ICompilableTypeInternal gsClass, boolean forceSingleServingLoader) private Class<?>defineClassInSingleServingLoader(ICompilableTypeInternal gsClass, SingleServingGosuClassLoader loader) voidvoidevictLoader(String packageName) Class<?>private ClassfindOrDefineClass(ICompilableTypeInternal gsClass) byte[]getBytes(ICompilableType gsClass) private ClassLoadergetClassLoader(ICompilableTypeInternal enclosingType) (package private) DiscreteClassLoadergetDiscreteNamespaceLoader(String namespace) getFunctionClassForArity(boolean hasReturn, int length) private SingleServingGosuClassLoader(package private) booleanhasDiscreteNamespace(String namespace) private voidinit()static GosuClassLoaderinstance()private booleanbooleanisLoaderUnloaded(String namespace) private booleanprivate booleanisThrowawayProgram(ICompilableType gsClass) (package private) booleanshouldDebugClass(ICompilableType gsClass) private booleanbooleanwaitForLoaderToUnload(String packageName, long millisToWait)
-
Field Details
-
_discreteLoaders
-
_loader
-
-
Constructor Details
-
GosuClassLoader
-
-
Method Details
-
instance
-
dumpAllClasses
public void dumpAllClasses()- Specified by:
dumpAllClassesin interfaceIGosuClassLoader
-
getBytes
- Specified by:
getBytesin interfaceIGosuClassLoader
-
assignParent
- Specified by:
assignParentin interfaceIGosuClassLoader
-
init
private void init() -
getLoader
-
loadClass
- Specified by:
loadClassin interfaceIGosuClassLoader- Throws:
ClassNotFoundException
-
findClass
- Specified by:
findClassin interfaceIGosuClassLoader- Throws:
ClassNotFoundException
-
getFunctionClassForArity
- Specified by:
getFunctionClassForArityin 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:
getActualLoaderin interfaceIGosuClassLoader
-
defineClass
- Specified by:
defineClassin interfaceIGosuClassLoader
-
waitForLoaderToUnload
- Specified by:
waitForLoaderToUnloadin interfaceIGosuClassLoader
-
evictLoader
- Specified by:
evictLoaderin interfaceIGosuClassLoader
-