boon/src/main/java/org/boon/core/reflection/Annotations.java
private static Annotation[] extractAllAnnotationsForProperty( Class<?> clazz, String propertyName, boolean useRead ) {
        try {

            Annotation[] annotations = findPropertyAnnotations( clazz, propertyName, useRead );

            /* In the land of dynamic proxied AOP classes,
             * this class could be a proxy. This seems like a bug
             * waiting to happen. So far it has worked... */
            if ( annotations.length == 0 ) {
                annotations = findPropertyAnnotations( clazz.getSuperclass(), propertyName, useRead );
            }
            return annotations;
        } catch ( Exception ex ) {
            return Exceptions.handle ( Annotation[].class,
                    sputs (
                            "Unable to extract annotation for property",
                            propertyName, " of class ", clazz,
                            "  useRead ", useRead ), ex );
        }

    }
private static Annotation[] extractAllAnnotationsForProperty( Class<?> clazz, String propertyName, boolean useRead ) {
        try {

            Annotation[] annotations = findPropertyAnnotations( clazz, propertyName, useRead );

            /* In the land of dynamic proxied AOP classes,
             * this class could be a proxy. This seems like a bug
             * waiting to happen. So far it has worked... */
            if ( annotations.length == 0 ) {
                annotations = findPropertyAnnotations( clazz.getSuperclass(), propertyName, useRead );
            }
            return annotations;
        } catch ( Exception ex ) {
            return Exceptions.handle ( Annotation[].class,
                    sputs (
                            "Unable to extract annotation for property",
                            propertyName, " of class ", clazz,
                            "  useRead ", useRead ), ex );
        }

    }
private static Annotation [ ] extractAllAnnotationsForProperty ( Class < ? > clazz , String propertyName , boolean useRead ) { try { Annotation [ ] annotations = findPropertyAnnotations ( clazz , propertyName , useRead ) ; /* In the land of dynamic proxied AOP classes,
             * this class could be a proxy. This seems like a bug
             * waiting to happen. So far it has worked... */ if ( annotations . length == 0 ) { annotations = findPropertyAnnotations ( clazz . getSuperclass ( ) , propertyName , useRead ) ; } return annotations ; } catch ( Exception ex ) { return Exceptions . handle ( Annotation [ ] . class , sputs ( "Unable to extract annotation for property" , propertyName , " of class " , clazz , "  useRead " , useRead ) , ex ) ; } }
Extract all annotation for a given property.
Searches current class and if none found searches
super class for annotation. We do this because the class
could be proxied with AOP.

@param clazz        Class containing the property.
@param propertyName The name of the property.
@return
Extract all annotation for a given property . Searches current class and if none found searches super class for annotation . We do this because the class could be proxied with AOP .