use of org.apache.cayenne.graph.NodeDiff in project cayenne by apache.
the class DeleteRulesIT method assertJoinNotDeleted.
private void assertJoinNotDeleted(DeleteRuleFlatA a, DeleteRuleFlatB b) {
ObjectDiff changes = context.getObjectStore().changes.get(a.getObjectId());
if (changes != null) {
Collection<NodeDiff> diffs = new ArrayList<NodeDiff>();
changes.appendDiffs(diffs);
Iterator<?> it = diffs.iterator();
while (it.hasNext()) {
Object diff = it.next();
if (diff instanceof ArcOperation) {
ArcOperation arcDelete = (ArcOperation) diff;
if (arcDelete.getNodeId().equals(a.getObjectId()) && arcDelete.getTargetNodeId().equals(b.getObjectId()) && arcDelete.getArcId().equals(DeleteRuleFlatA.FLAT_B.getName()) && !arcDelete.isDelete()) {
fail("Join was deleted for flattened relationship");
}
}
}
}
}
use of org.apache.cayenne.graph.NodeDiff in project cayenne by apache.
the class ObjectStore method arcDeleted.
/**
* @since 1.2
*/
@Override
public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
NodeDiff diff = new ArcOperation(nodeId, targetNodeId, arcId.toString(), true);
if (lifecycleEventInducedChanges != null) {
registerLifecycleEventInducedChange(diff);
}
registerDiff((ObjectId) nodeId, diff);
}
Aggregations