private void setReverse(
ArcProperty property,
final Persistent sourceObject,
final Persistent targetObject) {
ArcProperty reverseArc = property.getComplimentaryReverseArc();
if (reverseArc != null) {
reverseArc.visit(new PropertyVisitor() {
public boolean visitCollectionArc(CollectionProperty property) {
property.addTarget(targetObject, sourceObject, false);
return false;
}
public boolean visitSingleObjectArc(SingleObjectArcProperty property) {
property.setTarget(targetObject, sourceObject, false);
return false;
}
public boolean visitProperty(Property property) {
return false;
}
});
context.getGraphManager().arcCreated(
targetObject.getObjectId(),
sourceObject.getObjectId(),
reverseArc.getName());
markAsDirty(targetObject);
}
}