/** * Visits an array value of the annotation. Note that arrays of primitive * types (such as byte, boolean, short, char, int, long, float or double) * can be passed as value to {@link #visit visit}. This is what * {@link ClassReader} does. * * @param name * the value name. * @return a visitor to visit the actual array value elements, or * <tt>null</tt> if this visitor is not interested in visiting these * values. The 'name' parameters passed to the methods of this * visitor are ignored. <i>All the array values must be visited * before calling other methods on this annotation visitor</i>. */ public AnnotationVisitor visitArray(String name) { if (av != null) { return av.visitArray(name); } return null; }
@Override public AnnotationVisitor visitArray(String name) { AnnotationVisitor v = av.visitArray(name); return v == null ? null : (v == av ? this : new RemappingAnnotationAdapter(v, remapper)); } }
@Override public AnnotationVisitor visitArray(final String name) { Printer p = this.p.visitArray(name); AnnotationVisitor av = this.av == null ? null : this.av .visitArray(name); return new TraceAnnotationVisitor(av, p); }
an.accept(av.visitAnnotation(name, an.desc)); } else if (value instanceof List) { AnnotationVisitor v = av.visitArray(name); List<?> array = (List<?>) value; for (int j = 0; j < array.size(); ++j) {
if (size == 0) { return readAnnotationValues(v - 2, buf, false, av.visitArray(name)); break; default: v = readAnnotationValues(v - 3, buf, false, av.visitArray(name));