for (int i = 0; i < parameterTypes.length; i++) {
newParameterTypes[i] = parameterTypes[i];
}
newParameterTypes[parameterTypes.length] =
ClassPool.getDefault().get(TransformationUtil.JOIN_POINT_MANAGER_CLASS);
CtConstructor newConstructor = CtNewConstructor.make(
newParameterTypes,
constructor.getExceptionTypes(),
CtNewConstructor.PASS_NONE,
null,
CtMethod.ConstParameter.string(constructor.getSignature()),
ctClass
);
newConstructor.setBody(constructor, null);
newConstructor.setModifiers(accessFlags);
CodeAttribute codeAttribute = newConstructor.getMethodInfo().getCodeAttribute();
codeAttribute.setMaxLocals(codeAttribute.getMaxLocals() + 1);
ctClass.addConstructor(newConstructor);
}