/** * overrides the visitor to filter out constructors. * * @param obj * the code to parse */ @Override public void visitCode(Code obj) { if (Values.CONSTRUCTOR.equals(methodName) || Values.STATIC_INITIALIZER.equals(methodName)) { return; } Method m = getMethod(); if (m.isSynthetic()) { return; } if (!interfaceMethods.contains(new QMethod(methodName, m.getSignature()))) { super.visitCode(obj); } }
state = State.SAW_DONE; } else if (seen == Const.NEW) { String newClass = getClassConstantOperand(); JavaClass exCls = Repository.lookupClass(newClass); if ((exceptionClass != null) && exCls.instanceOf(exceptionClass)) { if (((seen == Const.LDC) || (seen == Const.LDC_W)) && (getConstantRefOperand() instanceof ConstantString)) { state = State.SAW_LDC; } else { if ((seen == Const.INVOKESPECIAL) && Values.CONSTRUCTOR.equals(getNameConstantOperand())) { state = State.SAW_INVOKESPECIAL; } else {
/** * overrides the visitor to check for abstract classes. * * @param classContext * the context object that holds the JavaClass being parsed */ @Override public void visitClassContext(ClassContext classContext) { try { JavaClass cls = classContext.getJavaClass(); if (cls.isAbstract()) { interfaceMethods = collectInterfaceMethods(cls); super.visitClassContext(classContext); } } catch (ClassNotFoundException cnfe) { bugReporter.reportMissingClass(cnfe); } finally { interfaceMethods = null; } }
state = State.SAW_DONE; } else if (seen == NEW) { String newClass = getClassConstantOperand(); JavaClass exCls = Repository.lookupClass(newClass); if ((exceptionClass != null) && exCls.instanceOf(exceptionClass)) { if (((seen == LDC) || (seen == LDC_W)) && (getConstantRefOperand() instanceof ConstantString)) { state = State.SAW_LDC; } else { if ((seen == INVOKESPECIAL) && Values.CONSTRUCTOR.equals(getNameConstantOperand())) { state = State.SAW_INVOKESPECIAL; } else {
/** * overrides the visitor to check for abstract classes. * * @param classContext * the context object that holds the JavaClass being parsed */ @Override public void visitClassContext(ClassContext classContext) { try { JavaClass cls = classContext.getJavaClass(); if (cls.isAbstract()) { interfaceMethods = collectInterfaceMethods(cls); super.visitClassContext(classContext); } } catch (ClassNotFoundException cnfe) { bugReporter.reportMissingClass(cnfe); } finally { interfaceMethods = null; } }
/** * overrides the visitor to filter out constructors. * * @param obj * the code to parse */ @Override public void visitCode(Code obj) { if (Values.CONSTRUCTOR.equals(methodName) || Values.STATIC_INITIALIZER.equals(methodName)) { return; } Method m = getMethod(); if (m.isSynthetic()) { return; } if (!interfaceMethods.contains(new QMethod(methodName, m.getSignature()))) { super.visitCode(obj); } }