test_class.declarator: TEST_FIELD = new Object()
test_class.modifier: @DubboReference(
              interfaceClass = CharSequence.class,
              interfaceName = "java.lang.CharSequence",
              version = "1.0.0", group = "TEST_GROUP", url = "dubbo://localhost:12345",
              client = "client", generic = true, injvm = true,
              check = false, init = false, lazy = true,
              stubevent = true, reconnect = "reconnect", sticky = true,
              proxy = "javassist", stub = "java.lang.CharSequence", cluster = "failover",
              connections = 3, callbacks = 1, onconnect = "onconnect", ondisconnect = "ondisconnect",
              owner = "owner", layer = "layer", retries = 1,
              loadbalance = "random", async = true, actives = 3,
              sent = true, mock = "mock", validation = "validation",
              timeout = 3, cache = "cache", filter = {"echo", "generic", "accesslog"},
              listener = {"deprecated"}, parameters = {"n1=v1  ", "n2 = v2 ", "  n3 =   v3  "},
              application = "application",
              module = "module", consumer = "consumer", monitor = "monitor", registry = {"registry"},
              // @since 2.7.3
              id = "reference",
              // @since 2.7.8
              services = {"service1", "service2", "service3", "service2", "service1"}
      )
      private static final
test_class.original_string: @DubboReference(
              interfaceClass = CharSequence.class,
              interfaceName = "java.lang.CharSequence",
              version = "1.0.0", group = "TEST_GROUP", url = "dubbo://localhost:12345",
              client = "client", generic = true, injvm = true,
              check = false, init = false, lazy = true,
              stubevent = true, reconnect = "reconnect", sticky = true,
              proxy = "javassist", stub = "java.lang.CharSequence", cluster = "failover",
              connections = 3, callbacks = 1, onconnect = "onconnect", ondisconnect = "ondisconnect",
              owner = "owner", layer = "layer", retries = 1,
              loadbalance = "random", async = true, actives = 3,
              sent = true, mock = "mock", validation = "validation",
              timeout = 3, cache = "cache", filter = {"echo", "generic", "accesslog"},
              listener = {"deprecated"}, parameters = {"n1=v1  ", "n2 = v2 ", "  n3 =   v3  "},
              application = "application",
              module = "module", consumer = "consumer", monitor = "monitor", registry = {"registry"},
              // @since 2.7.3
              id = "reference",
              // @since 2.7.8
              services = {"service1", "service2", "service3", "service2", "service1"}
      )
      private static final Object TEST_FIELD = new Object();
test_class.type: Object
test_class.var_name: TEST_FIELD
test_class.declarator: context
test_class.modifier: @Autowired
      private
test_class.original_string: @Autowired
      private ApplicationContext context;
