test_class.declarator: callAssertion = new ArrayList<>()
test_class.modifier: static final
test_class.original_string: static final List<String> callAssertion = new ArrayList<>();
test_class.type: List<String>
test_class.var_name: callAssertion
test_class.declarator: thrown = ExpectedException.none()
test_class.modifier: @Rule public
test_class.original_string: @Rule public ExpectedException thrown = ExpectedException.none();
test_class.type: ExpectedException
test_class.var_name: thrown
test_class.declarator: lifecycleMethodStrategy
test_class.modifier: private
test_class.original_string: private AnnotatedLifecycleMethodStrategy lifecycleMethodStrategy;
test_class.type: AnnotatedLifecycleMethodStrategy
test_class.var_name: lifecycleMethodStrategy
test_class.file: everrest-core/src/test/java/org/everrest/core/impl/AnnotatedLifecycleMethodStrategyTest.java
test_class.identifier: AnnotatedLifecycleMethodStrategyTest
test_case.body: @Test
      public void invokesInitializeMethods() throws Exception {
          lifecycleMethodStrategy.invokeInitializeMethods(new WithLifeCycleAnnotation());
          assertTrue(String.format("Only \"init\" and \"nonPublicInit\" methods are expected to be invoked but %s were invoked", callAssertion),
                     callAssertion.size() == 2 && callAssertion.containsAll(newArrayList("init", "nonPublicInit")));
      }
test_case.class_method_signature: AnnotatedLifecycleMethodStrategyTest.invokesInitializeMethods()
test_case.full_signature: @Test public void invokesInitializeMethods()
test_case.identifier: invokesInitializeMethods
test_case.invocations: invokeInitializeMethods assertTrue format size containsAll newArrayList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void invokesInitializeMethods()
focal_class.declarator: POST_CONSTRUCT_METHOD_FILTER = new MethodFilter(PostConstruct.class)
focal_class.modifier: private static final
focal_class.original_string: private static final MethodFilter POST_CONSTRUCT_METHOD_FILTER = new MethodFilter(PostConstruct.class);
focal_class.type: MethodFilter
focal_class.var_name: POST_CONSTRUCT_METHOD_FILTER
focal_class.declarator: PRE_DESTROY_METHOD_FILTER    = new MethodFilter(PreDestroy.class)
focal_class.modifier: private static final
focal_class.original_string: private static final MethodFilter PRE_DESTROY_METHOD_FILTER    = new MethodFilter(PreDestroy.class);
focal_class.type: MethodFilter
focal_class.var_name: PRE_DESTROY_METHOD_FILTER
focal_class.declarator: initializeMethodsCache
focal_class.modifier: private final
focal_class.original_string: private final LoadingCache<Class<?>, Method[]> initializeMethodsCache;
focal_class.type: LoadingCache<Class<?>, Method[]>
focal_class.var_name: initializeMethodsCache
focal_class.declarator: destroyMethodsCache
focal_class.modifier: private final
focal_class.original_string: private final LoadingCache<Class<?>, Method[]> destroyMethodsCache;
focal_class.type: LoadingCache<Class<?>, Method[]>
focal_class.var_name: destroyMethodsCache
focal_class.file: everrest-core/src/main/java/org/everrest/core/impl/AnnotatedLifecycleMethodStrategy.java
focal_class.identifier: AnnotatedLifecycleMethodStrategy
focal_class.interfaces: implements LifecycleMethodStrategy
focal_class.class_method_signature: AnnotatedLifecycleMethodStrategy.AnnotatedLifecycleMethodStrategy()
focal_class.full_signature: public  AnnotatedLifecycleMethodStrategy()
focal_class.identifier: AnnotatedLifecycleMethodStrategy
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  AnnotatedLifecycleMethodStrategy()
focal_class.class_method_signature: AnnotatedLifecycleMethodStrategy.invokeInitializeMethods(Object o)
focal_class.full_signature: @Override public void invokeInitializeMethods(Object o)
focal_class.identifier: invokeInitializeMethods
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: void
focal_class.signature: void invokeInitializeMethods(Object o)
focal_class.class_method_signature: AnnotatedLifecycleMethodStrategy.invokeDestroyMethods(Object o)
focal_class.full_signature: @Override public void invokeDestroyMethods(Object o)
focal_class.identifier: invokeDestroyMethods
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: void
focal_class.signature: void invokeDestroyMethods(Object o)
focal_class.class_method_signature: AnnotatedLifecycleMethodStrategy.getLifecycleMethods(Class<?> cl, MethodFilter filter)
focal_class.full_signature: private Method[] getLifecycleMethods(Class<?> cl, MethodFilter filter)
focal_class.identifier: getLifecycleMethods
focal_class.modifiers: private
focal_class.parameters: (Class<?> cl, MethodFilter filter)
focal_class.return: Method[]
focal_class.signature: Method[] getLifecycleMethods(Class<?> cl, MethodFilter filter)
focal_class.class_method_signature: AnnotatedLifecycleMethodStrategy.doInvokeLifecycleMethods(Object o, Method[] lifecycleMethods)
focal_class.full_signature: private void doInvokeLifecycleMethods(Object o, Method[] lifecycleMethods)
focal_class.identifier: doInvokeLifecycleMethods
focal_class.modifiers: private
focal_class.parameters: (Object o, Method[] lifecycleMethods)
focal_class.return: void
focal_class.signature: void doInvokeLifecycleMethods(Object o, Method[] lifecycleMethods)
focal_method.body: @Override
      public void invokeInitializeMethods(Object o) {
          final Class<?> aClass = o.getClass();
          Method[] initMethods = null;
          try {
              initMethods = initializeMethodsCache.get(aClass);
          } catch (ExecutionException e) {
              Throwables.propagate(e);
          }
          if (initMethods != null && initMethods.length > 0) {
              doInvokeLifecycleMethods(o, initMethods);
          }
      }
focal_method.class_method_signature: AnnotatedLifecycleMethodStrategy.invokeInitializeMethods(Object o)
focal_method.full_signature: @Override public void invokeInitializeMethods(Object o)
focal_method.identifier: invokeInitializeMethods
focal_method.invocations: getClass get propagate doInvokeLifecycleMethods
focal_method.modifiers: @Override public
focal_method.parameters: (Object o)
focal_method.return: void
focal_method.signature: void invokeInitializeMethods(Object o)