@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 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 final Record apply(final Record input) { final Record result = Record.create(input, true); if (array != null) { result.retain(array); } return result; }
@Override public void store(final URI type, final Record record) throws IOException, IllegalStateException { Preconditions.checkState(!this.ended); Preconditions.checkState(!this.readOnly); Preconditions.checkArgument(record.getID() != null); final Map<URI, Record> table = this.getTable(type); table.put(record.getID(), Record.create(record, true)); }
@SuppressWarnings("unchecked") private Record decodeRecord(final GenericRecord generic, @Nullable final Set<URI> propertiesToDecode) { final Record record = Record.create(); final GenericRecord encodedID = (GenericRecord) generic.get(0); if (encodedID != null) { record.setID((URI) decodeIdentifier(encodedID)); } for (final GenericRecord prop : (Iterable<GenericRecord>) generic.get(1)) { final URI property = (URI) decodeIdentifier((GenericRecord) prop.get(0)); final List<Object> values = decodeNodes(prop.get(1)); if (propertiesToDecode == null || propertiesToDecode.contains(property)) { record.set(property, values); } } return record; }
} else if (record != CachingDataStore.NULL) { CachingDataStore.this.localHitCount.incrementAndGet(); result.add(Record.create(record, true)); // clone to preserve cached one CachingDataStore.this.globalHitCount.incrementAndGet(); result.add(Record.create(record, true)); // clone record result.add(Record.create(record, true)); localCache.put(record.getID(), record); missingIDs.remove(record.getID());
final Record record = Record.create(); for (final Map.Entry<String, ? extends Object> entry : properties.entrySet()) { record.set(Data.getValueFactory().createURI("java:" + entry.getKey()),
private Map<URI, Record> extractRelated(final Record record) throws Throwable { // TODO: this has to be done better using some Schema object final URI id = record.getID(); final URI type = record.getSystemType(); final Map<URI, Record> map = Maps.newHashMap(); if (type.equals(KS.RESOURCE)) { for (final URI mentionID : record.get(KS.HAS_MENTION, URI.class)) { map.put(mentionID, Record.create(mentionID, KS.MENTION).add(KS.MENTION_OF, id)); } } else if (type.equals(KS.MENTION)) { final URI resourceID = record.getUnique(KS.MENTION_OF, URI.class); if (resourceID != null) { map.put(resourceID, Record.create(resourceID, KS.RESOURCE).add(KS.HAS_MENTION, id)); } } else { // TODO: handle entities, axioms and contexts throw new Error("Unexpected type: " + type); } return map; }
.getUnique(); if (related == null) { related = Record.create(id, type);