public class ClassReplicaCreator
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static java.util.concurrent.atomic.AtomicInteger |
counter |
private static java.lang.String |
POWERMOCK_INSTANCE_DELEGATOR_FIELD_NAME |
| Constructor and Description |
|---|
ClassReplicaCreator() |
| Modifier and Type | Method and Description |
|---|---|
private <T> void |
addDelegatorField(T delegator,
javassist.CtClass replicaClass)
Add a field to the replica class that holds the instance delegator.
|
private void |
copyFields(javassist.CtClass originalClassAsCtClass,
javassist.CtClass newClass) |
java.lang.Class<?> |
createClassReplica(java.lang.Class<?> clazz) |
<T> java.lang.Class<T> |
createInstanceReplica(T delegator)
Create a class that is a replica of type
T. |
private <T> java.lang.String |
generateReplicaClassName(java.lang.Class<T> clazz) |
private static java.lang.String |
getParametersAsString(java.lang.String[] types) |
private java.lang.String[] |
getParameterTypes(javassist.CtMethod ctMethod) |
private java.lang.String |
getReplicaMethodDelegationCode(java.lang.Class<?> clazz,
javassist.CtMethod ctMethod,
java.lang.String classOrInstanceToDelegateTo) |
private static final java.lang.String POWERMOCK_INSTANCE_DELEGATOR_FIELD_NAME
private static java.util.concurrent.atomic.AtomicInteger counter
public java.lang.Class<?> createClassReplica(java.lang.Class<?> clazz)
public <T> java.lang.Class<T> createInstanceReplica(T delegator)
T. To allow for
partial mocking all calls to non-mocked methods will be delegated to the
delegator.T - The type of the replica class to be created.delegator - The delegator object that will be invoked to allow for partial
mocking.private <T> void addDelegatorField(T delegator,
javassist.CtClass replicaClass)
throws javassist.CannotCompileException
java.lang.Long this
methods adds a new field of type delegator.getClass() to the
replica class.javassist.CannotCompileExceptionprivate <T> java.lang.String generateReplicaClassName(java.lang.Class<T> clazz)
private void copyFields(javassist.CtClass originalClassAsCtClass,
javassist.CtClass newClass)
throws javassist.CannotCompileException,
javassist.NotFoundException
javassist.CannotCompileExceptionjavassist.NotFoundExceptionprivate java.lang.String getReplicaMethodDelegationCode(java.lang.Class<?> clazz,
javassist.CtMethod ctMethod,
java.lang.String classOrInstanceToDelegateTo)
throws javassist.NotFoundException
javassist.NotFoundExceptionprivate java.lang.String[] getParameterTypes(javassist.CtMethod ctMethod)
throws javassist.NotFoundException
javassist.NotFoundExceptionprivate static java.lang.String getParametersAsString(java.lang.String[] types)