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);
}
}