private void persistResult()

in src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java [147:165]


    private void persistResult(@NotNull final ScanResult scanResult, @NotNull final String path, final Integer index, final int propertyType, @Nullable final String userId) {
        try (ResourceResolver resourceResolver = serviceResourceResolver()) {
            final Map<String, Object> properties = properties(path, index, userId, scanResult);
            properties.put(JCR_PRIMARYTYPE, NT_UNSTRUCTURED);
            properties.put(JCR_MIXINTYPES, MIX_CREATED);
            properties.put(SLING_RESOURCE_TYPE_PROPERTY, JCR_RESULT_RESOURCE_TYPE);
            final Resource parent = getOrCreateParent(resourceResolver);
            final String name = String.format("%s-%s", PropertyType.nameFromValue(propertyType), UUID.randomUUID());
            final Resource result = resourceResolver.create(parent, name, properties);
            resourceResolver.commit();
            if (index == null) {
                logger.debug("Scan result for {} persisted at {}.", path, result.getPath());
            } else {
                logger.debug("Scan result for {} [{}] persisted at {}.", path, index, result.getPath());
            }
        } catch (LoginException | PersistenceException e) {
            throw new RuntimeException(e);
        }
    }