@Override public boolean hasDeleteListeners(Object source, ClassMetaData meta) { if (_validator == null) { return super.hasDeleteListeners(source, meta); } return _validator.validating(source, LifecycleEvent.BEFORE_DELETE) || super.hasDeleteListeners(source, meta); }
/** * Fire lifecycle event to all registered listeners without an argument. */ public Exception[] fireEvent(Object source, ClassMetaData meta, int type) { return fireEvent(source, null, meta, type); }
private boolean hasHandlers(Object source, ClassMetaData meta, int type) { return hasCallbacks(source, meta, type) || hasListeners(source, meta, type); }
makeCallbacks(source, related, meta, type, exceptions); LifecycleEvent ev = (LifecycleEvent) fireEvent(null, source, related, type, _listeners, false, exceptions); source.getClass(); do { ev = (LifecycleEvent) fireEvent(ev, source, related, type, (ListenerList) _classListeners.get(c), false, exceptions); c = c.getSuperclass(); fireEvent(ev, source, related, type, system, false, exceptions); makeCallbacks(source, related, meta, type, exceptions); if (!_addListeners.isEmpty()) for (Iterator itr = _addListeners.iterator(); itr.hasNext();) addListener(itr.next(), (Class[]) itr.next()); if (!_remListeners.isEmpty()) for (Iterator itr = _remListeners.iterator(); itr.hasNext();) removeListener(itr.next()); _addListeners.clear(); _remListeners.clear();
/** * Return whether there are listeners or callbacks for the given source. */ public boolean hasDeleteListeners(Object source, ClassMetaData meta) { return hasHandlers(source, meta, LifecycleEvent.BEFORE_DELETE) || hasHandlers(source, meta, LifecycleEvent.AFTER_DELETE) || hasHandlers(source, meta, LifecycleEvent.AFTER_DELETE_PERFORMED); }
/** * Fire given lifecycle event, handling any exceptions appropriately. * * @return whether events are being processed at this time */ boolean fireLifecycleEvent(Object src, Object related, ClassMetaData meta, int eventType) { if (_lifeEventManager == null) return false; if (!_lifeEventManager.isActive(meta)) return false; lock(); Exception[] exs; try { exs = _lifeEventManager.fireEvent(src, related, meta, eventType); } finally { unlock(); } handleCallbackExceptions(exs, _lifeCallbackMode); return true; }
if (mgr == null || !mgr.isActive(_meta) || !mgr.hasLoadListeners(getManagedInstance(), _meta)) return;
public void removeLifecycleListener(Object listener) { beginOperation(false); try { _lifeEventManager.removeListener(listener); } finally { endOperation(); } }
public void setLifecycleListenerCallbackMode(int mode) { beginOperation(false); try { _lifeCallbackMode = mode; _lifeEventManager.setFailFast((mode & CALLBACK_FAIL_FAST) != 0); } finally { endOperation(); } }
public void addLifecycleListener(Object listener, Class[] classes) { beginOperation(false); try { _lifeEventManager.addListener(listener, classes); } finally { endOperation(); } }
if (mgr == null || !mgr.hasLoadListeners(getManagedInstance(), _meta)) return;
makeCallbacks(source, related, meta, type, exceptions); LifecycleEvent ev = (LifecycleEvent) fireEvent(null, source, related, type, _listeners, false, exceptions); Class<?> c = source == null ? meta.getDescribedType() : source.getClass(); do { ev = (LifecycleEvent) fireEvent(ev, source, related, type, (ListenerList) _classListeners.get(c), false, exceptions); c = c.getSuperclass(); fireEvent(ev, source, related, type, system, false, exceptions); makeCallbacks(source, related, meta, type, exceptions); if (!_addListeners.isEmpty()) for (Iterator<Object> itr = _addListeners.iterator(); itr.hasNext();) addListener(itr.next(), (Class[]) itr.next()); if (!_remListeners.isEmpty()) for (Iterator<Object> itr = _remListeners.iterator(); itr.hasNext();) removeListener(itr.next()); _addListeners.clear(); _remListeners.clear();
/** * Return whether there are listeners or callbacks for the given source. */ public boolean hasLoadListeners(Object source, ClassMetaData meta) { return hasHandlers(source, meta, LifecycleEvent.AFTER_LOAD); }
/** * Fire given lifecycle event, handling any exceptions appropriately. * * @return whether events are being processed at this time */ boolean fireLifecycleEvent(Object src, Object related, ClassMetaData meta, int eventType) { if (_lifeEventManager == null) return false; if (!_lifeEventManager.isActive(meta)) return false; lock(); Exception[] exs; try { exs = _lifeEventManager.fireEvent(src, related, meta, eventType); } finally { unlock(); } handleCallbackExceptions(exs, _lifeCallbackMode); return true; }
if (mgr == null || !mgr.isActive(_meta) || !mgr.hasLoadListeners(getManagedInstance(), _meta)) return;
public void removeLifecycleListener(Object listener) { beginOperation(false); try { _lifeEventManager.removeListener(listener); } finally { endOperation(); } }
public void setLifecycleListenerCallbackMode(int mode) { beginOperation(false); try { _lifeCallbackMode = mode; _lifeEventManager.setFailFast((mode & CALLBACK_FAIL_FAST) != 0); } finally { endOperation(); } }
public void addLifecycleListener(Object listener, Class[] classes) { beginOperation(false); try { _lifeEventManager.addListener(listener, classes); } finally { endOperation(); } }
if (_dirty.length() > 0 || postLoadOnMerge) { BitSet load = new BitSet(fields.length); if (postLoadOnMerge && broker.getLifecycleEventManager().hasLoadListeners(pc, meta)) {
makeCallbacks(source, related, meta, type, exceptions); LifecycleEvent ev = (LifecycleEvent) fireEvent(null, source, related, type, _listeners, false, exceptions); Class<?> c = source == null ? meta.getDescribedType() : source.getClass(); do { ev = (LifecycleEvent) fireEvent(ev, source, related, type, (ListenerList) _classListeners.get(c), false, exceptions); c = c.getSuperclass(); fireEvent(ev, source, related, type, system, false, exceptions); makeCallbacks(source, related, meta, type, exceptions); if (!_addListeners.isEmpty()) for (Iterator<Object> itr = _addListeners.iterator(); itr.hasNext();) addListener(itr.next(), (Class[]) itr.next()); if (!_remListeners.isEmpty()) for (Iterator<Object> itr = _remListeners.iterator(); itr.hasNext();) removeListener(itr.next()); _addListeners.clear(); _remListeners.clear();