@Override
public boolean requiresOp(UpdateOp op) {
if (add) {
- if (getParentOps().contains(op))
+ if (getParentOps().contains(op) && op.isAdd())
return true;
} else {
- if (getSubOps().contains(op))
+ if (getSubOps().contains(op) && op.isDelete())
return true;
}
return false;
continue;
if (g.isInstanceOf(s.getObject(), l0.Literal)) {
Object value = g.getPossibleValue(s.getObject());
- System.out.println(NameUtils.getSafeName(g, s.getSubject()) + " " + NameUtils.getSafeName(g, s.getPredicate()) + " " + NameUtils.getSafeName(g, s.getObject()) + " " + value);
+ //System.out.println(NameUtils.getSafeName(g, s.getSubject()) + " " + NameUtils.getSafeName(g, s.getPredicate()) + " " + NameUtils.getSafeName(g, s.getObject()) + " " + value);
if (value != null) {
Statement valueStm = g.getPossibleStatement(destination, s.getPredicate());
Resource valueResource = null;
g.claim(destination, s.getPredicate(), valueResource);
copyProperties(g, s.getObject(), valueResource);
} else {
- throw new DatabaseException("Expected to copy property resource " + s.getObject());
+ Resource type = g.getPossibleType(s.getObject(), l0.Value);
+ if (type != null && g.hasStatement(type, l0.Enumeration, type)) {
+ g.deny(destination, s.getPredicate());
+ g.claim(destination, s.getPredicate(), s.getObject());
+ } else {
+ throw new DatabaseException("Expected to copy property resource " + s.getObject());
+ }
}
}
}