it.close();
} else {
Map<String,BlankNode> bnodeSourceId2bnodeTarget = new HashMap<String,BlankNode>();
ClosableIterator<Statement> it = source.iterator();
while(it.hasNext()) {
Statement stmt = it.next();
boolean blankSubject = stmt.getSubject() instanceof BlankNode;
boolean blankObject = stmt.getObject() instanceof BlankNode;
if(blankSubject || blankObject) {
Resource s;
if(blankSubject) {
s = transform(stmt.getSubject().asBlankNode(), bnodeSourceId2bnodeTarget,
target);
} else {
s = stmt.getSubject();
}
Node o;
// use mapping from node-IDs in impl-source to blank nodes
// in impl-target
if(blankObject) {
o = transform(stmt.getObject().asBlankNode(), bnodeSourceId2bnodeTarget,
target);
} else {
o = stmt.getObject();
}
target.addStatement(s, stmt.getPredicate(), o);
} else {
target.addStatement(stmt);
}
}
it.close();