use of nl.knaw.huygens.timbuctoo.rml.rmldata.termmaps.RrRefObjectMap in project timbuctoo by HuygensING.
the class RrTriplesMap method getItems.
Stream<Quad> getItems(ErrorHandler defaultErrorHandler) {
final int[] numberOfItemsProcessed = new int[1];
Stream<Quad> quadStream = dataSource.getRows(defaultErrorHandler).peek(e -> {
numberOfItemsProcessed[0]++;
if (numberOfItemsProcessed[0] == 1) {
LoggerFactory.getLogger(RrTriplesMap.class).info("collection '{}' has at least one item", uri);
}
}).flatMap(row -> {
Optional<RdfUri> subjectOpt = subjectMap.generateValue(row);
if (subjectOpt.isPresent()) {
RdfUri subject = subjectOpt.get();
for (Tuple<RrRefObjectMap, String> subscription : subscriptions) {
subscription.getLeft().onNewSubject(row.getRawValue(subscription.getRight()), subject);
}
return predicateObjectMaps.stream().flatMap(predicateObjectMap -> predicateObjectMap.generateValue(subject, row));
} else {
defaultErrorHandler.subjectGenerationFailed(uri, row);
return Stream.empty();
}
});
return quadStream;
}
Aggregations