test_class.declarator: AOP_SUFFIX = "(based on AOP)"
test_class.modifier: private static final
test_class.original_string: private static final String AOP_SUFFIX = "(based on AOP)";
test_class.type: String
test_class.var_name: AOP_SUFFIX
test_class.declarator: context
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private ConfigurableApplicationContext context;
test_class.type: ConfigurableApplicationContext
test_class.var_name: context
test_class.declarator: defaultHelloService
test_class.modifier: @Autowired
      @Qualifier("defaultHelloService")
      private
test_class.original_string: @Autowired
      @Qualifier("defaultHelloService")
      private HelloService defaultHelloService;
test_class.type: HelloService
test_class.var_name: defaultHelloService
test_class.declarator: helloServiceImpl
test_class.modifier: @Autowired
      @Qualifier("helloServiceImpl")
      private
test_class.original_string: @Autowired
      @Qualifier("helloServiceImpl")
      private HelloService helloServiceImpl;
test_class.type: HelloService
test_class.var_name: helloServiceImpl
test_class.declarator: helloService
test_class.modifier: @Reference(id = "helloService", methods = @Method(name = "sayHello", timeout = 100))
      private
test_class.original_string: @Reference(id = "helloService", methods = @Method(name = "sayHello", timeout = 100))
      private HelloService helloService;
test_class.type: HelloService
test_class.var_name: helloService
test_class.declarator: helloService2
test_class.modifier: @Reference
      private
test_class.original_string: @Reference
      private HelloService helloService2;
test_class.type: HelloService
test_class.var_name: helloService2
test_class.file: dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java
test_class.identifier: ReferenceAnnotationBeanPostProcessorTest
test_case.body: @Test
      public void testGetInjectedMethodReferenceBeanMap() {
  
          ReferenceAnnotationBeanPostProcessor beanPostProcessor = context.getBean(BEAN_NAME,
                  ReferenceAnnotationBeanPostProcessor.class);
  
          Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> referenceBeanMap =
                  beanPostProcessor.getInjectedMethodReferenceBeanMap();
  
          Assert.assertEquals(2, referenceBeanMap.size());
  
          for (Map.Entry<InjectionMetadata.InjectedElement, ReferenceBean<?>> entry : referenceBeanMap.entrySet()) {
  
              InjectionMetadata.InjectedElement injectedElement = entry.getKey();
  
              Assert.assertEquals("com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor$AnnotatedMethodElement",
                      injectedElement.getClass().getName());
  
          }
  
      }
test_case.class_method_signature: ReferenceAnnotationBeanPostProcessorTest.testGetInjectedMethodReferenceBeanMap()
test_case.full_signature: @Test public void testGetInjectedMethodReferenceBeanMap()
test_case.identifier: testGetInjectedMethodReferenceBeanMap
test_case.invocations: getBean getInjectedMethodReferenceBeanMap assertEquals size entrySet getKey assertEquals getName getClass
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetInjectedMethodReferenceBeanMap()
focal_class.declarator: BEAN_NAME = "referenceAnnotationBeanPostProcessor"
focal_class.modifier: public static final
focal_class.original_string: public static final String BEAN_NAME = "referenceAnnotationBeanPostProcessor";
focal_class.type: String
focal_class.var_name: BEAN_NAME
focal_class.declarator: CACHE_SIZE = Integer.getInteger(BEAN_NAME + ".cache.size", 32)
focal_class.modifier: private static final
focal_class.original_string: private static final int CACHE_SIZE = Integer.getInteger(BEAN_NAME + ".cache.size", 32);
focal_class.type: int
focal_class.var_name: CACHE_SIZE
focal_class.declarator: referenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE)
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<String, ReferenceBean<?>> referenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE);
focal_class.type: ConcurrentMap<String, ReferenceBean<?>>
focal_class.var_name: referenceBeanCache
focal_class.declarator: injectedFieldReferenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE)
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedFieldReferenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE);
focal_class.type: ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>>
focal_class.var_name: injectedFieldReferenceBeanCache
focal_class.declarator: injectedMethodReferenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE)
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedMethodReferenceBeanCache =
              new ConcurrentHashMap<>(CACHE_SIZE);
