public abstract class AbstractMainMockTransformer extends java.lang.Object implements MockTransformer
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractMainMockTransformer.PowerMockExpressionEditor |
Modifier and Type | Field and Description |
---|---|
private static int |
METHOD_CODE_LENGTH_LIMIT |
protected TransformStrategy |
strategy |
private static java.lang.String |
VOID |
Constructor and Description |
---|
AbstractMainMockTransformer(TransformStrategy strategy) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
allowMockingOfPackagePrivateClasses(javassist.CtClass clazz) |
protected void |
allowMockingOfStaticAndFinalAndNativeMethods(javassist.CtClass clazz) |
protected javassist.CtClass |
ensureJvmMethodSizeLimit(javassist.CtClass clazz)
According to JVM specification method size must be lower than 65536 bytes.
|
private java.lang.String |
getCorrectReturnValueType(javassist.CtClass returnTypeAsCtClass) |
private java.lang.String |
getReturnTypeAsString(javassist.CtMethod method) |
private boolean |
isMethodSizeExceeded(javassist.CtMethod method) |
private void |
modifyMethod(javassist.CtMethod method) |
protected void |
removeFinalModifierFromAllStaticFinalFields(javassist.CtClass clazz) |
protected void |
removeFinalModifierFromClass(javassist.CtClass clazz) |
protected void |
setAllConstructorsToPublic(javassist.CtClass clazz) |
protected void |
suppressStaticInitializerIfRequested(javassist.CtClass clazz,
java.lang.String name) |
javassist.CtClass |
transform(javassist.CtClass clazz)
Transforms the
clazz . |
protected abstract javassist.CtClass |
transformMockClass(javassist.CtClass clazz) |
private static final java.lang.String VOID
private static final int METHOD_CODE_LENGTH_LIMIT
protected final TransformStrategy strategy
public AbstractMainMockTransformer(TransformStrategy strategy)
protected java.lang.String allowMockingOfPackagePrivateClasses(javassist.CtClass clazz)
protected void suppressStaticInitializerIfRequested(javassist.CtClass clazz, java.lang.String name) throws javassist.CannotCompileException
javassist.CannotCompileException
protected void removeFinalModifierFromClass(javassist.CtClass clazz)
protected void allowMockingOfStaticAndFinalAndNativeMethods(javassist.CtClass clazz) throws javassist.NotFoundException, javassist.CannotCompileException
javassist.NotFoundException
javassist.CannotCompileException
protected void removeFinalModifierFromAllStaticFinalFields(javassist.CtClass clazz)
protected void setAllConstructorsToPublic(javassist.CtClass clazz)
protected javassist.CtClass ensureJvmMethodSizeLimit(javassist.CtClass clazz) throws javassist.CannotCompileException, javassist.NotFoundException
When the limit is exceeded method's body is replaced by exception throw. Method is then instrumented again to allow mocking and suppression.
javassist.CannotCompileException
javassist.NotFoundException
private boolean isMethodSizeExceeded(javassist.CtMethod method)
private void modifyMethod(javassist.CtMethod method) throws javassist.NotFoundException, javassist.CannotCompileException
javassist.NotFoundException
javassist.CannotCompileException
private java.lang.String getReturnTypeAsString(javassist.CtMethod method) throws javassist.NotFoundException
javassist.NotFoundException
private java.lang.String getCorrectReturnValueType(javassist.CtClass returnTypeAsCtClass)
public javassist.CtClass transform(javassist.CtClass clazz) throws java.lang.Exception
MockTransformer
clazz
.transform
in interface MockTransformer
clazz
- The class to be
transform into a mock enabled class.CtClass
representation of the mocked class.java.lang.Exception
protected abstract javassist.CtClass transformMockClass(javassist.CtClass clazz) throws javassist.CannotCompileException, javassist.NotFoundException
javassist.CannotCompileException
javassist.NotFoundException