test_class.type: ApplicationContext
test_class.var_name: context
test_class.file: dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilderTest.java
test_class.identifier: ReferenceBeanBuilderTest
test_case.body: @Test
      public void testBuild() throws Exception {
          DubboReference reference = findAnnotation(findField(getClass(), "TEST_FIELD"), DubboReference.class);
          AnnotationAttributes attributes = AnnotationUtils.getAnnotationAttributes(reference, false, false);
          ReferenceBeanBuilder beanBuilder = ReferenceBeanBuilder.create(attributes, context);
          beanBuilder.interfaceClass(CharSequence.class);
          ReferenceBean referenceBean = beanBuilder.build();
          Assert.assertEquals(CharSequence.class, referenceBean.getInterfaceClass());
          Assert.assertEquals("1.0.0", referenceBean.getVersion());
          Assert.assertEquals("TEST_GROUP", referenceBean.getGroup());
          Assert.assertEquals("dubbo://localhost:12345", referenceBean.getUrl());
          Assert.assertEquals("client", referenceBean.getClient());
          Assert.assertEquals(true, referenceBean.isGeneric());
          Assert.assertTrue(referenceBean.isInjvm());
          Assert.assertEquals(false, referenceBean.isCheck());
          Assert.assertFalse(referenceBean.isInit());
          Assert.assertEquals(true, referenceBean.getLazy());
          Assert.assertEquals(true, referenceBean.getStubevent());
          Assert.assertEquals("reconnect", referenceBean.getReconnect());
          Assert.assertEquals(true, referenceBean.getSticky());
          Assert.assertEquals("javassist", referenceBean.getProxy());
          Assert.assertEquals("java.lang.CharSequence", referenceBean.getStub());
          Assert.assertEquals("failover", referenceBean.getCluster());
          Assert.assertEquals(Integer.valueOf(3), referenceBean.getConnections());
          Assert.assertEquals(Integer.valueOf(1), referenceBean.getCallbacks());
          Assert.assertEquals("onconnect", referenceBean.getOnconnect());
          Assert.assertEquals("ondisconnect", referenceBean.getOndisconnect());
          Assert.assertEquals("owner", referenceBean.getOwner());
          Assert.assertEquals("layer", referenceBean.getLayer());
          Assert.assertEquals(Integer.valueOf(1), referenceBean.getRetries());
          Assert.assertEquals("random", referenceBean.getLoadbalance());
          Assert.assertEquals(true, referenceBean.isAsync());
          Assert.assertEquals(Integer.valueOf(3), referenceBean.getActives());
          Assert.assertEquals(true, referenceBean.getSent());
          Assert.assertEquals("mock", referenceBean.getMock());
          Assert.assertEquals("validation", referenceBean.getValidation());
          Assert.assertEquals(Integer.valueOf(3), referenceBean.getTimeout());
          Assert.assertEquals("cache", referenceBean.getCache());
          Assert.assertEquals("echo,generic,accesslog", referenceBean.getFilter());
          Assert.assertEquals("deprecated", referenceBean.getListener());
          Assert.assertEquals("reference", referenceBean.getId());
          Assert.assertEquals(ofSet("service1", "service2", "service3"), referenceBean.getSubscribedServices());
  
          // parameters
          Map<String, String> parameters = new HashMap<String, String>();
          parameters.put("n1", "v1");
          parameters.put("n2", "v2");
          parameters.put("n3", "v3");
          Assert.assertEquals(parameters, referenceBean.getParameters());
  
          // Asserts Null fields
          Assertions.assertThrows(IllegalStateException.class, () -> referenceBean.getApplication());
          Assert.assertNull(referenceBean.getModule());
          Assert.assertNull(referenceBean.getConsumer());
          Assert.assertNull(referenceBean.getMonitor());
          Assert.assertEquals(Collections.emptyList(), referenceBean.getRegistries());
      }
