/** * An order-sensitive invocation of {@link ClassVisitor#visitAnnotation(String, boolean)}. * * @param descriptor The annotation type's descriptor. * @param visible {@code true} if the annotation is visible at runtime. * @return An annotation visitor or {@code null} if the annotation should be ignored. */ protected AnnotationVisitor onVisitAnnotation(String descriptor, boolean visible) { return super.visitAnnotation(descriptor, visible); }
/** * {@inheritDoc} */ public AnnotationVisitor visit(String annotationTypeDescriptor, boolean visible) { return classVisitor.visitAnnotation(annotationTypeDescriptor, visible); }
/** * Visits an annotation of the class. * * @param descriptor the class descriptor of the annotation class. * @param visible {@literal true} if the annotation is visible at runtime. * @return a visitor to visit the annotation values, or {@literal null} if this visitor is not * interested in visiting this annotation. */ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { if (cv != null) { return cv.visitAnnotation(descriptor, visible); } return null; }
@Override public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) { constraint.assertAnnotation(); return super.visitAnnotation(descriptor, visible); }
@Override public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) { observedTypes.add(Type.getType(descriptor).getInternalName()); AnnotationVisitor annotationVisitor = super.visitAnnotation(descriptor, visible); if (annotationVisitor != null) { return new TypeReferenceAnnotationVisitor(annotationVisitor); } else { return IGNORE_ANNOTATION; } }
classVisitor.visitAnnotation(annotationDescriptor, /* visible = */ true), currentAnnotationOffset, /* named = */ true, classVisitor.visitAnnotation(annotationDescriptor, /* visible = */ false), currentAnnotationOffset, /* named = */ true,
@Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (visible && typeEquals(desc, io.promagent.annotations.Hook.class)) { return new AnnotationValueCollector("instruments", hookMetadata::addInstruments, Opcodes.ASM5, super.visitAnnotation(desc, visible)); } else { return super.visitAnnotation(desc, visible); } }