} else {
graph.deny(s,pred);
}
+ applied = true;
} else if (graph.isInstanceOf(pair.second.getObject(), L0.SCLValue)) {
Resource pred = pair.second.getPredicate();
graph.deny(s, pred);
graph.claim(valueResource, L0.InstanceOf, graph.getSingleObject(pair.second.getObject(), L0.InstanceOf));
AddDeleteUpdateOp.copyProperties(graph, pair.second.getObject(), valueResource);
graph.claim(s, pred, valueResource);
+ applied = true;
+ } else {
+ Resource type = graph.getPossibleType(pair.second.getObject(), L0.Value);
+ if (type != null && graph.hasStatement(type, L0.Enumeration, type)) {
+ Resource pred = pair.second.getPredicate();
+ graph.deny(s, pred);
+ graph.claim(s, pred, pair.second.getObject());
+ applied = true;
+ }
+
}
- applied = true;
+
}
/**
}
}
- 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);