/** Notifies all listeners of the change(add, remove) and does the change. */ public void fireDbRelationshipEvent(RelationshipEvent e) { setDirty(true); if (e.getId() == MapEvent.CHANGE && e.getEntity() instanceof DbEntity) { ((DbEntity) e.getEntity()).dbRelationshipChanged(e); } for (EventListener listener : listenerList.getListeners(DbRelationshipListener.class)) { DbRelationshipListener temp = (DbRelationshipListener) listener; switch (e.getId()) { case MapEvent.ADD: temp.dbRelationshipAdded(e); break; case MapEvent.CHANGE: temp.dbRelationshipChanged(e); break; case MapEvent.REMOVE: temp.dbRelationshipRemoved(e); break; default: throw new IllegalArgumentException("Invalid RelationshipEvent type: " + e.getId()); } } }