test_class.declarator: monitorInvoker = new Invoker<MonitorService>() {
          @Override
          public Class<MonitorService> getInterface() {
              return MonitorService.class;
          }
  
          public URL getUrl() {
              return URL.valueOf("dubbo://127.0.0.1:7070?interval=1000");
          }
  
          @Override
          public boolean isAvailable() {
              return false;
          }
  
          @Override
          public Result invoke(Invocation invocation) throws RpcException {
              return null;
          }
  
          @Override
          public void destroy() {
          }
      }
test_class.modifier: private final
test_class.original_string: private final Invoker<MonitorService> monitorInvoker = new Invoker<MonitorService>() {
          @Override
          public Class<MonitorService> getInterface() {
              return MonitorService.class;
          }
  
          public URL getUrl() {
              return URL.valueOf("dubbo://127.0.0.1:7070?interval=1000");
          }
  
          @Override
          public boolean isAvailable() {
              return false;
          }
  
          @Override
          public Result invoke(Invocation invocation) throws RpcException {
              return null;
          }
  
          @Override
          public void destroy() {
          }
      };
test_class.type: Invoker<MonitorService>
test_class.var_name: monitorInvoker
test_class.declarator: lastStatistics
test_class.modifier: private volatile
test_class.original_string: private volatile URL lastStatistics;
test_class.type: URL
test_class.var_name: lastStatistics
test_class.declarator: monitorService = new MonitorService() {
  
          public void collect(URL statistics) {
              DubboMonitorTest.this.lastStatistics = statistics;
          }
  
          public List<URL> lookup(URL query) {
              return Arrays.asList(DubboMonitorTest.this.lastStatistics);
          }
  
      }
test_class.modifier: private final
test_class.original_string: private final MonitorService monitorService = new MonitorService() {
  
          public void collect(URL statistics) {
              DubboMonitorTest.this.lastStatistics = statistics;
          }
  
          public List<URL> lookup(URL query) {
              return Arrays.asList(DubboMonitorTest.this.lastStatistics);
          }
  
      };
test_class.type: MonitorService
test_class.var_name: monitorService
test_class.file: dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorTest.java
test_class.identifier: DubboMonitorTest
test_case.body: @Test
      public void testLookUp() {
          Invoker invoker = mock(Invoker.class);
          MonitorService monitorService = mock(MonitorService.class);
  
          URL queryUrl = URL.valueOf("dubbo://127.0.0.1:7070?interval=20");
          given(invoker.getUrl()).willReturn(queryUrl);
          DubboMonitor dubboMonitor = new DubboMonitor(invoker, monitorService);
  
          dubboMonitor.lookup(queryUrl);
  
          verify(monitorService).lookup(eq(queryUrl));
      }
test_case.class_method_signature: DubboMonitorTest.testLookUp()
test_case.full_signature: @Test public void testLookUp()
test_case.identifier: testLookUp
test_case.invocations: mock mock valueOf willReturn given getUrl lookup lookup verify eq
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testLookUp()
focal_class.declarator: logger = LoggerFactory.getLogger(DubboMonitor.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(DubboMonitor.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: LENGTH = 10
focal_class.modifier: private static final
focal_class.original_string: private static final int LENGTH = 10;
focal_class.type: int
focal_class.var_name: LENGTH
focal_class.declarator: scheduledExecutorService = Executors.newScheduledThreadPool(3, new NamedThreadFactory("DubboMonitorSendTimer", true))
focal_class.modifier: private final
focal_class.original_string: private final ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(3, new NamedThreadFactory("DubboMonitorSendTimer", true));
focal_class.type: ScheduledExecutorService
focal_class.var_name: scheduledExecutorService
focal_class.declarator: sendFuture
focal_class.modifier: private final
focal_class.original_string: private final ScheduledFuture<?> sendFuture;
focal_class.type: ScheduledFuture<?>
focal_class.var_name: sendFuture
focal_class.declarator: monitorInvoker
focal_class.modifier: private final
focal_class.original_string: private final Invoker<MonitorService> monitorInvoker;
focal_class.type: Invoker<MonitorService>
focal_class.var_name: monitorInvoker
focal_class.declarator: monitorService
focal_class.modifier: private final
focal_class.original_string: private final MonitorService monitorService;
focal_class.type: MonitorService
focal_class.var_name: monitorService
focal_class.declarator: statisticsMap = new ConcurrentHashMap<Statistics, AtomicReference<long[]>>()
focal_class.modifier: private final
focal_class.original_string: private final ConcurrentMap<Statistics, AtomicReference<long[]>> statisticsMap = new ConcurrentHashMap<Statistics, AtomicReference<long[]>>();
focal_class.type: ConcurrentMap<Statistics, AtomicReference<long[]>>
focal_class.var_name: statisticsMap
focal_class.file: dubbo-monitor/dubbo-monitor-default/src/main/java/org/apache/dubbo/monitor/dubbo/DubboMonitor.java
focal_class.identifier: DubboMonitor
focal_class.interfaces: implements Monitor
focal_class.class_method_signature: DubboMonitor.DubboMonitor(Invoker<MonitorService> monitorInvoker, MonitorService monitorService)
focal_class.full_signature: public  DubboMonitor(Invoker<MonitorService> monitorInvoker, MonitorService monitorService)
focal_class.identifier: DubboMonitor
focal_class.modifiers: public
focal_class.parameters: (Invoker<MonitorService> monitorInvoker, MonitorService monitorService)
focal_class.signature:  DubboMonitor(Invoker<MonitorService> monitorInvoker, MonitorService monitorService)
focal_class.class_method_signature: DubboMonitor.send()
focal_class.full_signature: public void send()
focal_class.identifier: send
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void send()
focal_class.class_method_signature: DubboMonitor.collect(URL url)
focal_class.full_signature: @Override public void collect(URL url)
focal_class.identifier: collect
focal_class.modifiers: @Override public
focal_class.parameters: (URL url)
focal_class.return: void
focal_class.signature: void collect(URL url)
focal_class.class_method_signature: DubboMonitor.lookup(URL query)
focal_class.full_signature: @Override public List<URL> lookup(URL query)
focal_class.identifier: lookup
focal_class.modifiers: @Override public
focal_class.parameters: (URL query)
focal_class.return: List<URL>
focal_class.signature: List<URL> lookup(URL query)
focal_class.class_method_signature: DubboMonitor.getUrl()
focal_class.full_signature: @Override public URL getUrl()
focal_class.identifier: getUrl
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: URL
focal_class.signature: URL getUrl()
focal_class.class_method_signature: DubboMonitor.isAvailable()
focal_class.full_signature: @Override public boolean isAvailable()
focal_class.identifier: isAvailable
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isAvailable()
focal_class.class_method_signature: DubboMonitor.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_method.body: @Override
      public List<URL> lookup(URL query) {
          return monitorService.lookup(query);
      }
focal_method.class_method_signature: DubboMonitor.lookup(URL query)
focal_method.full_signature: @Override public List<URL> lookup(URL query)
focal_method.identifier: lookup
focal_method.invocations: lookup
focal_method.modifiers: @Override public
focal_method.parameters: (URL query)
focal_method.return: List<URL>
focal_method.signature: List<URL> lookup(URL query)