@Override public Record apply(final Record record) { record.retain(array); return record; }
@Override public Record apply(final Record record) { record.retain(props); return null; }
@Override public final Record apply(final Record input) { final Record result = Record.create(input, true); if (array != null) { result.retain(array); } return result; }
@Override public Stream<Record> retrieve(URI type, @Nullable XPath condition, @Nullable Set<? extends URI> properties) throws IOException, IllegalArgumentException, IllegalStateException { String tableName = getTableName(type); List<Record> returns = new ArrayList<>(); logger.debug("Retrieving all lines"); String query = selectAllQuery.replace("$tableName", tableName); try { Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(query); while (resultSet.next()) { Record r = unserializeRecord(resultSet.getBytes("value")); if (condition != null && !condition.evalBoolean(r)) { continue; } if (properties != null) { r.retain(Iterables.toArray(properties, URI.class)); } returns.add(r); } } catch (SQLException e) { throw new IOException(e); } return Stream.create(returns); }
@Override public Stream<Record> lookup(URI type, Set<? extends URI> ids, @Nullable Set<? extends URI> properties) throws IOException, IllegalArgumentException, IllegalStateException { String tableName = getTableName(type); List<Record> returns = new ArrayList<>(); for (URI id : ids) { String uri; try { uri = id.toString(); } catch (NullPointerException e) { throw new IOException(e); } logger.debug(String.format("Selecting %s", uri)); String query = selectQuery.replace("$tableName", tableName); try { PreparedStatement stmt = con.prepareStatement(query); stmt.setString(1, uri); ResultSet set = stmt.executeQuery(); while (set.next()) { Record r = unserializeRecord(set.getBytes("value")); if (properties != null) { r.retain(Iterables.toArray(properties, URI.class)); } returns.add(r); } } catch (SQLException e) { throw new IOException(e); } } return Stream.create(returns); }
@Override public Stream<Record> retrieve(URI type, @Nullable XPath condition, @Nullable Set<? extends URI> properties) throws IOException, IllegalArgumentException, IllegalStateException { optimize(type); List<Record> returns = new ArrayList<>(); for (int i = 0; i < readers.get(type).numDocs(); i++) { Document doc = readers.get(type).document(i); Record r = unserializeRecord(doc.getBinaryValue(VALUE_NAME), serializer); if (condition != null && !condition.evalBoolean(r)) { continue; } if (properties != null) { r.retain(Iterables.toArray(properties, URI.class)); } returns.add(r); } return Stream.create(returns); }
@Override public Stream<Record> lookup(URI type, Set<? extends URI> ids, @Nullable Set<? extends URI> properties) throws IOException, IllegalArgumentException, IllegalStateException { optimize(type); List<Record> returns = new ArrayList<>(); for (URI id : ids) { String uri; try { uri = id.toString(); } catch (NullPointerException e) { throw new IOException(e); } logger.debug("Selecting {}", uri); Term s = new Term(KEY_NAME, uri); TermDocs termDocs = readers.get(type).termDocs(s); if (termDocs.next()) { Document doc = readers.get(type).document(termDocs.doc()); Record r = unserializeRecord(doc.getBinaryValue(VALUE_NAME), serializer); if (properties != null && !properties.isEmpty()) { r.retain(Iterables.toArray(properties, URI.class)); } returns.add(r); } } return Stream.create(returns); }
for (final Record record : result) { final URI[] projection = properties.toArray(new URI[properties.size()]); record.retain(projection);