focal_class.type: ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>>
focal_class.var_name: injectedMethodReferenceBeanCache
focal_class.declarator: applicationContext
focal_class.modifier: private
focal_class.original_string: private ApplicationContext applicationContext;
focal_class.type: ApplicationContext
focal_class.var_name: applicationContext
focal_class.file: dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java
focal_class.identifier: ReferenceAnnotationBeanPostProcessor
focal_class.interfaces: implements
          ApplicationContextAware
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.ReferenceAnnotationBeanPostProcessor()
focal_class.full_signature: public  ReferenceAnnotationBeanPostProcessor()
focal_class.identifier: ReferenceAnnotationBeanPostProcessor
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ReferenceAnnotationBeanPostProcessor()
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.getReferenceBeans()
focal_class.full_signature: public Collection<ReferenceBean<?>> getReferenceBeans()
focal_class.identifier: getReferenceBeans
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<ReferenceBean<?>>
focal_class.signature: Collection<ReferenceBean<?>> getReferenceBeans()
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.getInjectedFieldReferenceBeanMap()
focal_class.full_signature: public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedFieldReferenceBeanMap()
focal_class.identifier: getInjectedFieldReferenceBeanMap
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>>
focal_class.signature: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedFieldReferenceBeanMap()
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.getInjectedMethodReferenceBeanMap()
focal_class.full_signature: public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap()
focal_class.identifier: getInjectedMethodReferenceBeanMap
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>>
focal_class.signature: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap()
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.doGetInjectedBean(AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,
                                         InjectionMetadata.InjectedElement injectedElement)
focal_class.full_signature: @Override protected Object doGetInjectedBean(AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,
                                         InjectionMetadata.InjectedElement injectedElement)
focal_class.identifier: doGetInjectedBean
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,
                                         InjectionMetadata.InjectedElement injectedElement)
focal_class.return: Object
focal_class.signature: Object doGetInjectedBean(AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,
                                         InjectionMetadata.InjectedElement injectedElement)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.registerReferenceBean(String referencedBeanName, ReferenceBean referenceBean,
                                         AnnotationAttributes attributes,
                                         boolean localServiceBean, Class<?> interfaceClass)
focal_class.full_signature: private void registerReferenceBean(String referencedBeanName, ReferenceBean referenceBean,
                                         AnnotationAttributes attributes,
                                         boolean localServiceBean, Class<?> interfaceClass)
focal_class.identifier: registerReferenceBean
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName, ReferenceBean referenceBean,
                                         AnnotationAttributes attributes,
                                         boolean localServiceBean, Class<?> interfaceClass)
