private Resource getHierarchyResource()

in src/main/java/org/apache/sling/scripting/sightly/js/impl/use/DependencyResolver.java [159:195]


    private Resource getHierarchyResource(@NotNull Resource caller, @NotNull Resource driver) {
        if (caller.getPath().equals(driver.getPath())) {
            return caller;
        }
        if (isResourceType(caller, driver)) {
            return caller;
        }
        if (isResourceType(driver, caller)) {
            return driver;
        }
        int callerOverlayIndex = 0;
        int driverOverlayIndex = 0;
        String callerRelativePath = null;
        String driverRelativePath = null;
        int spIndex = 0;
        for (String sp : scriptingResourceResolver.getSearchPath()) {
            if (caller.getPath().startsWith(sp)) {
                callerRelativePath = caller.getPath().substring(sp.length());
                callerOverlayIndex = spIndex;
            }
            if (driver.getPath().startsWith(sp)) {
                driverRelativePath = driver.getPath().substring(sp.length());
                driverOverlayIndex = spIndex;
            }
            if (callerRelativePath != null && driverRelativePath != null) {
                break;
            }
            spIndex++;
        }
        if (callerRelativePath != null && callerRelativePath.equals(driverRelativePath)) {
            if (callerOverlayIndex < driverOverlayIndex) {
                return caller;
            }
            return driver;
        }
        return null;
    }