private Metadata processServiceReferenceMetadata(ServiceReferenceMetadata component) { if (component instanceof MutableServiceReferenceMetadata) { ValueMetadata valueMetadata = ((MutableServiceReferenceMetadata) component).getExtendedFilter(); if (valueMetadata != null) { ((MutableServiceReferenceMetadata) component).setExtendedFilter( doProcessValueMetadata(valueMetadata)); } } for (ReferenceListener listener : component.getReferenceListeners()) { Target listenerComponent = listener.getListenerComponent(); try { processingStack.add("Reference Listener " + listenerComponent + "->"); if(listener instanceof MutableReferenceListener) { ((MutableReferenceListener) listener).setListenerComponent((Target) processMetadata(listenerComponent)); } else { //Say that we can't change this listener, but continue processing //If the value is mutable then we may be ok! printWarning(listener, "Reference Binding Listener"); processMetadata(listenerComponent); } } finally { processingStack.removeLast(); } } return component; }
private Metadata processServiceReferenceMetadata(ServiceReferenceMetadata component) { if (component instanceof MutableServiceReferenceMetadata) { ValueMetadata valueMetadata = ((MutableServiceReferenceMetadata) component).getExtendedFilter(); if (valueMetadata != null) { ((MutableServiceReferenceMetadata) component).setExtendedFilter( doProcessValueMetadata(valueMetadata)); } } for (ReferenceListener listener : component.getReferenceListeners()) { Target listenerComponent = listener.getListenerComponent(); try { processingStack.add("Reference Listener " + listenerComponent + "->"); if(listener instanceof MutableReferenceListener) { ((MutableReferenceListener) listener).setListenerComponent((Target) processMetadata(listenerComponent)); } else { //Say that we can't change this listener, but continue processing //If the value is mutable then we may be ok! printWarning(listener, "Reference Binding Listener"); processMetadata(listenerComponent); } } finally { processingStack.removeLast(); } } return component; }