LOG.debug("End Instruction Graph ======");
}
protected MethodBlock extractMethodSignature(MethodGen methodGen) {
MethodBlock mb = null;
boolean isConstructor = false;
ConstantPoolGen cpg = methodGen.getConstantPool();
LocalVariableTable lvt = methodGen.getLocalVariableTable(cpg);
String access = Utility.accessToString(methodGen.getAccessFlags());
String signature = Type.getMethodSignature(methodGen.getType(), methodGen.getArgumentTypes());
String name = methodGen.getName();
if(StringUtils.equals(name, Constants.CONSTRUCTOR_NAME)) {
name = StringUtils.substringAfterLast(methodGen.getClassName(), ".");
isConstructor = true;
}
if(StringUtils.equals(methodGen.getName(), Constants.STATIC_INITIALIZER_NAME)) {
signature = "static ";
}
else {
signature = org.apache.bcel.classfile.Utility.methodSignatureToString(signature, name, access, true, lvt);
}
StringBuilder builder = new StringBuilder(signature);
if (methodGen.getExceptions().length > 0) {
for (String excep : methodGen.getExceptions()) {
builder.append(" throws ").append(excep);
}
}
if(isConstructor){
mb = new ConstructorBlock(builder.toString(), methodGen.getInstructionList().getEnd().getPosition());
}
else {
mb = new MethodBlock(builder.toString(), methodGen.getInstructionList().getEnd().getPosition());
}
return mb;
}