test_case.class_method_signature: ReferenceBeanBuilderTest.testBuild()
test_case.full_signature: @Test public void testBuild()
test_case.identifier: testBuild
test_case.invocations: findAnnotation findField getClass getAnnotationAttributes create interfaceClass build assertEquals getInterfaceClass assertEquals getVersion assertEquals getGroup assertEquals getUrl assertEquals getClient assertEquals isGeneric assertTrue isInjvm assertEquals isCheck assertFalse isInit assertEquals getLazy assertEquals getStubevent assertEquals getReconnect assertEquals getSticky assertEquals getProxy assertEquals getStub assertEquals getCluster assertEquals valueOf getConnections assertEquals valueOf getCallbacks assertEquals getOnconnect assertEquals getOndisconnect assertEquals getOwner assertEquals getLayer assertEquals valueOf getRetries assertEquals getLoadbalance assertEquals isAsync assertEquals valueOf getActives assertEquals getSent assertEquals getMock assertEquals getValidation assertEquals valueOf getTimeout assertEquals getCache assertEquals getFilter assertEquals getListener assertEquals getId assertEquals ofSet getSubscribedServices put put put assertEquals getParameters assertThrows getApplication assertNull getModule assertNull getConsumer assertNull getMonitor assertEquals emptyList getRegistries
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBuild()
focal_class.declarator: IGNORE_FIELD_NAMES = of("application", "module", "consumer", "monitor", "registry")
focal_class.modifier: static final
focal_class.original_string: static final String[] IGNORE_FIELD_NAMES = of("application", "module", "consumer", "monitor", "registry");
focal_class.type: String[]
focal_class.var_name: IGNORE_FIELD_NAMES
focal_class.file: dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java
focal_class.identifier: ReferenceBeanBuilder
focal_class.class_method_signature: ReferenceBeanBuilder.ReferenceBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.full_signature: private  ReferenceBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.identifier: ReferenceBeanBuilder
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.signature:  ReferenceBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.class_method_signature: ReferenceBeanBuilder.configureInterface(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.full_signature: private void configureInterface(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.identifier: configureInterface
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.return: void
focal_class.signature: void configureInterface(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.class_method_signature: ReferenceBeanBuilder.configureConsumerConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.full_signature: private void configureConsumerConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.identifier: configureConsumerConfig
focal_class.modifiers: private
focal_class.parameters: (AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.return: void
focal_class.signature: void configureConsumerConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.class_method_signature: ReferenceBeanBuilder.configureMethodConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.full_signature:  void configureMethodConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.identifier: configureMethodConfig
focal_class.parameters: (AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.return: void
focal_class.signature: void configureMethodConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean)
focal_class.class_method_signature: ReferenceBeanBuilder.doBuild()
focal_class.full_signature: @Override protected ReferenceBean doBuild()
focal_class.identifier: doBuild
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: ReferenceBean
focal_class.signature: ReferenceBean doBuild()
focal_class.class_method_signature: ReferenceBeanBuilder.preConfigureBean(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.full_signature: @Override protected void preConfigureBean(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.identifier: preConfigureBean
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.return: void
focal_class.signature: void preConfigureBean(AnnotationAttributes attributes, ReferenceBean referenceBean)
focal_class.class_method_signature: ReferenceBeanBuilder.resolveModuleConfigBeanName(AnnotationAttributes attributes)
focal_class.full_signature: @Override protected String resolveModuleConfigBeanName(AnnotationAttributes attributes)
focal_class.identifier: resolveModuleConfigBeanName
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes)
focal_class.return: String
focal_class.signature: String resolveModuleConfigBeanName(AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceBeanBuilder.resolveApplicationConfigBeanName(AnnotationAttributes attributes)
focal_class.full_signature: @Override protected String resolveApplicationConfigBeanName(AnnotationAttributes attributes)
focal_class.identifier: resolveApplicationConfigBeanName
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes)
focal_class.return: String
focal_class.signature: String resolveApplicationConfigBeanName(AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceBeanBuilder.resolveRegistryConfigBeanNames(AnnotationAttributes attributes)
focal_class.full_signature: @Override protected String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes)
focal_class.identifier: resolveRegistryConfigBeanNames
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes)
focal_class.return: String[]
focal_class.signature: String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceBeanBuilder.resolveMonitorConfigBeanName(AnnotationAttributes attributes)
focal_class.full_signature: @Override protected String resolveMonitorConfigBeanName(AnnotationAttributes attributes)
focal_class.identifier: resolveMonitorConfigBeanName
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes)
focal_class.return: String
focal_class.signature: String resolveMonitorConfigBeanName(AnnotationAttributes attributes)
focal_class.class_method_signature: ReferenceBeanBuilder.postConfigureBean(AnnotationAttributes attributes, ReferenceBean bean)
focal_class.full_signature: @Override protected void postConfigureBean(AnnotationAttributes attributes, ReferenceBean bean)
focal_class.identifier: postConfigureBean
focal_class.modifiers: @Override protected
focal_class.parameters: (AnnotationAttributes attributes, ReferenceBean bean)
focal_class.return: void
focal_class.signature: void postConfigureBean(AnnotationAttributes attributes, ReferenceBean bean)
focal_class.class_method_signature: ReferenceBeanBuilder.create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_class.full_signature: @Deprecated public static ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_class.identifier: create
focal_class.modifiers: @Deprecated public static
focal_class.parameters: (Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_class.return: ReferenceBeanBuilder
focal_class.signature: ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_class.class_method_signature: ReferenceBeanBuilder.create(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.full_signature: public static ReferenceBeanBuilder create(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.return: ReferenceBeanBuilder
focal_class.signature: ReferenceBeanBuilder create(AnnotationAttributes attributes, ApplicationContext applicationContext)
focal_class.superclass: extends AnnotatedInterfaceConfigBeanBuilder<ReferenceBean>
focal_method.body: @Deprecated
      public static ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext) {
          return create(fromMap(getAttributes(reference, applicationContext.getEnvironment(), true)), applicationContext);
      }
focal_method.class_method_signature: ReferenceBeanBuilder.create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_method.full_signature: @Deprecated public static ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_method.identifier: create
focal_method.invocations: create fromMap getAttributes getEnvironment
focal_method.modifiers: @Deprecated public static
focal_method.parameters: (Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)
focal_method.return: ReferenceBeanBuilder
focal_method.signature: ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,
                                                ApplicationContext applicationContext)