test_class.declarator: callbacks
test_class.modifier: private
test_class.original_string: private ShutdownHookCallbacks callbacks;
test_class.type: ShutdownHookCallbacks
test_class.var_name: callbacks
test_class.file: dubbo-common/src/test/java/org/apache/dubbo/common/lang/ShutdownHookCallbacksTest.java
test_class.identifier: ShutdownHookCallbacksTest
test_case.body: @Test
      public void testCallback() {
          callbacks.callback();
          DefaultShutdownHookCallback callback = (DefaultShutdownHookCallback) callbacks.getCallbacks().iterator().next();
          assertTrue(callback.isExecuted());
      }
test_case.class_method_signature: ShutdownHookCallbacksTest.testCallback()
test_case.full_signature: @Test public void testCallback()
test_case.identifier: testCallback
test_case.invocations: callback next iterator getCallbacks assertTrue isExecuted
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCallback()
focal_class.declarator: INSTANCE = new ShutdownHookCallbacks()
focal_class.modifier: public static final
focal_class.original_string: public static final ShutdownHookCallbacks INSTANCE = new ShutdownHookCallbacks();
focal_class.type: ShutdownHookCallbacks
focal_class.var_name: INSTANCE
focal_class.declarator: callbacks = new LinkedList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<ShutdownHookCallback> callbacks = new LinkedList<>();
focal_class.type: List<ShutdownHookCallback>
focal_class.var_name: callbacks
focal_class.file: dubbo-common/src/main/java/org/apache/dubbo/common/lang/ShutdownHookCallbacks.java
focal_class.identifier: ShutdownHookCallbacks
focal_class.class_method_signature: ShutdownHookCallbacks.ShutdownHookCallbacks()
focal_class.full_signature:   ShutdownHookCallbacks()
focal_class.identifier: ShutdownHookCallbacks
focal_class.parameters: ()
focal_class.signature:  ShutdownHookCallbacks()
focal_class.class_method_signature: ShutdownHookCallbacks.addCallback(ShutdownHookCallback callback)
focal_class.full_signature: public ShutdownHookCallbacks addCallback(ShutdownHookCallback callback)
focal_class.identifier: addCallback
focal_class.modifiers: public
focal_class.parameters: (ShutdownHookCallback callback)
focal_class.return: ShutdownHookCallbacks
focal_class.signature: ShutdownHookCallbacks addCallback(ShutdownHookCallback callback)
focal_class.class_method_signature: ShutdownHookCallbacks.getCallbacks()
focal_class.full_signature: public Collection<ShutdownHookCallback> getCallbacks()
focal_class.identifier: getCallbacks
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<ShutdownHookCallback>
focal_class.signature: Collection<ShutdownHookCallback> getCallbacks()
focal_class.class_method_signature: ShutdownHookCallbacks.clear()
focal_class.full_signature: public void clear()
focal_class.identifier: clear
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_class.class_method_signature: ShutdownHookCallbacks.loadCallbacks()
focal_class.full_signature: private void loadCallbacks()
focal_class.identifier: loadCallbacks
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadCallbacks()
focal_class.class_method_signature: ShutdownHookCallbacks.callback()
focal_class.full_signature: public void callback()
focal_class.identifier: callback
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void callback()
focal_method.body: public void callback() {
          getCallbacks().forEach(callback -> execute(callback::callback));
      }
focal_method.class_method_signature: ShutdownHookCallbacks.callback()
focal_method.full_signature: public void callback()
focal_method.identifier: callback
focal_method.invocations: forEach getCallbacks execute
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void callback()