test_class.declarator: builder = new ListKeyIndexBuilder()
test_class.modifier: private final
test_class.original_string: private final ListKeyIndexBuilder builder = new ListKeyIndexBuilder();
test_class.type: ListKeyIndexBuilder
test_class.var_name: builder
test_class.declarator: data
test_class.modifier: private
test_class.original_string: private AnnotationData data;
test_class.type: AnnotationData
test_class.var_name: data
test_class.file: simple-spring-memcached/src/test/java/com/google/code/ssm/aop/support/builder/ListKeyIndexBuilderTest.java
test_class.identifier: ListKeyIndexBuilderTest
test_case.body: @Test
      public void shouldPopulateListKeyIndex() throws Exception {
          final Class<? extends Annotation> expected = InvalidateMultiCache.class;
          final Method targetMethod = new Mirror().on(AnnotationDataDummy.class).reflect().method("populateListKey01").withArgs(List.class);
          data.setKeyIndexes(Collections.singleton(0));
  
          builder.populate(data, null, expected, targetMethod);
  
          assertEquals(0, data.getListIndexInKeys());
          assertEquals(0, data.getListIndexInMethodArgs());
      }
test_case.class_method_signature: ListKeyIndexBuilderTest.shouldPopulateListKeyIndex()
test_case.full_signature: @Test public void shouldPopulateListKeyIndex()
test_case.identifier: shouldPopulateListKeyIndex
test_case.invocations: withArgs method reflect on setKeyIndexes singleton populate assertEquals getListIndexInKeys assertEquals getListIndexInMethodArgs
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldPopulateListKeyIndex()
focal_class.file: simple-spring-memcached/src/main/java/com/google/code/ssm/aop/support/builder/ListKeyIndexBuilder.java
focal_class.identifier: ListKeyIndexBuilder
focal_class.class_method_signature: ListKeyIndexBuilder.build(final AnnotationData data, final Annotation annotation, final Class<? extends Annotation> expectedAnnotationClass,
              final Method targetMethod)
focal_class.full_signature: @Override protected void build(final AnnotationData data, final Annotation annotation, final Class<? extends Annotation> expectedAnnotationClass,
              final Method targetMethod)
focal_class.identifier: build
focal_class.modifiers: @Override protected
focal_class.parameters: (final AnnotationData data, final Annotation annotation, final Class<? extends Annotation> expectedAnnotationClass,
              final Method targetMethod)
focal_class.return: void
focal_class.signature: void build(final AnnotationData data, final Annotation annotation, final Class<? extends Annotation> expectedAnnotationClass,
              final Method targetMethod)
focal_class.class_method_signature: ListKeyIndexBuilder.support(Class<? extends Annotation> expectedAnnotationClass)
focal_class.full_signature: @Override protected boolean support(Class<? extends Annotation> expectedAnnotationClass)
focal_class.identifier: support
focal_class.modifiers: @Override protected
focal_class.parameters: (Class<? extends Annotation> expectedAnnotationClass)
focal_class.return: boolean
focal_class.signature: boolean support(Class<? extends Annotation> expectedAnnotationClass)
focal_class.class_method_signature: ListKeyIndexBuilder.getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_class.full_signature: private Integer getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_class.identifier: getListIndexInKeys
focal_class.modifiers: private
focal_class.parameters: (final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_class.return: Integer
focal_class.signature: Integer getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_class.class_method_signature: ListKeyIndexBuilder.isList(final Class<?> clazz)
focal_class.full_signature: private boolean isList(final Class<?> clazz)
focal_class.identifier: isList
focal_class.modifiers: private
focal_class.parameters: (final Class<?> clazz)
focal_class.return: boolean
focal_class.signature: boolean isList(final Class<?> clazz)
focal_class.superclass: extends AbstractDataBuilder
focal_method.body: private Integer getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod) {
          Integer listIndexInKeys = null;
          for (int i = 0; i < keyMethodParamTypes.length; i++) {
              if (isList(keyMethodParamTypes[i])) {
                  if (listIndexInKeys != null) {
                      throw new InvalidAnnotationException(
                              "There are more than one method's parameter annotated by @ParameterValueKeyProvider that is list "
                                      + targetMethod.toString());
                  }
                  listIndexInKeys = i;
              }
          }
  
          return listIndexInKeys;
      }
focal_method.class_method_signature: ListKeyIndexBuilder.getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_method.full_signature: private Integer getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_method.identifier: getListIndexInKeys
focal_method.invocations: isList toString
focal_method.modifiers: private
focal_method.parameters: (final Class<?>[] keyMethodParamTypes, final Method targetMethod)
focal_method.return: Integer
focal_method.signature: Integer getListIndexInKeys(final Class<?>[] keyMethodParamTypes, final Method targetMethod)