public abstract class AbstractClassloaderExecutor extends java.lang.Object implements ClassloaderExecutor
Constructor and Description |
---|
AbstractClassloaderExecutor() |
Modifier and Type | Method and Description |
---|---|
private void |
assertArgumentNotNull(java.lang.Object object,
java.lang.String argumentName) |
private java.lang.Object[] |
cloneArguments(java.lang.Object[] arguments,
DeepClonerSPI deepCloner) |
private java.lang.Object |
cloneResult(java.lang.Object result) |
private DeepClonerSPI |
createDeepCloner(java.lang.ClassLoader classLoader) |
<T> T |
execute(java.util.concurrent.Callable<T> callable) |
protected abstract java.lang.Object |
execute(java.lang.Object instance,
java.lang.reflect.Method method,
java.lang.Object... arguments) |
void |
execute(java.lang.Runnable runnable) |
(package private) java.lang.Object |
executeWithClassLoader(java.lang.Object instance,
java.lang.reflect.Method method,
java.lang.ClassLoader classloader,
java.lang.Object[] arguments) |
private java.lang.Object |
getResult(java.lang.reflect.Method method,
java.lang.Object objectLoadedWithClassloader,
java.lang.Object[] argumentsLoadedByClassLoader) |
public <T> T execute(java.util.concurrent.Callable<T> callable)
execute
in interface ClassloaderExecutor
public void execute(java.lang.Runnable runnable)
execute
in interface ClassloaderExecutor
private void assertArgumentNotNull(java.lang.Object object, java.lang.String argumentName)
protected abstract java.lang.Object execute(java.lang.Object instance, java.lang.reflect.Method method, java.lang.Object... arguments)
java.lang.Object executeWithClassLoader(java.lang.Object instance, java.lang.reflect.Method method, java.lang.ClassLoader classloader, java.lang.Object[] arguments)
private java.lang.Object cloneResult(java.lang.Object result)
private java.lang.Object getResult(java.lang.reflect.Method method, java.lang.Object objectLoadedWithClassloader, java.lang.Object[] argumentsLoadedByClassLoader)
private java.lang.Object[] cloneArguments(java.lang.Object[] arguments, DeepClonerSPI deepCloner)
private DeepClonerSPI createDeepCloner(java.lang.ClassLoader classLoader)