private Object convertValue(NODE node, Class<?> targetClass) { UID targetType = configuration.getConverterRegistry().getDatatype(targetClass); if (targetClass.isAssignableFrom(node.getClass())) { return node; } else if (targetType != null && node.isLiteral()) { // TODO : make sure this works also with untyped literals etc if (((LIT) node).getDatatype().equals(targetType)) { return configuration.getConverterRegistry().fromString(node.getValue(), targetClass); } else { throw new IllegalArgumentException("Literal " + node + " is not of type " + targetType); } } else if (targetType == null && node.isURI()) { return get(targetClass, node.asURI()); } else { throw new IllegalArgumentException("Node " + node + " could not be converted to " + targetClass.getName()); } }
private List<STMT> findStatements(@Nullable ID subject, @Nullable UID predicate, @Nullable NODE object, @Nullable UID context, boolean includeInferred) { if (logger.isDebugEnabled()) { logger.debug("findStatements " + subject + " " + predicate + " " + object + " " + context); } // rdf type inference if (RDF.type.equals(predicate) && subject == null && object != null && connection.getInferenceOptions().subClassOf()) { Collection<UID> types = ontology.getSubtypes(object.asURI()); if (types.size() > 1) { RDFQuery query = new RDFQueryImpl(connection); CloseableIterator<STMT> stmts = query.where( Blocks.SPOC, QNODE.o.in(types)) .set(QNODE.p, predicate) .construct(Blocks.SPOC); return IteratorAdapter.asList(stmts); } } return IteratorAdapter.asList(connection.findStatements(subject, predicate, object, context, includeInferred)); }
private MappedClass resolveMappedClass(MappedClass mappedClass, PropertiesMap properties) { for (STMT stmt : properties.getDirect().get(RDF.type)) { if (stmt.getObject().isURI()) { List<MappedClass> mappedClasses = configuration.getMappedClasses(stmt.getObject().asURI()); for (MappedClass mc : mappedClasses) { if (!mc.equals(mappedClass) && mappedClass.getJavaClass().isAssignableFrom(mc.getJavaClass())) { return mc; } } } } return mappedClass; }
@Override public N getNode(NODE node) { if (node.isLiteral()) { return getLiteral(node.asLiteral()); } else if (node.isBNode()) { return getBNode(node.asBNode()); } else { return getURI(node.asURI()); } }
public static String toString(NODE node) { if (node.isURI()) { return toString(node.asURI()); } else if (node.isLiteral()) { return toString(node.asLiteral()); } else { return toString(node.asBNode()); } }
private void append(NODE node) throws IOException { if (node.isURI()) { append(node.asURI()); } else if (node.isLiteral()) { append(node.asLiteral()); } else { append(node.asBNode()); } }
writer.append(" rdf:nodeID=\"" + stmt.getObject().getValue() + "\"/>\n"); } else { writer.append(" rdf:resource=\"" + shorten(stmt.getObject().asURI()) + "\"/>\n");
boolean matched = false; for (STMT typeStmt : typeStmts) { for (MappedClass cl : configuration.getMappedClasses(typeStmt.getObject().asURI())) { if (componentType.isAssignableFrom(cl.getJavaClass())) { matched = true;
@Test public void test() { NODE uri = RDF.type; NODE bnode = new BID(); NODE lit = new LIT(""); assertEquals(uri, uri.asURI()); assertEquals(bnode, bnode.asBNode()); assertEquals(lit, lit.asLiteral()); }