Search in sources :

Example 1 with AttRuntimeVisibleParameterAnnotations

use of com.android.dx.cf.attrib.AttRuntimeVisibleParameterAnnotations in project buck by facebook.

the class AttributeTranslator method getParameterAnnotations.

/**
     * Gets the parameter annotations out of a given method. This
     * combines both visible and invisible annotations into a single
     * result set.
     *
     * @param method {@code non-null;} the method in question
     * @return {@code non-null;} the list of annotation sets, which may be
     * empty
     */
public static AnnotationsList getParameterAnnotations(Method method) {
    AttributeList attribs = method.getAttributes();
    AttRuntimeVisibleParameterAnnotations visible = (AttRuntimeVisibleParameterAnnotations) attribs.findFirst(AttRuntimeVisibleParameterAnnotations.ATTRIBUTE_NAME);
    AttRuntimeInvisibleParameterAnnotations invisible = (AttRuntimeInvisibleParameterAnnotations) attribs.findFirst(AttRuntimeInvisibleParameterAnnotations.ATTRIBUTE_NAME);
    if (visible == null) {
        if (invisible == null) {
            return AnnotationsList.EMPTY;
        }
        return invisible.getParameterAnnotations();
    }
    if (invisible == null) {
        return visible.getParameterAnnotations();
    }
    return AnnotationsList.combine(visible.getParameterAnnotations(), invisible.getParameterAnnotations());
}
Also used : AttributeList(com.android.dx.cf.iface.AttributeList) AttRuntimeVisibleParameterAnnotations(com.android.dx.cf.attrib.AttRuntimeVisibleParameterAnnotations) AttRuntimeInvisibleParameterAnnotations(com.android.dx.cf.attrib.AttRuntimeInvisibleParameterAnnotations)

Example 2 with AttRuntimeVisibleParameterAnnotations

use of com.android.dx.cf.attrib.AttRuntimeVisibleParameterAnnotations in project buck by facebook.

the class StdAttributeFactory method runtimeVisibleParameterAnnotations.

/**
     * Parses a {@code RuntimeVisibleParameterAnnotations} attribute.
     */
private Attribute runtimeVisibleParameterAnnotations(DirectClassFile cf, int offset, int length, ParseObserver observer) {
    if (length < 2) {
        throwSeverelyTruncated();
    }
    AnnotationParser ap = new AnnotationParser(cf, offset, length, observer);
    AnnotationsList list = ap.parseParameterAttribute(AnnotationVisibility.RUNTIME);
    return new AttRuntimeVisibleParameterAnnotations(list, length);
}
Also used : AnnotationsList(com.android.dx.rop.annotation.AnnotationsList) AttRuntimeVisibleParameterAnnotations(com.android.dx.cf.attrib.AttRuntimeVisibleParameterAnnotations)

Aggregations

AttRuntimeVisibleParameterAnnotations (com.android.dx.cf.attrib.AttRuntimeVisibleParameterAnnotations)2 AttRuntimeInvisibleParameterAnnotations (com.android.dx.cf.attrib.AttRuntimeInvisibleParameterAnnotations)1 AttributeList (com.android.dx.cf.iface.AttributeList)1 AnnotationsList (com.android.dx.rop.annotation.AnnotationsList)1