class AnonymousLdapDetector implements Detector {

    private static final String LDAP_ANONYMOUS = "LDAP_ANONYMOUS";

    private BugReporter bugReporter;

    public AnonymousLdapDetector(BugReporter bugReporter) {
        this.bugReporter = bugReporter;
    }
    
    @Override
    public void visitClassContext(ClassContext classContext) {<FILL_FUNCTION_BODY>}

    private void analyzeMethod(Method m, ClassContext classContext) throws CFGBuilderException, DataflowAnalysisException {

        ConstantPoolGen cpg = classContext.getConstantPoolGen();
        CFG cfg = classContext.getCFG(m);
        
        for (Iterator<Location> i = cfg.locationIterator(); i.hasNext(); ) {
            Location location = i.next();

            Instruction inst = location.getHandle().getInstruction();
            
            if (inst instanceof LDC) {
                LDC ldc = (LDC) inst;
                if("java.naming.security.authentication".equals(ldc.getValue(cpg)) &&
                   "none".equals(ByteCode.getConstantLDC(location.getHandle().getNext(), cpg, String.class))){
                    JavaClass clz = classContext.getJavaClass();
                    bugReporter.reportBug(new BugInstance(this, LDAP_ANONYMOUS, Priorities.LOW_PRIORITY) //
                    .addClass(clz)
                    .addMethod(clz, m)
                    .addSourceLine(classContext, m, location));
                    break;
                }
            }            
        }
    }

    @Override
    public void report() {
    }
}

        JavaClass javaClass = classContext.getJavaClass();

        Method[] methodList = javaClass.getMethods();

        for (Method m : methodList) {

            try {
                analyzeMethod(m, classContext);
            } catch (CFGBuilderException e) {
            } catch (DataflowAnalysisException e) {
            }
        }
    
<no_super_class>