class PathTraversalDetector extends BasicInjectionDetector {

    private static final String PATH_TRAVERSAL_IN_TYPE = "PATH_TRAVERSAL_IN";
    private static final String PATH_TRAVERSAL_OUT_TYPE = "PATH_TRAVERSAL_OUT";

    private static final String SCALA_PATH_TRAVERSAL_IN_TYPE = "SCALA_PATH_TRAVERSAL_IN";

    public PathTraversalDetector(BugReporter bugReporter) {
        super(bugReporter);
        loadConfiguredSinks("path-traversal-in.txt", PATH_TRAVERSAL_IN_TYPE);
        loadConfiguredSinks("path-traversal-out.txt", PATH_TRAVERSAL_OUT_TYPE);
        loadConfiguredSinks("scala-path-traversal-in.txt", SCALA_PATH_TRAVERSAL_IN_TYPE);
        loadConfiguredSinks("kotlin-path-traversal-in.txt", PATH_TRAVERSAL_IN_TYPE);

        // We are not using a Scala-specific message because it doesn't have an embed code example
        loadConfiguredSinks("scala-path-traversal-out.txt", PATH_TRAVERSAL_OUT_TYPE);
    }


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

        if (!taint.isSafe() && taint.hasTag(Taint.Tag.PATH_TRAVERSAL_SAFE)) {
            return Priorities.IGNORE_PRIORITY;
        } else {
            return super.getPriority(taint);
        }
    
<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