public Object construct(WireContext wireContext) { CommandService interceptedCommandService = commandService; if (interceptorDescriptors != null) { for (int i = interceptorDescriptors.size() - 1; i >= 0; i--) { Descriptor descriptor = interceptorDescriptors.get(i); Interceptor interceptor = (Interceptor) descriptor .construct(wireContext); interceptor.setNext(interceptedCommandService); interceptedCommandService = interceptor; } } return interceptedCommandService; }
Object construct(final Descriptor descriptor) { Object object; final String objectName = descriptor.getName(); if (objectName != null) { fireObjectEvent(Descriptor.EVENT_CONSTRUCTING, objectName, null); if (underConstruction == null) { underConstruction = new HashSet<String>(); } underConstruction.add(objectName); if (LOG.isLoggable(Level.FINE)) { LOG.fine("constructing " + objectName); } } try { object = descriptor.construct(this); } catch (final RuntimeException e) { addException(descriptor, e); throw e; } if (objectName != null) { underConstruction.remove(objectName); } return object; }