@Override
  public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
    AnnotationVisitor av = mv.visitParameterAnnotation(parameter, desc, visible);

    if (isStringType(myArgTypes[parameter + myParamAnnotationOffset])) {
      String annotationClassName = Type.getType(desc).getClassName();
      String pattern = myInstrumenter.getAnnotationPattern(annotationClassName);
      if (pattern != null) {
        String shortName = annotationClassName.substring(annotationClassName.lastIndexOf('.') + 1);
        PatternValue patternValue = new PatternValue(parameter + myParamAnnotationOffset, shortName, pattern);
        myParameterPatterns.add(patternValue);
        if (Strings.areSameInstance(pattern, PatternInstrumenter.NULL_PATTERN)) {
          return new MyAnnotationVisitor(av, patternValue);
        }
      }
    }

    return av;
  }
@Override
  public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible)