/** fires a {@link WireObjectEventInfo}. */ protected void fireObjectEvent(final String eventName, final String objectName, final Object object) { WireObjectEventInfo wireEvent = null; // first fire the event on the descriptor for object specific listeners if (wireDefinition != null) { final Map<String, Descriptor> descriptors = wireDefinition.getDescriptors(); if (descriptors != null) { final Descriptor descriptor = descriptors.get(objectName); if (descriptor != null) { wireEvent = new WireObjectEventInfo(eventName, objectName, object); descriptor.fire(eventName, wireEvent); } } } // then fire the event on this wiring environment for global listeners if (listeners != null && wireEvent == null) { wireEvent = new WireObjectEventInfo(eventName, objectName, object); } fire(eventName, wireEvent); }