public class ClassBodyEvaluator extends SimpleCompiler implements IClassBodyEvaluator
optionalClassLoader serves two purposes:
ByteArrayClassLoader, or by creation of a temporary
ByteArrayClassLoader if not.
A number of "convenience constructors" exist that execute the setup steps instantly.
DEFAULT_CLASS_NAMEBOOT_CLASS_LOADER, SYSTEM_PROPERTY_SOURCE_DEBUGGING_DIR, SYSTEM_PROPERTY_SOURCE_DEBUGGING_ENABLE| Constructor and Description |
|---|
ClassBodyEvaluator() |
ClassBodyEvaluator(Scanner scanner,
Class<?> optionalExtendedType,
Class<?>[] implementedTypes,
ClassLoader optionalParentClassLoader)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setExtendedType(optionalExtendedType);
cbe.setImplementedTypes(implementedTypes);
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
|
ClassBodyEvaluator(Scanner scanner,
ClassLoader optionalParentClassLoader)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
|
ClassBodyEvaluator(Scanner scanner,
String className,
Class<?> optionalExtendedType,
Class<?>[] implementedTypes,
ClassLoader optionalParentClassLoader)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setClassName(className);
cbe.setExtendedType(optionalExtendedType);
cbe.setImplementedTypes(implementedTypes);
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
|
ClassBodyEvaluator(String classBody)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(classBody);
|
ClassBodyEvaluator(String optionalFileName,
InputStream is)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(optionalFileName, is);
|
ClassBodyEvaluator(String optionalFileName,
Reader reader)
Equivalent to
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(optionalFileName, reader);
|
| Modifier and Type | Method and Description |
|---|---|
protected Java.PackageMemberClassDeclaration |
addPackageMemberClassDeclaration(Location location,
Java.CompilationUnit compilationUnit)
To the given
Java.CompilationUnit, add
A class declaration with the configured name, superclass and interfaces
A method declaration with the given return type, name, parameter names and values and thrown exceptions
|
protected Class<?> |
compileToClass(Java.CompilationUnit compilationUnit)
Compiles the given compilation unit, load all generated classes, and return the class with the given name.
|
void |
cook(Scanner scanner)
Scans, parses and compiles a given compilation unit from the given scanner.
|
static Object |
createFastClassBodyEvaluator(Scanner scanner,
Class<?> optionalBaseType,
ClassLoader optionalParentClassLoader)
Use
createInstance(Reader) instead:
IClassBodyEvaluator cbe = CompilerFactoryFactory. |
static Object |
createFastClassBodyEvaluator(Scanner scanner,
String className,
Class<?> optionalExtendedClass,
Class<?>[] implementedInterfaces,
ClassLoader optionalParentClassLoader)
Deprecated.
Use
createInstance(Reader) instead |
Object |
createInstance(Reader reader) |
Class<?> |
getClazz() |
protected Java.CompilationUnit |
makeCompilationUnit(Parser optionalParser)
Creates a
Java.CompilationUnit, sets the default imports, and parses the import declarations. |
void |
setClassName(String className) |
void |
setDefaultImports(String... optionalDefaultImports) |
void |
setExtendedClass(Class<?> optionalExtendedType) |
void |
setExtendedType(Class<?> optionalExtendedClass)
Deprecated.
Use
setExtendedClass(Class) instead |
void |
setImplementedInterfaces(Class<?>[] implementedTypes) |
void |
setImplementedTypes(Class<?>[] implementedInterfaces)
Deprecated.
Use
setImplementedInterfaces(Class[]) instead |
classesToTypes, classToType, compileToClassLoader, cook, cook, cook, cook, equals, getClassLoader, hashCode, main, optionalClassToType, options, options, setCompileErrorHandler, setDebuggingInformation, setNoPermissions, setParentClassLoader, setPermissions, setWarningHandlercook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile, readStringclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitgetClassLoader, setNoPermissions, setPermissionscook, cook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile, setCompileErrorHandler, setDebuggingInformation, setParentClassLoader, setWarningHandlerpublic ClassBodyEvaluator(String classBody) throws CompileException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(classBody);
CompileExceptionClassBodyEvaluator(),
Cookable.cook(String)public ClassBodyEvaluator(@Nullable String optionalFileName, InputStream is) throws CompileException, IOException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(optionalFileName, is);
CompileExceptionIOExceptionClassBodyEvaluator(),
Cookable.cook(String, InputStream)public ClassBodyEvaluator(@Nullable String optionalFileName, Reader reader) throws CompileException, IOException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.cook(optionalFileName, reader);
CompileExceptionIOExceptionClassBodyEvaluator(),
ICookable.cook(String, Reader)public ClassBodyEvaluator(Scanner scanner, @Nullable ClassLoader optionalParentClassLoader) throws CompileException, IOException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
public ClassBodyEvaluator(Scanner scanner, @Nullable Class<?> optionalExtendedType, Class<?>[] implementedTypes, @Nullable ClassLoader optionalParentClassLoader) throws CompileException, IOException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setExtendedType(optionalExtendedType);
cbe.setImplementedTypes(implementedTypes);
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
public ClassBodyEvaluator(Scanner scanner, String className, @Nullable Class<?> optionalExtendedType, Class<?>[] implementedTypes, @Nullable ClassLoader optionalParentClassLoader) throws CompileException, IOException
ClassBodyEvaluator cbe = new ClassBodyEvaluator();
cbe.setClassName(className);
cbe.setExtendedType(optionalExtendedType);
cbe.setImplementedTypes(implementedTypes);
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.cook(scanner);
public ClassBodyEvaluator()
public void setDefaultImports(@Nullable String... optionalDefaultImports)
setDefaultImports in interface IClassBodyEvaluatorpublic void setClassName(String className)
setClassName in interface IClassBodyEvaluatorpublic void setExtendedClass(@Nullable Class<?> optionalExtendedType)
setExtendedClass in interface IClassBodyEvaluator@Deprecated public void setExtendedType(@Nullable Class<?> optionalExtendedClass)
setExtendedClass(Class) insteadsetExtendedType in interface IClassBodyEvaluatorpublic void setImplementedInterfaces(Class<?>[] implementedTypes)
setImplementedInterfaces in interface IClassBodyEvaluator@Deprecated public void setImplementedTypes(Class<?>[] implementedInterfaces)
setImplementedInterfaces(Class[]) insteadsetImplementedTypes in interface IClassBodyEvaluatorpublic void cook(Scanner scanner) throws CompileException, IOException
SimpleCompilerSimpleCompiler.getClassLoader() returns a ClassLoader that allows for access to the compiled classes.cook in class SimpleCompilerCompileExceptionIOExceptionprotected final Java.CompilationUnit makeCompilationUnit(@Nullable Parser optionalParser) throws CompileException, IOException
Java.CompilationUnit, sets the default imports, and parses the import declarations.
If the optionalParser is given, a sequence of IMPORT directives is parsed from it and added to the
compilation unit.
CompileExceptionIOExceptionprotected Java.PackageMemberClassDeclaration addPackageMemberClassDeclaration(Location location, Java.CompilationUnit compilationUnit) throws CompileException
Java.CompilationUnit, add
Java.AbstractClassDeclaration objectCompileExceptionprotected final Class<?> compileToClass(Java.CompilationUnit compilationUnit) throws CompileException
compilationUnit - CompileExceptionpublic Class<?> getClazz()
getClazz in interface IClassBodyEvaluatorpublic Object createInstance(Reader reader) throws CompileException, IOException
createInstance in interface IClassBodyEvaluatorCompileExceptionIOExceptionpublic static Object createFastClassBodyEvaluator(Scanner scanner, @Nullable Class<?> optionalBaseType, @Nullable ClassLoader optionalParentClassLoader) throws CompileException, IOException
createInstance(Reader) instead:
IClassBodyEvaluator cbe = CompilerFactoryFactory.getDefaultCompilerFactory().newClassBodyEvaluator();
if (optionalBaseType != null) {
if (optionalBaseType.isInterface()) {
cbe.setImplementedInterfaces(new Class[] { optionalBaseType });
} else {
cbe.setExtendedClass(optionalBaseType);
}
}
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.createInstance(reader);
CompileExceptionIOExceptioncreateInstance(Reader)@Deprecated public static Object createFastClassBodyEvaluator(Scanner scanner, String className, @Nullable Class<?> optionalExtendedClass, Class<?>[] implementedInterfaces, @Nullable ClassLoader optionalParentClassLoader) throws CompileException, IOException
createInstance(Reader) insteadcreateInstance(Reader) instead:
IClassBodyEvaluator cbe = CompilerFactoryFactory.getDefaultCompilerFactory().newClassBodyEvaluator();
cbe.setExtendedClass(optionalExtendedClass);
cbe.setImplementedInterfaces(implementedInterfaces);
cbe.setParentClassLoader(optionalParentClassLoader);
cbe.createInstance(reader);
CompileExceptionIOExceptioncreateInstance(Reader)Copyright © 2019. All rights reserved.