public void apply(ClassVisitor classVisitor, TypeDescription instrumentedType, AnnotationValueFilter annotationValueFilter) {
AnnotationAppender annotationAppender = new AnnotationAppender.Default(new AnnotationAppender.Target.OnType(classVisitor));
AnnotationAppender.ForTypeAnnotations.ofTypeVariable(annotationAppender,
annotationValueFilter,
AnnotationAppender.ForTypeAnnotations.VARIABLE_ON_TYPE,
typeVariableIndex,
instrumentedType.getTypeVariables());
TypeList.Generic interfaceTypes = instrumentedType.getInterfaces();
int interfaceTypeIndex = this.interfaceTypeIndex;
for (TypeDescription.Generic interfaceType : interfaceTypes.subList(this.interfaceTypeIndex, interfaceTypes.size())) {
annotationAppender = interfaceType.accept(AnnotationAppender.ForTypeAnnotations.ofInterfaceType(annotationAppender,
annotationValueFilter,
interfaceTypeIndex++));
}
AnnotationList declaredAnnotations = instrumentedType.getDeclaredAnnotations();
for (AnnotationDescription annotationDescription : declaredAnnotations.subList(annotationIndex, declaredAnnotations.size())) {
annotationAppender = annotationAppender.append(annotationDescription, annotationValueFilter);
}
}
}