test_class.declarator: cacheKeyMethodStoreImpl
test_class.modifier: private static
test_class.original_string: private static CacheKeyMethodStoreImpl cacheKeyMethodStoreImpl;
test_class.type: CacheKeyMethodStoreImpl
test_class.var_name: cacheKeyMethodStoreImpl
test_class.file: simple-spring-memcached/src/test/java/com/google/code/ssm/aop/support/CacheKeyMethodStoreImplTest.java
test_class.identifier: CacheKeyMethodStoreImplTest
test_case.body: @Test(expected = InvalidAnnotationException.class)
      public void invalidMethodSignature2() throws NoSuchMethodException {
          cacheKeyMethodStoreImpl.getKeyMethod(InvalidCacheKeyMethodSignatureModel2.class);
      }
test_case.class_method_signature: CacheKeyMethodStoreImplTest.invalidMethodSignature2()
test_case.full_signature: @Test(expected = InvalidAnnotationException.class) public void invalidMethodSignature2()
test_case.identifier: invalidMethodSignature2
test_case.invocations: getKeyMethod
test_case.modifiers: @Test(expected = InvalidAnnotationException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void invalidMethodSignature2()
focal_class.declarator: DEFAULT_KEY_METHOD_NAME = "toString"
focal_class.modifier: public static final
focal_class.original_string: public static final String DEFAULT_KEY_METHOD_NAME = "toString";
focal_class.type: String
focal_class.var_name: DEFAULT_KEY_METHOD_NAME
focal_class.declarator: map = new ConcurrentHashMap<Class<?>, Method>()
focal_class.modifier: private final
focal_class.original_string: private final Map<Class<?>, Method> map = new ConcurrentHashMap<Class<?>, Method>();
focal_class.type: Map<Class<?>, Method>
focal_class.var_name: map
focal_class.file: simple-spring-memcached/src/main/java/com/google/code/ssm/aop/support/CacheKeyMethodStoreImpl.java
focal_class.identifier: CacheKeyMethodStoreImpl
focal_class.interfaces: implements CacheKeyMethodStore
focal_class.class_method_signature: CacheKeyMethodStoreImpl.getKeyMethod(final Class<?> keyClass)
focal_class.full_signature: @Override public Method getKeyMethod(final Class<?> keyClass)
focal_class.identifier: getKeyMethod
focal_class.modifiers: @Override public
focal_class.parameters: (final Class<?> keyClass)
focal_class.return: Method
focal_class.signature: Method getKeyMethod(final Class<?> keyClass)
focal_class.class_method_signature: CacheKeyMethodStoreImpl.getFromClass(final Class<?> keyClass)
focal_class.full_signature: private Method getFromClass(final Class<?> keyClass)
focal_class.identifier: getFromClass
focal_class.modifiers: private
focal_class.parameters: (final Class<?> keyClass)
focal_class.return: Method
focal_class.signature: Method getFromClass(final Class<?> keyClass)
focal_class.class_method_signature: CacheKeyMethodStoreImpl.isCacheKeyMethod(final Method method)
focal_class.full_signature: private boolean isCacheKeyMethod(final Method method)
focal_class.identifier: isCacheKeyMethod
focal_class.modifiers: private
focal_class.parameters: (final Method method)
focal_class.return: boolean
focal_class.signature: boolean isCacheKeyMethod(final Method method)
focal_class.class_method_signature: CacheKeyMethodStoreImpl.add(final Class<?> key, final Method value)
focal_class.full_signature: private void add(final Class<?> key, final Method value)
focal_class.identifier: add
focal_class.modifiers: private
focal_class.parameters: (final Class<?> key, final Method value)
focal_class.return: void
focal_class.signature: void add(final Class<?> key, final Method value)
focal_class.class_method_signature: CacheKeyMethodStoreImpl.find(final Class<?> key)
focal_class.full_signature: private Method find(final Class<?> key)
focal_class.identifier: find
focal_class.modifiers: private
focal_class.parameters: (final Class<?> key)
focal_class.return: Method
focal_class.signature: Method find(final Class<?> key)
focal_method.body: @Override
      public Method getKeyMethod(final Class<?> keyClass) throws NoSuchMethodException {
          final Method storedMethod = find(keyClass);
          if (storedMethod != null) {
              return storedMethod;
          }
          Method targetMethod = getFromClass(keyClass);
  
          if (targetMethod == null) {
              // try to get from superclass
              Class<?> superKeyClass = keyClass.getSuperclass();
              if (superKeyClass != null) {
                  targetMethod = getKeyMethod(superKeyClass);
              }
  
              if (targetMethod == null || DEFAULT_KEY_METHOD_NAME.equals(targetMethod.getName())) {
                  targetMethod = keyClass.getMethod(DEFAULT_KEY_METHOD_NAME, (Class<?>[]) null);
              }
          }
  
          add(keyClass, targetMethod);
  
          return targetMethod;
      }
focal_method.class_method_signature: CacheKeyMethodStoreImpl.getKeyMethod(final Class<?> keyClass)
focal_method.full_signature: @Override public Method getKeyMethod(final Class<?> keyClass)
focal_method.identifier: getKeyMethod
focal_method.invocations: find getFromClass getSuperclass getKeyMethod equals getName getMethod add
focal_method.modifiers: @Override public
focal_method.parameters: (final Class<?> keyClass)
focal_method.return: Method
focal_method.signature: Method getKeyMethod(final Class<?> keyClass)