test_class.declarator: innerTest
test_class.modifier: @Reference(methods = {@Method(name = "sayHello", timeout = 1300, retries = 4, loadbalance = "random", async = true,
              actives = 3, executes = 5, deprecated = true, sticky = true, oninvoke = "i", onthrow = "t", onreturn = "r", cache = "c", validation = "v",
              arguments = {@Argument(index = 24, callback = true, type = "sss")})})
      private
test_class.original_string: @Reference(methods = {@Method(name = "sayHello", timeout = 1300, retries = 4, loadbalance = "random", async = true,
              actives = 3, executes = 5, deprecated = true, sticky = true, oninvoke = "i", onthrow = "t", onreturn = "r", cache = "c", validation = "v",
              arguments = {@Argument(index = 24, callback = true, type = "sss")})})
      private InnerTest innerTest;
test_class.type: InnerTest
test_class.var_name: innerTest
test_class.file: dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
test_class.identifier: ReferenceConfigTest
test_case.body: @Test
      public void testConstructWithReferenceAnnotation() throws NoSuchFieldException {
          Reference reference = getClass().getDeclaredField("innerTest").getAnnotation(Reference.class);
          ReferenceConfig referenceConfig = new ReferenceConfig(reference);
          Assertions.assertEquals(1, referenceConfig.getMethods().size());
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getName(), "sayHello");
          Assertions.assertEquals(1300, (int) ((MethodConfig) referenceConfig.getMethods().get(0)).getTimeout());
          Assertions.assertEquals(4, (int) ((MethodConfig) referenceConfig.getMethods().get(0)).getRetries());
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getLoadbalance(), "random");
          Assertions.assertEquals(3, (int) ((MethodConfig) referenceConfig.getMethods().get(0)).getActives());
          Assertions.assertEquals(5, (int) ((MethodConfig) referenceConfig.getMethods().get(0)).getExecutes());
          Assertions.assertTrue(((MethodConfig) referenceConfig.getMethods().get(0)).isAsync());
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getOninvoke(), "i");
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getOnreturn(), "r");
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getOnthrow(), "t");
          Assertions.assertEquals(((MethodConfig) referenceConfig.getMethods().get(0)).getCache(), "c");
      }
