test_class.declarator: store = new BridgeMethodMappingStoreImpl()
test_class.modifier: private final
test_class.original_string: private final BridgeMethodMappingStoreImpl store = new BridgeMethodMappingStoreImpl();
test_class.type: BridgeMethodMappingStoreImpl
test_class.var_name: store
test_class.file: simple-spring-memcached/src/test/java/com/google/code/ssm/aop/support/BridgeMethodMappingStoreImplTest.java
test_class.identifier: BridgeMethodMappingStoreImplTest
test_case.body: @Test(expected = RuntimeException.class)
      public void testNoMappingsAnnotation() {
          store.getTargetParamsTypes(SubGeneric2.class, "set", new Class<?>[] { Object.class, Object.class });
      }
test_case.class_method_signature: BridgeMethodMappingStoreImplTest.testNoMappingsAnnotation()
test_case.full_signature: @Test(expected = RuntimeException.class) public void testNoMappingsAnnotation()
test_case.identifier: testNoMappingsAnnotation
test_case.invocations: getTargetParamsTypes
test_case.modifiers: @Test(expected = RuntimeException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNoMappingsAnnotation()
focal_class.declarator: map = new ConcurrentHashMap<Class<?>, Map<String, Map<String, Class<?>[]>>>()
focal_class.modifier: private final
focal_class.original_string: private final Map<Class<?>, Map<String, Map<String, Class<?>[]>>> map = new ConcurrentHashMap<Class<?>, Map<String, Map<String, Class<?>[]>>>();
focal_class.type: Map<Class<?>, Map<String, Map<String, Class<?>[]>>>
focal_class.var_name: map
focal_class.file: simple-spring-memcached/src/main/java/com/google/code/ssm/aop/support/BridgeMethodMappingStoreImpl.java
focal_class.identifier: BridgeMethodMappingStoreImpl
focal_class.interfaces: implements BridgeMethodMappingStore
focal_class.class_method_signature: BridgeMethodMappingStoreImpl.getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_class.full_signature: @Override public Class<?>[] getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_class.identifier: getTargetParamsTypes
focal_class.modifiers: @Override public
focal_class.parameters: (final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_class.return: Class<?>[]
focal_class.signature: Class<?>[] getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_class.class_method_signature: BridgeMethodMappingStoreImpl.processBridgeMethodMappingsAnnotation(final Class<?> clazz)
focal_class.full_signature: private void processBridgeMethodMappingsAnnotation(final Class<?> clazz)
focal_class.identifier: processBridgeMethodMappingsAnnotation
focal_class.modifiers: private
focal_class.parameters: (final Class<?> clazz)
focal_class.return: void
focal_class.signature: void processBridgeMethodMappingsAnnotation(final Class<?> clazz)
focal_class.class_method_signature: BridgeMethodMappingStoreImpl.addMethodMapping(final Class<?> clazz, final Map<String, Map<String, Class<?>[]>> methodNameMap, final String methodName,
              final Class<?>[] erasedParamTypes, final Class<?>[] targetParamTypes)
focal_class.full_signature: private void addMethodMapping(final Class<?> clazz, final Map<String, Map<String, Class<?>[]>> methodNameMap, final String methodName,
              final Class<?>[] erasedParamTypes, final Class<?>[] targetParamTypes)
focal_class.identifier: addMethodMapping
focal_class.modifiers: private
focal_class.parameters: (final Class<?> clazz, final Map<String, Map<String, Class<?>[]>> methodNameMap, final String methodName,
              final Class<?>[] erasedParamTypes, final Class<?>[] targetParamTypes)
focal_class.return: void
focal_class.signature: void addMethodMapping(final Class<?> clazz, final Map<String, Map<String, Class<?>[]>> methodNameMap, final String methodName,
              final Class<?>[] erasedParamTypes, final Class<?>[] targetParamTypes)
focal_method.body: @Override
      public Class<?>[] getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes) {
          if (!map.containsKey(clazz)) {
              // initialize all class' bridge method mappings
              processBridgeMethodMappingsAnnotation(clazz);
          }
  
          Map<String, Map<String, Class<?>[]>> methodNameMap = map.get(clazz);
          Map<String, Class<?>[]> erasedParamTypesMap = null;
          Class<?>[] targetParamTypes = null;
          if (methodNameMap != null) {
              erasedParamTypesMap = methodNameMap.get(methodName);
          }
  
          String key = Arrays.toString(erasedParamTypes);
          if (erasedParamTypesMap != null) {
              targetParamTypes = erasedParamTypesMap.get(key);
          }
  
          if (targetParamTypes == null) {
              throw new RuntimeException(String.format(
                      "Annotation [%s] must be defined on [%s] for bridge method [%s] with erased param types [%s]",
                      BridgeMethodMappings.class.getName(), clazz.getName(), methodName, key));
          }
  
          return targetParamTypes;
      }
focal_method.class_method_signature: BridgeMethodMappingStoreImpl.getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_method.full_signature: @Override public Class<?>[] getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_method.identifier: getTargetParamsTypes
focal_method.invocations: containsKey processBridgeMethodMappingsAnnotation get get toString get format getName getName
focal_method.modifiers: @Override public
focal_method.parameters: (final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)
focal_method.return: Class<?>[]
focal_method.signature: Class<?>[] getTargetParamsTypes(final Class<?> clazz, final String methodName, final Class<?>[] erasedParamTypes)