protected void createInit() {
CodeVisitor cv = m_cw.visitMethod(ACC_PRIVATE, INIT_METHOD_NAME, NO_PARAM_RETURN_VOID_SIGNATURE, null, null);
cv.visitVarInsn(ALOAD, 0);
boolean hasAroundClosureBaseClass = false;
AspectModel aspectModel = null;
for (int i = 0; i < m_aspectModels.length; i++) {
aspectModel = m_aspectModels[i];
if (aspectModel.getAroundClosureClassInfo().getSuperClassName() != null) {
hasAroundClosureBaseClass = true;
break;
}
}
if (hasAroundClosureBaseClass) {
// invoke the super class constructor
aspectModel.createInvocationOfAroundClosureSuperClass(cv);
} else {
// invoke the constructor of java.lang.Object
cv.visitMethodInsn(INVOKESPECIAL, OBJECT_CLASS_NAME, INIT_METHOD_NAME, NO_PARAM_RETURN_VOID_SIGNATURE);
}