class AnnotatedLifecycleMethodStrategy implements LifecycleMethodStrategy {

    @Override
    public void invokeDestroyMethods(Object o) {
        final Class<?> aClass = o.getClass();
        Method[] destroyMethods = null;
        try {
            destroyMethods = destroyMethodsCache.get(aClass);
        } catch (ExecutionException e) {
            Throwables.propagate(e);
        }
        if (destroyMethods != null && destroyMethods.length > 0) {
            doInvokeLifecycleMethods(o, destroyMethods);
        }
    }

    public  AnnotatedLifecycleMethodStrategy();

}