@Override public UID getPredicate(STMT statement) { return statement.getPredicate(); }
public boolean remove(STMT stmt) { if (RDF.isContainerMembershipProperty(stmt.getPredicate())) { if (containerProperties != null) { return containerProperties.remove(stmt); } } else { if (predicates != null) { STMTCache stmts = predicates.get(stmt.getPredicate()); if (stmts != null) { return stmts.remove(stmt); } } } return false; }
public void add(STMT stmt) { if (RDF.isContainerMembershipProperty(stmt.getPredicate())) { if (containerProperties == null) { containerProperties = new ArrayList<STMT>(); } containerProperties.add(stmt); } else { if (predicates == null) { predicates = new LinkedHashMap<UID, STMTCache>(); } STMTCache stmts = predicates.get(stmt.getPredicate()); if (stmts == null) { stmts = new STMTCache(stmt); predicates.put(stmt.getPredicate(), stmts); } else { stmts.add(stmt); } } }
@Override public void handle(STMT stmt) { try { writer.append(toString(stmt.getSubject())); writer.append(" "); writer.append(toString(stmt.getPredicate())); writer.append(" "); writer.append(toString(stmt.getObject())); writer.append(" .\n"); } catch (IOException e) { throw new RepositoryException(e); } }
public STMT(STMT stmt, UID context) { this(stmt.getSubject(), stmt.getPredicate(), stmt.getObject(), context); }
@Override public void handle(STMT stmt) { try { if (last == null || !last.getSubject().equals(stmt.getSubject())) { if (last != null) { appendable.append(" .\n"); } append(stmt.getSubject()); appendable.append(" "); appendPredicate(stmt.getPredicate()); appendable.append(" "); } else if (!last.getPredicate().equals(stmt.getPredicate())) { appendable.append(" ; "); appendPredicate(stmt.getPredicate()); appendable.append(" "); } else { appendable.append(" , "); } append(stmt.getObject()); last = stmt; } catch (IOException e) { throw new RepositoryException(e); } }
public static boolean matches(STMT stmt, ID subject, UID predicate, NODE object, UID context, boolean includeInferred) { return // Subject match (subject == null || subject.equals(stmt.getSubject())) && // Predicate match (predicate == null || predicate.equals(stmt.getPredicate())) && // Object match (object == null || object.equals(stmt.getObject())) && // Context match (context == null || context.equals(stmt.getContext())) && // Asserted or includeInferred statement (includeInferred || stmt.isAsserted()); }
private Map<ID, Multimap<UID, STMT>> getPropertiesMap(CloseableIterator<STMT> stmts, boolean inv) { Map<ID, Multimap<UID, STMT>> propertiesMap = new HashMap<ID, Multimap<UID, STMT>>(); try { while (stmts.hasNext()) { STMT stmt = stmts.next(); ID key = inv ? stmt.getObject().asResource() : stmt.getSubject(); Multimap<UID, STMT> properties = propertiesMap.get(key); if (properties == null) { properties = MultimapFactory.<UID, STMT> create(); propertiesMap.put(key, properties); } properties.put(stmt.getPredicate(), stmt); } } finally { stmts.close(); } return propertiesMap; }
@Override public Bindings apply(STMT input) { bindings.clear(); bind(bindings, s, input.getSubject()); bind(bindings, p, input.getPredicate()); bind(bindings, o, input.getObject()); bind(bindings, c, input.getContext()); // System.err.println(bindings); return bindings; } };
private Multimap<UID, STMT> getProperties(ID subject, MappedClass mappedClass, boolean polymorphic) { Multimap<UID, STMT> properties = MultimapFactory.<UID, STMT> create(); if (mappedClass.getDynamicProperties().isEmpty() && !polymorphic && mappedClass.getMappedPredicates().size() < 5) { if (logger.isDebugEnabled()) { logger.debug("query for properties of " + subject); } RDFQuery query = new RDFQueryImpl(connection); CloseableIterator<STMT> stmts = query.where( Blocks.SPOC, QNODE.p.in(mappedClass.getMappedPredicates())) .set(QNODE.s, subject) .construct(Blocks.SPOC); try { while (stmts.hasNext()) { STMT stmt = stmts.next(); properties.put(stmt.getPredicate(), stmt); } } finally { stmts.close(); } } else { for (STMT stmt : findStatements(subject, null, null, null, true)) { properties.put(stmt.getPredicate(), stmt); } } return properties; }
public static String toString(STMT stmt) { return toString(stmt.getSubject()) + " " + toString(stmt.getPredicate()) + " " + toString(stmt.getObject()) + " . "; }
@Override public int compare(STMT o1, STMT o2) { int rv = 0; if ((rv = compare(o1.getContext(), o2.getContext())) == 0) { if ((rv = compare(o1.getSubject(), o2.getSubject())) == 0) { if ((rv = compare(o1.getPredicate(), o2.getPredicate())) == 0) { if ((rv = compare(o1.getObject(), o2.getObject())) == 0) { return 0; } } } } return rv; }
private void deleteResource(ID subject, @Nullable UID context) { // Delete own properties for (STMT statement : findStatements(subject, null, null, context, false)) { recordRemoveStatement(statement); NODE object = statement.getObject(); if (object.isResource() && !statement.getPredicate().equals(RDF.type)) { removeList((ID) object, context); removeContainer((ID) object, context); } } // Delete references for (STMT statement : findStatements(null, null, subject, context, false)) { recordRemoveStatement(statement); } // Remove from primary cache Collection<Object> instances = instanceCache.removeAll(subject); if (instances != null) { for (Object obj : instances) { resourceCache.remove(obj); } } }
private void removeListInternal(ID node, UID context) { for (STMT statement : findStatements(node, null, null, context, false)) { recordRemoveStatement(statement); NODE object = statement.getObject(); // Remove rdf:rest if (RDF.rest.equals(statement.getPredicate()) && object.isResource()) { removeListInternal((ID) object, context); } } }
private Multimap<UID, STMT> getInvProperties(ID object, MappedClass mappedClass) { Multimap<UID, STMT> properties = MultimapFactory.<UID, STMT> create(); if (logger.isDebugEnabled()) { logger.debug("query for inverse properties of " + object); } RDFQuery query = new RDFQueryImpl(connection); CloseableIterator<STMT> stmts = query.where( Blocks.SPOC, QNODE.p.in(mappedClass.getInvMappedPredicates())) .set(QNODE.o, object) .construct(Blocks.SPOC); try { while (stmts.hasNext()) { STMT stmt = stmts.next(); properties.put(stmt.getPredicate(), stmt); } } finally { stmts.close(); } return properties; }
private Statement convert(STMT stmt){ Resource subject = dialect.getResource(stmt.getSubject()); URI predicate = dialect.getURI(stmt.getPredicate()); Value object = dialect.getNode(stmt.getObject()); URI context = stmt.getContext() != null ? dialect.getURI(stmt.getContext()) : null; return dialect.createStatement(subject, predicate, object, context); }
private Statement convert(STMT stmt) { Resource subject = dialect.getResource(stmt.getSubject()); URI predicate = dialect.getURI(stmt.getPredicate()); Value object = dialect.getNode(stmt.getObject()); URI context = stmt.getContext() != null ? dialect.getURI(stmt.getContext()) : null; return dialect.createStatement(subject, predicate, object, context); }
private Statement convert(STMT stmt) { Resource subject = dialect.getResource(stmt.getSubject()); URI predicate = dialect.getURI(stmt.getPredicate()); Value object = dialect.getNode(stmt.getObject()); URI context = stmt.getContext() != null ? dialect.getURI(stmt.getContext()) : null; return dialect.createStatement(subject, predicate, object, context); }
@Test public void CreateStatementIDUIDNODE() { STMT stmt = dialect.createStatement(RDFS.label, RDF.type, RDF.Property); assertEquals(RDFS.label, stmt.getSubject()); assertEquals(RDF.type, stmt.getPredicate()); assertEquals(RDF.Property, stmt.getObject()); }
@Test public void CreateStatementIDUIDNODEUID() { STMT stmt = dialect.createStatement(RDFS.label, RDF.type, RDF.Property, RDFS.label); assertEquals(RDFS.label, stmt.getSubject()); assertEquals(RDF.type, stmt.getPredicate()); assertEquals(RDF.Property, stmt.getObject()); assertEquals(RDFS.label, stmt.getContext()); }