Search in sources :

Example 1 with ErrorHandler

use of nl.knaw.huygens.timbuctoo.rml.ErrorHandler 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;
}
Also used : LoggerFactory(org.slf4j.LoggerFactory) Tuple(nl.knaw.huygens.timbuctoo.util.Tuple) ErrorHandler(nl.knaw.huygens.timbuctoo.rml.ErrorHandler) Collectors(java.util.stream.Collectors) Row(nl.knaw.huygens.timbuctoo.rml.Row) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) RdfUri(nl.knaw.huygens.timbuctoo.rml.dto.RdfUri) Quad(nl.knaw.huygens.timbuctoo.rml.dto.Quad) Optional(java.util.Optional) RrRefObjectMap(nl.knaw.huygens.timbuctoo.rml.rmldata.termmaps.RrRefObjectMap) DataSource(nl.knaw.huygens.timbuctoo.rml.DataSource) Quad(nl.knaw.huygens.timbuctoo.rml.dto.Quad) RdfUri(nl.knaw.huygens.timbuctoo.rml.dto.RdfUri) RrRefObjectMap(nl.knaw.huygens.timbuctoo.rml.rmldata.termmaps.RrRefObjectMap)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 DataSource (nl.knaw.huygens.timbuctoo.rml.DataSource)1 ErrorHandler (nl.knaw.huygens.timbuctoo.rml.ErrorHandler)1 Row (nl.knaw.huygens.timbuctoo.rml.Row)1 Quad (nl.knaw.huygens.timbuctoo.rml.dto.Quad)1 RdfUri (nl.knaw.huygens.timbuctoo.rml.dto.RdfUri)1 RrRefObjectMap (nl.knaw.huygens.timbuctoo.rml.rmldata.termmaps.RrRefObjectMap)1 Tuple (nl.knaw.huygens.timbuctoo.util.Tuple)1 LoggerFactory (org.slf4j.LoggerFactory)1