test_case.class_method_signature: ReferenceConfigTest.testConstructWithReferenceAnnotation()
test_case.full_signature: @Test public void testConstructWithReferenceAnnotation()
test_case.identifier: testConstructWithReferenceAnnotation
test_case.invocations: getAnnotation getDeclaredField getClass assertEquals size getMethods assertEquals getName get getMethods assertEquals getTimeout get getMethods assertEquals getRetries get getMethods assertEquals getLoadbalance get getMethods assertEquals getActives get getMethods assertEquals getExecutes get getMethods assertTrue isAsync get getMethods assertEquals getOninvoke get getMethods assertEquals getOnreturn get getMethods assertEquals getOnthrow get getMethods assertEquals getCache get getMethods
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testConstructWithReferenceAnnotation()
focal_class.declarator: logger = LoggerFactory.getLogger(ReferenceConfig.class)
focal_class.modifier: public static final
focal_class.original_string: public static final Logger logger = LoggerFactory.getLogger(ReferenceConfig.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final Protocol REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
focal_class.type: Protocol
focal_class.var_name: REF_PROTOCOL
focal_class.declarator: CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();
focal_class.type: Cluster
focal_class.var_name: CLUSTER
focal_class.declarator: PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension()
focal_class.modifier: private static final
focal_class.original_string: private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
focal_class.type: ProxyFactory
focal_class.var_name: PROXY_FACTORY
focal_class.declarator: ref
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile T ref;
focal_class.type: T
focal_class.var_name: ref
focal_class.declarator: invoker
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile Invoker<?> invoker;
focal_class.type: Invoker<?>
focal_class.var_name: invoker
focal_class.declarator: initialized
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean initialized;
focal_class.type: boolean
focal_class.var_name: initialized
focal_class.declarator: destroyed
focal_class.modifier: private transient volatile
focal_class.original_string: private transient volatile boolean destroyed;
focal_class.type: boolean
focal_class.var_name: destroyed
focal_class.declarator: repository
focal_class.modifier: private final
focal_class.original_string: private final ServiceRepository repository;
focal_class.type: ServiceRepository
focal_class.var_name: repository
focal_class.declarator: bootstrap
focal_class.modifier: private
focal_class.original_string: private DubboBootstrap bootstrap;
focal_class.type: DubboBootstrap
focal_class.var_name: bootstrap
focal_class.declarator: services
focal_class.modifier: private
focal_class.original_string: private String services;
focal_class.type: String
focal_class.var_name: services
focal_class.file: dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
focal_class.identifier: ReferenceConfig
focal_class.class_method_signature: ReferenceConfig.ReferenceConfig()
focal_class.full_signature: public  ReferenceConfig()
focal_class.identifier: ReferenceConfig
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ReferenceConfig()
focal_class.class_method_signature: ReferenceConfig.ReferenceConfig(Reference reference)
focal_class.full_signature: public  ReferenceConfig(Reference reference)
focal_class.identifier: ReferenceConfig
focal_class.modifiers: public
focal_class.parameters: (Reference reference)
focal_class.signature:  ReferenceConfig(Reference reference)
focal_class.class_method_signature: ReferenceConfig.getServices()
focal_class.full_signature: @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY) public String getServices()
focal_class.identifier: getServices
focal_class.modifiers: @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY) public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getServices()
focal_class.class_method_signature: ReferenceConfig.getSubscribedServices()
focal_class.full_signature: @Parameter(excluded = true) public Set<String> getSubscribedServices()
focal_class.identifier: getSubscribedServices
focal_class.modifiers: @Parameter(excluded = true) public
focal_class.parameters: ()
focal_class.return: Set<String>
focal_class.signature: Set<String> getSubscribedServices()
focal_class.class_method_signature: ReferenceConfig.setServices(String services)
focal_class.full_signature: public void setServices(String services)
focal_class.identifier: setServices
focal_class.modifiers: public
focal_class.parameters: (String services)
focal_class.return: void
focal_class.signature: void setServices(String services)
focal_class.class_method_signature: ReferenceConfig.get()
focal_class.full_signature: public synchronized T get()
focal_class.identifier: get
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T get()
focal_class.class_method_signature: ReferenceConfig.destroy()
focal_class.full_signature: public synchronized void destroy()
focal_class.identifier: destroy
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void destroy()
focal_class.class_method_signature: ReferenceConfig.init()
focal_class.full_signature: public synchronized void init()
focal_class.identifier: init
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void init()
focal_class.class_method_signature: ReferenceConfig.createProxy(Map<String, String> map)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes", "deprecation"}) private T createProxy(Map<String, String> map)
focal_class.identifier: createProxy
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes", "deprecation"}) private
focal_class.parameters: (Map<String, String> map)
focal_class.return: T
focal_class.signature: T createProxy(Map<String, String> map)
focal_class.class_method_signature: ReferenceConfig.checkInvokerAvailable()
focal_class.full_signature: private void checkInvokerAvailable()
focal_class.identifier: checkInvokerAvailable
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkInvokerAvailable()
focal_class.class_method_signature: ReferenceConfig.checkAndUpdateSubConfigs()
focal_class.full_signature: public void checkAndUpdateSubConfigs()
focal_class.identifier: checkAndUpdateSubConfigs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkAndUpdateSubConfigs()
focal_class.class_method_signature: ReferenceConfig.shouldJvmRefer(Map<String, String> map)
focal_class.full_signature: protected boolean shouldJvmRefer(Map<String, String> map)
focal_class.identifier: shouldJvmRefer
focal_class.modifiers: protected
focal_class.parameters: (Map<String, String> map)
focal_class.return: boolean
focal_class.signature: boolean shouldJvmRefer(Map<String, String> map)
focal_class.class_method_signature: ReferenceConfig.dispatch(Event event)
focal_class.full_signature: protected void dispatch(Event event)
focal_class.identifier: dispatch
focal_class.modifiers: protected
focal_class.parameters: (Event event)
focal_class.return: void
focal_class.signature: void dispatch(Event event)
focal_class.class_method_signature: ReferenceConfig.getBootstrap()
focal_class.full_signature: public DubboBootstrap getBootstrap()
focal_class.identifier: getBootstrap
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DubboBootstrap
focal_class.signature: DubboBootstrap getBootstrap()
focal_class.class_method_signature: ReferenceConfig.setBootstrap(DubboBootstrap bootstrap)
focal_class.full_signature: public void setBootstrap(DubboBootstrap bootstrap)
focal_class.identifier: setBootstrap
focal_class.modifiers: public
focal_class.parameters: (DubboBootstrap bootstrap)
focal_class.return: void
focal_class.signature: void setBootstrap(DubboBootstrap bootstrap)
focal_class.class_method_signature: ReferenceConfig.postProcessConfig()
focal_class.full_signature: private void postProcessConfig()
focal_class.identifier: postProcessConfig
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void postProcessConfig()
focal_class.class_method_signature: ReferenceConfig.getInvoker()
focal_class.full_signature:  Invoker<?> getInvoker()
focal_class.identifier: getInvoker
focal_class.parameters: ()
focal_class.return: Invoker<?>
focal_class.signature: Invoker<?> getInvoker()
focal_class.superclass: extends ReferenceConfigBase<T>
focal_method.body: public synchronized T get() {
          if (destroyed) {
              throw new IllegalStateException("The invoker of ReferenceConfig(" + url + ") has already destroyed!");
          }
          if (ref == null) {
              init();
          }
          return ref;
      }
focal_method.class_method_signature: ReferenceConfig.get()
focal_method.full_signature: public synchronized T get()
focal_method.identifier: get
focal_method.invocations: init
focal_method.modifiers: public synchronized
focal_method.parameters: ()
focal_method.return: T
focal_method.signature: T get()