}
}
- private void addModification(Resource sub1, Statement s1, Resource sub2, Statement s2) {
- Modification mod = new Modification(sub1, sub2, s1, s2);
+ private void addModification(Resource left, Statement leftstm, Resource right, Statement rightstm) {
+ Modification mod = new Modification(left, right, leftstm, rightstm);
if (!modificationsSet.contains(mod)) {
modificationsSet.add(mod);
modifications.add(mod);
boolean b2 = g.hasValue(s2.getObject());
if (b1 == b2) {
if (b1) {
-// Object v1 = g.getValue(s1.getObject());
-// Object v2 = g.getValue(s2.getObject());
-// boolean eq = compareValue(v1, v2);
+ // Literals
boolean eq = compareValue(g,b,s1.getObject(), s2.getObject());
if (!eq) {
addModification(r1,s1,r2,s2);
addComparable(s1, s2);
}
} else {
- if (!s1.getObject().equals(s1.getSubject()) && !s2.getObject().equals(s2.getSubject()))
- compareProps(s1.getObject(), s2.getObject());
+ // Non literal properties.
+ if (comparator.compare(g, s1.getObject(), s2.getObject()) != ResourceComparator.NO_MATCH) {
+ if (!s1.getObject().equals(s1.getSubject()) && !s2.getObject().equals(s2.getSubject()))
+ // TODO compare props matches objects, so this is questionable.
+ compareProps(s1.getObject(), s2.getObject());
+ else
+ addModification(r1,s1,r2,s2);
+ } else {
+ addModification(r1,s1,r2,s2);
+ }
}
} else {
addModification(r1,s1,r2,s2);