@Override public AnnotationVisitor visitParameterAnnotation(final int param, final String desc, final boolean visible) { final AnnotationVisitor toWrap = super.visitParameterAnnotation(param, desc, visible); if (visible) { return toWrap; } ParameterInfo parameterInfo = null; // should be the most recently added parameter, so iterate backward: for (int i = methodInfo.getParameters().size() - 1; i >= 0; i--) { final ParameterInfo atI = methodInfo.getParameters().get(i); if (atI.getName().equals(Integer.toString(param))) { parameterInfo = atI; break; } } return parameterInfo == null ? toWrap : new TopLevelAnnotationInflater(desc, toWrap, parameterInfo); } };
@Override public AnnotationVisitor visitMethodParameterAnnotation(int param, String desc, boolean visible) { MethodInfo methodInfo = ((MethodInfo) info); List<AnnotationInfo> annotationInfos = methodInfo.getParameterAnnotations(param); AnnotationInfo annotationInfo = new AnnotationInfo(desc); annotationInfos.add(annotationInfo); ParameterInfo parameterInfo = new ParameterInfo(methodInfo, param); methodInfo.getParameters().add(parameterInfo); index(annotationInfo, parameterInfo); return new InfoBuildingVisitor(annotationInfo).annotationVisitor(); } }
@Override public AnnotationVisitor visitMethodParameterAnnotation(int param, String desc, boolean visible) { MethodInfo methodInfo = ((MethodInfo) info); List<AnnotationInfo> annotationInfos = methodInfo.getParameterAnnotations(param); AnnotationInfo annotationInfo = new AnnotationInfo(desc); annotationInfos.add(annotationInfo); ParameterInfo parameterInfo = new ParameterInfo(methodInfo, param); methodInfo.getParameters().add(parameterInfo); index(annotationInfo, parameterInfo); return new InfoBuildingVisitor(annotationInfo).annotationVisitor(); } }