public SerializerAvro(final String fileName) throws IOException { this.dictionary = Dictionary.createHadoopDictionary(URI.class, fileName); this.factory = Data.getValueFactory(); this.datatypeFactory = Data.getDatatypeFactory(); }
@Override public Record apply(final Record record) { record.retain(array); return record; }
@Override public URI apply(final Record record) { return record.getID(); }
@Override public void store(final URI type, final Record record) throws IOException, IllegalStateException { // Delete existing data for the record URI delete(type, record.getID()); // Add statements final List<Statement> statements = Record.encode(Stream.create(record), ImmutableList.of(type)).toList(); this.transaction.add(statements); }
@Override public Stream<Record> lookup(final URI type, final Set<? extends URI> ids, final Set<? extends URI> properties) throws IOException, IllegalArgumentException, IllegalStateException { return Stream.concat(Stream.create(ids).chunk(64) .transform(new Function<List<? extends URI>, Stream<Record>>() { @Override public Stream<Record> apply(final List<? extends URI> input) { final StringBuilder builder = new StringBuilder(); builder.append(" VALUES ?s {"); for (final URI id : input) { builder.append(" <").append(id.toString()).append(">"); } builder.append(" }"); try { return query(builder.toString(), type, properties, null); } catch (final IOException ex) { throw Throwables.propagate(ex); } } }, 1)); }
private Stream<Record> select(final Map<URI, Record> table, final Stream<? extends URI> stream) { return stream.transform(new Function<URI, Record>() { @Override public Record apply(final URI id) { return table.get(id); } }, 0); }
@Override public Record computeNewRecord(final URI id, @Nullable final Record oldRecord, @Nullable final Record suppliedRecord) throws Throwable { assert oldRecord != null; assert suppliedRecord == null; final Record newRecord = Record.create(oldRecord, true); criteria.merge(newRecord, record); return newRecord; }
@Override public void handle(final Statement element) throws Throwable { // TODO if (element == null) { // end of sequence this.axiomHandler.handle(null); } else { // process it } }
private String toInternalFilename(final String filename) { return this.forceCompression || Data.isMimeTypeCompressible( // Data.extensionToMimeType(filename)) ? filename + ".gz" : filename; }
private Stream<Record> filter(final Stream<Record> stream, @Nullable final XPath xpath) { if (xpath == null) { return stream; } return stream.filter(xpath.asPredicate(), 0); }
public SerializerAvro(@Nullable final Dictionary<URI> dictionary) { this.dictionary = dictionary; this.factory = Data.getValueFactory(); this.datatypeFactory = Data.getDatatypeFactory(); }
private <T> Stream<T> attach(final DataTransaction transaction, final Stream<T> stream) { return stream.onClose(new Closeable() { @Override public void close() throws IOException { transaction.end(true); } }); }
private static Stream<Record> upload(final Session session, final Criteria criteria, final Stream<Record> axioms) { return axioms.transform(null, new Function<Handler<Record>, Handler<Record>>() { @Override public Handler<Record> apply(final Handler<Record> handler) { return new UploadHandler(session, criteria, handler); } }); }
@Override public Record computeNewRecord(final URI id, @Nullable final Record oldRecord, @Nullable final Record suppliedRecord) throws Throwable { assert suppliedRecord != null; if (criteria == null) { return oldRecord; // NOP } else { final Record record = oldRecord == null ? Record.create(id, type) : Record.create(oldRecord, true); criteria.merge(record, suppliedRecord); return record; } }
@Override public void handle(final Statement statement) throws Throwable { handler.handle(statement == null ? null : rewriteStatement(statement)); }
@Override public Record apply(final Record record) { record.retain(props); return null; }
private <T> Stream<T> attach(final TripleTransaction transaction, final Stream<T> stream) { return stream.onClose(new Closeable() { @Override public void close() throws IOException { transaction.end(true); } }); }
@Override public Stream<String> list() throws IOException { return super.list().transform(new Function<String, String>() { @Override public String apply(final String filename) { return toExternalFilename(filename); } }, 0); }