class CrlfLogInjectionDetector extends BasicInjectionDetector {

    public CrlfLogInjectionDetector(BugReporter bugReporter) {
        super(bugReporter);
        loadConfiguredSinks("crlf-logs.txt", "CRLF_INJECTION_LOGS");
    }

    @Override
    protected int getPriority(Taint taint) {<FILL_FUNCTION_BODY>}
}

        if (!taint.isSafe()) {
            //(Condition extracted for clarity)
            //Either specifically safe for new line or URL encoded which encoded few other characters
            boolean newLineSafe = taint.hasTag(Taint.Tag.CR_ENCODED) && taint.hasTag(Taint.Tag.LF_ENCODED);
            boolean urlSafe = (taint.hasTag(Taint.Tag.URL_ENCODED));
            if(newLineSafe || urlSafe) {
                return Priorities.IGNORE_PRIORITY;
            }
        }
        if (taint.isTainted()) {
            return Priorities.NORMAL_PRIORITY;
        } else if (!taint.isSafe()) {
            return Priorities.LOW_PRIORITY;
        } else {
            return Priorities.IGNORE_PRIORITY;
        }
    
<methods>public void registerVisitor(com.h3xstream.findsecbugs.taintanalysis.TaintFrameAdditionalVisitor) <variables>static com.h3xstream.findsecbugs.injection.ClassMethodSignature OBJECT,private static final com.h3xstream.findsecbugs.injection.SinksLoader SINKS_LOADER,private final Map<com.h3xstream.findsecbugs.injection.ClassMethodSignature,com.h3xstream.findsecbugs.injection.InjectionPoint> injectionMap