class ReferenceAnnotationBeanPostProcessor extends InstantiationAwareBeanPostProcessorAdapter implements MergedBeanDefinitionPostProcessor, PriorityOrdered, ApplicationContextAware, BeanClassLoaderAware,
        DisposableBean {

    public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedFieldReferenceBeanMap() {

        Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedElementReferenceBeanMap =
                new LinkedHashMap<InjectionMetadata.InjectedElement, ReferenceBean<?>>();

        for (ReferenceInjectionMetadata metadata : injectionMetadataCache.values()) {

            Collection<ReferenceFieldElement> fieldElements = metadata.getFieldElements();

            for (ReferenceFieldElement fieldElement : fieldElements) {

                injectedElementReferenceBeanMap.put(fieldElement, fieldElement.referenceBean);

            }

        }

        return injectedElementReferenceBeanMap;

    }

}