public class ClassRegister
extends java.lang.Object
Modifier | Constructor and Description |
---|---|
|
ClassRegister() |
|
ClassRegister(java.lang.ClassLoader classLoader) |
protected |
ClassRegister(java.util.Map<java.lang.String,ClassDeclaration<?,?>> classDeclarations,
java.util.Map<java.lang.String,byte[]> classBytecodes,
java.util.Map<MethodDeclaration<?,?>,MethodImplementation<?>> methodDefinitions,
java.util.Set<MethodDeclaration<?,?>> undefinedMethods,
boolean allowPartialImplementation,
java.lang.ClassLoader classLoader,
ByteArrayClassLoader stubClassLoader) |
Modifier and Type | Method and Description |
---|---|
ClassRegister |
asPartialImplementation()
partialImplementation defaults to true. |
java.util.Map<java.lang.String,byte[]> |
generateClasses() |
<T> java.util.Optional<ClassDefinition<?,T>> |
getClassDefinition(ClassSignature<T> classSignature) |
java.util.Optional<ClassDefinition<?,?>> |
getClassDefinition(java.lang.String className) |
java.lang.ClassLoader |
getClassLoader() |
boolean |
isClassOverridingSupported() |
boolean |
isFullyImplemented() |
boolean |
isPartiallyImplemented()
Is the class space not
fully implemented , and
is partial implementation allowed
and possible. |
java.lang.ClassLoader |
loadClasses()
Generate the classes and load them into the runtime.
|
void |
validate() |
<T> ClassDefinition<java.lang.Void,T> |
withClassSignature(ClassSignature<T> classSignature) |
ClassRegister |
withClassSignatures(ClassSignature<?>... classSignatures) |
ClassRegister |
withPartialImplementation(boolean allowPartialImplementation)
Derive a class space allowing for partial implementation.
|
public ClassRegister()
public ClassRegister(java.lang.ClassLoader classLoader)
protected ClassRegister(java.util.Map<java.lang.String,ClassDeclaration<?,?>> classDeclarations, java.util.Map<java.lang.String,byte[]> classBytecodes, java.util.Map<MethodDeclaration<?,?>,MethodImplementation<?>> methodDefinitions, java.util.Set<MethodDeclaration<?,?>> undefinedMethods, boolean allowPartialImplementation, java.lang.ClassLoader classLoader, ByteArrayClassLoader stubClassLoader)
public <T> ClassDefinition<java.lang.Void,T> withClassSignature(ClassSignature<T> classSignature)
public ClassRegister withClassSignatures(ClassSignature<?>... classSignatures)
public boolean isClassOverridingSupported()
public java.lang.ClassLoader getClassLoader()
public <T> java.util.Optional<ClassDefinition<?,T>> getClassDefinition(ClassSignature<T> classSignature)
public java.util.Optional<ClassDefinition<?,?>> getClassDefinition(java.lang.String className)
public void validate()
public boolean isFullyImplemented()
public boolean isPartiallyImplemented()
fully implemented
, and
is partial implementation allowed
and possible.public ClassRegister asPartialImplementation()
partialImplementation
defaults to true.withPartialImplementation(boolean)
public ClassRegister withPartialImplementation(boolean allowPartialImplementation)
Partial implementation will attempt to still generate valid classes when some method implementations are not provided. This is achieved by providing default implementations to throw an error on invocation.
allowPartialImplementation
- true if partial implementation should be allowed, false otherwisepublic java.util.Map<java.lang.String,byte[]> generateClasses()
public java.lang.ClassLoader loadClasses()