/** * @see org.openmrs.api.AdministrationService#removeGlobalPropertyListener(GlobalPropertyListener) */ @Override public void removeGlobalPropertyListener(GlobalPropertyListener listener) { eventListeners.getGlobalPropertyListeners().remove(listener); }
/** * Convenience method called by spring to reset the static list of event * listeners.<br> * Without this, the event listener list continues to grow with every Spring * restart. (and is a memory leak) * * @see "applicationContext-service.xml" * @param nullList * if true, nulls the list instead of just clearing it */ public void setGlobalPropertyListenersToEmpty(boolean nullList) { if (nullList) { setGlobalPropertyListeners(null); } else if (EventListeners.globalPropertyListeners != null) { EventListeners.globalPropertyListeners.clear(); } }
/** * @see org.openmrs.api.AdministrationService#addGlobalPropertyListener(GlobalPropertyListener) */ @Override public void addGlobalPropertyListener(GlobalPropertyListener listener) { eventListeners.getGlobalPropertyListeners().add(listener); }
/** * Calls global property listeners registered for this delete * * @param propertyName */ private void notifyGlobalPropertyDelete(String propertyName) { for (GlobalPropertyListener listener : eventListeners.getGlobalPropertyListeners()) { if (listener.supportsPropertyName(propertyName)) { listener.globalPropertyDeleted(propertyName); } } }
/** * Calls global property listeners registered for this create/change * * @param gp */ private void notifyGlobalPropertyChange(GlobalProperty gp) { for (GlobalPropertyListener listener : eventListeners.getGlobalPropertyListeners()) { if (listener.supportsPropertyName(gp.getProperty())) { listener.globalPropertyChanged(gp); } } }
@Test public void addGlobalPropertyListener_shouldAddListener() { List<GlobalPropertyListener> listeners = new ArrayList<>(); when(eventListeners.getGlobalPropertyListeners()).thenReturn(listeners); GlobalPropertyListener listener = mock(GlobalPropertyListener.class); adminService.addGlobalPropertyListener(listener); assertThat(listeners.size(), is(1)); assertThat(listeners, contains(listener)); }
@Test public void removeGlobalPropertyListener_shouldRemoveListener() { List<GlobalPropertyListener> listeners = new ArrayList<>(); when(eventListeners.getGlobalPropertyListeners()).thenReturn(listeners); GlobalPropertyListener listener = mock(GlobalPropertyListener.class); adminService.addGlobalPropertyListener(listener); assertThat(listeners.size(), is(1)); assertThat(listeners, contains(listener)); adminService.removeGlobalPropertyListener(listener); assertThat(listeners.size(), is(0)); } }