public void addListener(DescriptorEventListener listener) { delegate.addListener(listener); }
if (hasDefaultEventListeners()) { for (int i = 0; i < getDefaultEventListeners().size(); i++) { DescriptorEventListener listener = (DescriptorEventListener) getDefaultEventListeners().get(i); notifyListener(listener, event); List entityListenerEventListeners = ((DescriptorEventManager) entityListenerEventManagers.get(index)).getEntityListenerEventListeners(); notifyListener(listener, event); DescriptorEventListener entityEventListener = entityEventManagers.get(index).getEntityEventListener(); notifyListener(entityEventListener, event); notifyListener(listener, event);
@Override public Object clone() { return delegate.clone(); }
/** * PUBLIC: * Listener objects can be registered with the event manager to be notified * when an event occurs on any instance of the descriptor's class. */ public void addListener(DescriptorEventListener listener) { getEventListeners().addElement(listener); setHasAnyEventListeners(true); }
/** * INTERNAL: * Clone the manager and its private parts. */ @Override public Object clone() { try { DescriptorEventManager clone = (DescriptorEventManager)super.clone(); clone.setEventSelectors(newAtomicReferenceArray(getEventSelectors())); clone.setEventMethods(newAtomicReferenceArray(getEventMethods())); clone.setEventListeners(getEventListeners()); return clone; } catch (Exception exception) { throw new AssertionError(exception); } }
/** * INTERNAL: * Notify the event listeners. */ public void notifyListeners(DescriptorEvent event) { if (hasAnyListeners()) { for (int index = 0; index < getEventListeners().size(); index++) { DescriptorEventListener listener = (DescriptorEventListener)getEventListeners().get(index); notifyListener(listener, event); } } // Also must notify any inherited listeners. if (getDescriptor().isChildDescriptor()) { getDescriptor().getInheritancePolicy().getParentDescriptor().getEventManager().notifyListeners(event); } }
if (descriptor.getEventManager().getAboutToInsertSelector() != null) { method.addLine("descriptor.getEventManager().setAboutToInsertSelector(\"" + descriptor.getEventManager().getAboutToInsertSelector() + "\");"); if (descriptor.getEventManager().getAboutToUpdateSelector() != null) { method.addLine("descriptor.getEventManager().setAboutToUpdateSelector(\"" + descriptor.getEventManager().getAboutToUpdateSelector() + "\");"); if (descriptor.getEventManager().getPostBuildSelector() != null) { method.addLine("descriptor.getEventManager().setPostBuildSelector(\"" + descriptor.getEventManager().getPostBuildSelector() + "\");"); if (descriptor.getEventManager().getPostCloneSelector() != null) { method.addLine("descriptor.getEventManager().setPostCloneSelector(\"" + descriptor.getEventManager().getPostCloneSelector() + "\");"); if (descriptor.getEventManager().getPostDeleteSelector() != null) { method.addLine("descriptor.getEventManager().setPostDeleteSelector(\"" + descriptor.getEventManager().getPostDeleteSelector() + "\");"); if (descriptor.getEventManager().getPostInsertSelector() != null) { method.addLine("descriptor.getEventManager().setPostInsertSelector(\"" + descriptor.getEventManager().getPostInsertSelector() + "\");"); if (descriptor.getEventManager().getPostMergeSelector() != null) { method.addLine("descriptor.getEventManager().setPostMergeSelector(\"" + descriptor.getEventManager().getPostMergeSelector() + "\");"); if (descriptor.getEventManager().getPostRefreshSelector() != null) { method.addLine("descriptor.getEventManager().setPostRefreshSelector(\"" + descriptor.getEventManager().getPostRefreshSelector() + "\");"); if (descriptor.getEventManager().getPostUpdateSelector() != null) { method.addLine("descriptor.getEventManager().setPostUpdateSelector(\"" + descriptor.getEventManager().getPostUpdateSelector() + "\");"); if (descriptor.getEventManager().getPostWriteSelector() != null) { method.addLine("descriptor.getEventManager().setPostWriteSelector(\"" + descriptor.getEventManager().getPostWriteSelector() + "\");");
/** * INTERNAL: * Execute a descriptor event for the specified event code. */ protected void executeEvent(int eventCode, ObjectLevelModifyQuery query) { ClassDescriptor referenceDescriptor = getReferenceDescriptor(query.getObject().getClass(), query.getSession()); // PERF: Avoid events if no listeners. if (referenceDescriptor.getEventManager().hasAnyEventListeners()) { referenceDescriptor.getEventManager().executeEvent(new DescriptorEvent(eventCode, query)); } }
entityListenerEventManagers = new CopyOnWriteArrayList<>(); if (hasEntityEventListener()) { entityEventManagers.add(this); if (hasEntityListenerEventListeners()) { entityListenerEventManagers.add(this); ClassDescriptor currentDescriptor = getDescriptor(); boolean excludeEntityListeners = excludeSuperclassListeners(); if (eventManager.hasEntityEventListener()) { entityEventManagers.add(eventManager); if (eventManager.hasEntityListenerEventListeners()) { if (!excludeEntityListeners) { entityListenerEventManagers.add(eventManager); excludeEntityListeners = eventManager.excludeSuperclassListeners();
if (! excludeDefaultListeners()) { for (int i = 0; i < getDefaultEventListeners().size(); i++) { DescriptorEventListener listener = (DescriptorEventListener) getDefaultEventListeners().get(i); notifyListener(listener, event); Vector entityListenerEventListeners = ((DescriptorEventManager) entityListenerEventManagers.get(index)).getEntityListenerEventListeners(); notifyListener(listener, event); DescriptorEventListener entityEventListener = ((DescriptorEventManager) entityEventManagers.get(index)).getEntityEventListener(); notifyListener(entityEventListener, event); notifyListener(listener, event);
clonedDescriptor.getObjectBuilder().setDescriptor(clonedDescriptor); clonedDescriptor.setEventManager((DescriptorEventManager)getEventManager().clone()); clonedDescriptor.getEventManager().setDescriptor(clonedDescriptor);
private void requestInjectionForEntityListeners( final ClassDescriptor descriptor ) { final DescriptorEventManager eventManager = descriptor.getEventManager(); requestInjectionForEntityListeners( eventManager.getDefaultEventListeners() ); requestInjectionForEntityListeners( eventManager.getEntityListenerEventListeners() ); }
public List<DescriptorEventListener> getDefaultEventListeners() { return delegate.getDefaultEventListeners(); }
public List<DescriptorEventListener> getEntityListenerEventListeners() { return delegate.getEntityListenerEventListeners(); }
public List<DescriptorEventListener> getEventListeners() { return delegate.getEventListeners(); }
@Override public void executeEvent(DescriptorEvent event) throws DescriptorException { delegate.executeEvent(event); }
public boolean excludeSuperclassListeners() { return delegate.excludeSuperclassListeners(); }
public DescriptorEventListener getEntityEventListener() { return delegate.getEntityEventListener(); }
public String getAboutToInsertSelector() { return delegate.getAboutToInsertSelector(); }
public String getAboutToUpdateSelector() { return delegate.getAboutToUpdateSelector(); }