Resource subj1 = st1.getSubject();
Resource subj2 = st2.getSubject();
if (subj1 instanceof BNode && subj2 instanceof BNode) {
BNode mappedBNode = bNodeMapping.get(subj1);
if (mappedBNode != null) {
// bNode 'subj1' was already mapped to some other bNode
if (!subj2.equals(mappedBNode)) {
// 'subj1' and 'subj2' do not match
return false;
}
}
else {
// 'subj1' was not yet mapped. we need to check if 'subj2' is a
// possible mapping candidate
if (bNodeMapping.containsValue(subj2)) {
// 'subj2' is already mapped to some other value.
return false;
}
}
}
else {
// subjects are not (both) bNodes
if (!subj1.equals(subj2)) {
return false;
}
}
Value obj1 = st1.getObject();
Value obj2 = st2.getObject();
if (obj1 instanceof BNode && obj2 instanceof BNode) {
BNode mappedBNode = bNodeMapping.get(obj1);
if (mappedBNode != null) {
// bNode 'obj1' was already mapped to some other bNode
if (!obj2.equals(mappedBNode)) {
// 'obj1' and 'obj2' do not match