if (pe != null) { addArrow(pe, e); }
if (pe != null) { addArrow(pe, e, "WAW hazard"); }
    public void write(Event ev) {        addObjectDependency(ev, ev.getObject());        ev.dispatch(new Event.Switch() {                public void onCreate(CreateEvent e) { }                public void onDelete(DeleteEvent e) {                    Collection pes =                        m_events.getReachablePropertyEvents(e.getObject());                    for (Iterator it = pes.iterator(); it.hasNext(); ) {                        PropertyEvent pe = (PropertyEvent) it.next();                        addArrow(pe, e);                        Object arg;                        if (pe instanceof SetEvent) {                            if (pe.getArgument() != null) {                                throw new IllegalStateException                                    ("nonnull set arg reachable from delete");                            }                            arg = ((SetEvent) pe).getPreviousValue();                        } else {                            arg = pe.getArgument();                        }                        addLinkDependency                            (pe.getProperty(), m_events.getLastEvent(arg), e);                    }                }                private void onProperty(PropertyEvent e) {                    Object obj = e.getObject();                    Property prop = e.getProperty();                    Object arg = e.getArgument();                    addObjectDependency(e, arg);                    PropertyEvent pe = m_events.getLastEvent(obj, prop);                    if (pe != null) { addArrow(pe, e); }                    ObjectEvent objev = m_events.getLastEvent(obj);                    ObjectEvent argev = m_events.getLastEvent(arg);                    addLinkDependency(prop, objev, argev);                }                public void onSet(SetEvent e) { onProperty(e); }                public void onAdd(AddEvent e) { onProperty(e); }                public void onRemove(RemoveEvent e) { onProperty(e); }            });        m_events.add(ev);    }