@Override
	protected void parseInternal(Method method, Map<String, Integer> paramIndexes,
			Map<String, Integer> batchParamIndexes) throws DaoGenerateException {
		super.parseInternal(method, paramIndexes, batchParamIndexes);

		Annotation[][] annotations = method.getParameterAnnotations();
		Class<?>[] paramTypes = method.getParameterTypes();
		for (int index = 0; index < annotations.length; index++) {

			for (Annotation annotation : annotations[index]) {
				Class<? extends Annotation> annotationType = annotation.annotationType();
				if (MongoLimit.class.equals(annotationType)) {
					if (!ClassHelper.isAssignable(paramTypes[index], Integer.class, true)) {
						throw new DaoGenerateException("方法[" + method
								+ "]配置错误：@MongoLimit注解只能配置在int或者java.lang.Integer类型的参数上");
					}
					limitIndex = index;
				}
				if (MongoSkip.class.equals(annotationType)) {
					if (!ClassHelper.isAssignable(paramTypes[index], Integer.class, true)) {
						throw new DaoGenerateException("方法[" + method
								+ "]配置错误：@MongoSkip注解只能配置在int或者java.lang.Integer类型的参数上");
					}
					skipIndex = index;
				}
			}
		}

		// 解析MongoFind相关的Annotation配置:@MongoLimit,@MongoSkip,@MongoSort
		configFindExtension(method);
		// 解析是否包含@Unique配置
		configUnique(method);
		// 解析@MongoMapper配置
		configRowMapper(method);

		MongoFind findShell = method.getAnnotation(MongoFind.class);
		batchSize = findShell.batchSize();
	}