focal_class.return: void
focal_class.signature: void registerReferenceBean(String referencedBeanName, ReferenceBean referenceBean,
                                         AnnotationAttributes attributes,
                                         boolean localServiceBean, Class<?> interfaceClass)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.getReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.full_signature: private String getReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.identifier: getReferenceBeanName
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.return: String
focal_class.signature: String getReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.generateReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.full_signature: private String generateReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.identifier: generateReferenceBeanName
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.return: String
focal_class.signature: String generateReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.isLocalServiceBean(String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.full_signature: private boolean isLocalServiceBean(String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.identifier: isLocalServiceBean
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.return: boolean
focal_class.signature: boolean isLocalServiceBean(String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.existsServiceBean(String referencedBeanName)
focal_class.full_signature: private boolean existsServiceBean(String referencedBeanName)
focal_class.identifier: existsServiceBean
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName)
focal_class.return: boolean
focal_class.signature: boolean existsServiceBean(String referencedBeanName)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.isRemoteReferenceBean(ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.full_signature: private boolean isRemoteReferenceBean(ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.identifier: isRemoteReferenceBean
focal_class.modifiers: private
focal_class.parameters: (ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.return: boolean
focal_class.signature: boolean isRemoteReferenceBean(ReferenceBean referenceBean, AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.prepareReferenceBean(String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean)
focal_class.full_signature: private void prepareReferenceBean(String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean)
focal_class.identifier: prepareReferenceBean
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean)
focal_class.return: void
focal_class.signature: void prepareReferenceBean(String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.exportServiceBeanIfNecessary(String referencedBeanName)
focal_class.full_signature: private void exportServiceBeanIfNecessary(String referencedBeanName)
focal_class.identifier: exportServiceBeanIfNecessary
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName)
focal_class.return: void
focal_class.signature: void exportServiceBeanIfNecessary(String referencedBeanName)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.getServiceBean(String referencedBeanName)
focal_class.full_signature: private ServiceBean getServiceBean(String referencedBeanName)
focal_class.identifier: getServiceBean
focal_class.modifiers: private
focal_class.parameters: (String referencedBeanName)
focal_class.return: ServiceBean
focal_class.signature: ServiceBean getServiceBean(String referencedBeanName)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.buildInjectedObjectCacheKey(AnnotationAttributes attributes, Object bean, String beanName,
                                                   Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement)
focal_class.full_signature: @Override protected String buildInjectedObjectCacheKey(AnnotationAttributes attributes, Object bean, String beanName,
                                                   Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement)
focal_class.identifier: buildInjectedObjectCacheKey
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes, Object bean, String beanName,
                                                   Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement)
focal_class.return: String
focal_class.signature: String buildInjectedObjectCacheKey(AnnotationAttributes attributes, Object bean, String beanName,
                                                   Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.buildReferencedBeanName(AnnotationAttributes attributes, Class<?> serviceInterfaceType)
focal_class.full_signature: private String buildReferencedBeanName(AnnotationAttributes attributes, Class<?> serviceInterfaceType)
focal_class.identifier: buildReferencedBeanName
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, Class<?> serviceInterfaceType)
focal_class.return: String
focal_class.signature: String buildReferencedBeanName(AnnotationAttributes attributes, Class<?> serviceInterfaceType)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.buildReferenceBeanIfAbsent(String referenceBeanName, AnnotationAttributes attributes,
                                                       Class<?> referencedType)
focal_class.full_signature: private ReferenceBean buildReferenceBeanIfAbsent(String referenceBeanName, AnnotationAttributes attributes,
                                                       Class<?> referencedType)
focal_class.identifier: buildReferenceBeanIfAbsent
focal_class.modifiers: private
focal_class.parameters: (String referenceBeanName, AnnotationAttributes attributes,
                                                       Class<?> referencedType)
focal_class.return: ReferenceBean
focal_class.signature: ReferenceBean buildReferenceBeanIfAbsent(String referenceBeanName, AnnotationAttributes attributes,
                                                       Class<?> referencedType)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.cacheInjectedReferenceBean(ReferenceBean referenceBean,
                                              InjectionMetadata.InjectedElement injectedElement)
focal_class.full_signature: private void cacheInjectedReferenceBean(ReferenceBean referenceBean,
                                              InjectionMetadata.InjectedElement injectedElement)
focal_class.identifier: cacheInjectedReferenceBean
focal_class.modifiers: private
focal_class.parameters: (ReferenceBean referenceBean,
                                              InjectionMetadata.InjectedElement injectedElement)
focal_class.return: void
focal_class.signature: void cacheInjectedReferenceBean(ReferenceBean referenceBean,
                                              InjectionMetadata.InjectedElement injectedElement)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.setApplicationContext(ApplicationContext applicationContext)
focal_class.full_signature: @Override public void setApplicationContext(ApplicationContext applicationContext)
focal_class.identifier: setApplicationContext
focal_class.modifiers: @Override public
focal_class.parameters: (ApplicationContext applicationContext)
focal_class.return: void
focal_class.signature: void setApplicationContext(ApplicationContext applicationContext)
focal_class.class_method_signature: ReferenceAnnotationBeanPostProcessor.destroy()
focal_class.full_signature: @Override public void destroy()
focal_class.identifier: destroy
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void destroy()
focal_class.superclass: extends AbstractAnnotationBeanPostProcessor
focal_method.body: public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap() {
          return Collections.unmodifiableMap(injectedMethodReferenceBeanCache);
      }
focal_method.class_method_signature: ReferenceAnnotationBeanPostProcessor.getInjectedMethodReferenceBeanMap()
focal_method.full_signature: public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap()
focal_method.identifier: getInjectedMethodReferenceBeanMap
focal_method.invocations: unmodifiableMap
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>>
focal_method.signature: Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap()