addArrow(from, to);
addArrow(from, to, prop + ": join from link dependency");
    private void addLinkDependency(final Property prop, final ObjectEvent from,                                   final ObjectEvent to) {        if (from == null || to == null) {            return;        }        ObjectType ot = prop.getContainer();        ObjectMap om = ot.getRoot().getObjectMap(ot);        Mapping m = om.getMapping(Path.get(prop.getName()));        m.dispatch(new Mapping.Switch() {                public void onValue(Value m) { }                public void onJoinTo(JoinTo m) {                    addArrow(to, from);                }                public void onJoinFrom(JoinFrom m) {                    addArrow(from, to);                }                public void onJoinThrough(JoinThrough m) {                    // do nothing                }                public void onStatic(Static m) {                    if (prop.isComponent()) {                        addArrow(from, to);                    } else if (!prop.isCollection()) {                        addArrow(to, from);                    }                }            });    }