Resource createResource()

in src/main/java/org/apache/sling/pipes/internal/PipeBuilderImpl.java [379:395]


    Resource createResource(ResourceResolver resolver, String path, String type, Map<String, Object> data) throws PersistenceException {
        if (data.keySet().stream().noneMatch(k -> k.contains(SLASH))) {
            return ResourceUtil.getOrCreateResource(resolver, path, data, type, false);
        }
        String returnPath = EMPTY;
        for (Map.Entry<String, Object> entry : data.entrySet()) {
            if (entry.getKey().contains(SLASH)) {
                String deepPath = String.join(SLASH, path, StringUtils.substringBeforeLast(entry.getKey(), SLASH));
                createResource(resolver, deepPath, type, Collections.singletonMap(
                    StringUtils.substringAfterLast(entry.getKey(), SLASH), entry.getValue()));
                if (returnPath.isEmpty() || returnPath.length() > deepPath.length()) {
                    returnPath = deepPath;
                }
            }
        }
        return resolver.getResource(returnPath);
    }