class HardcodedPasswordEqualsDetector extends AbstractHardcodedPasswordEqualsDetector {

    private static final String HARD_CODE_PASSWORD_TYPE = "HARD_CODE_PASSWORD";

    private static final InvokeMatcherBuilder STRING_EQUALS_METHOD = invokeInstruction() //
            .atClass("java/lang/String").atMethod("equals").withArgs("(Ljava/lang/Object;)Z");

    public HardcodedPasswordEqualsDetector(BugReporter bugReporter) {
        super(bugReporter);
    }

    @Override
    protected InjectionPoint getInjectionPoint(InvokeInstruction invoke, ConstantPoolGen cpg,
                                               InstructionHandle handle) {<FILL_FUNCTION_BODY>}
}

        if(STRING_EQUALS_METHOD.matches(invoke,cpg)) {
            return new InjectionPoint(new int[]{0,1}, HARD_CODE_PASSWORD_TYPE);
        }
        return InjectionPoint.NONE;
    
<methods>public void visitField(FieldInstruction, MethodGen, com.h3xstream.findsecbugs.taintanalysis.TaintFrame, com.h3xstream.findsecbugs.taintanalysis.Taint, int, ConstantPoolGen) throws java.lang.Exception,public void visitInvoke(InvokeInstruction, MethodGen, com.h3xstream.findsecbugs.taintanalysis.TaintFrame, List<com.h3xstream.findsecbugs.taintanalysis.Taint>, ConstantPoolGen) ,public void visitLoad(LoadInstruction, MethodGen, com.h3xstream.findsecbugs.taintanalysis.TaintFrame, int, ConstantPoolGen) ,public void visitReturn(MethodGen, com.h3xstream.findsecbugs.taintanalysis.Taint, ConstantPoolGen) throws java.lang.Exception<variables>private static final boolean DEBUG