@SuppressWarnings("rawtypes")
    public static boolean isStaticProperty(Class clazz, String propertyName) {
        Method getter = BeanUtils.findDeclaredMethod(clazz, getGetterName(propertyName), (Class[])null);
        if (getter != null) {
            return isPublicStatic(getter);
        }

        try {
            Field f = clazz.getDeclaredField(propertyName);
            if (f != null) {
                return isPublicStatic(f);
            }
        }
        catch (NoSuchFieldException ignored) {
            // ignored
        }

        return false;
    }
@ SuppressWarnings ( "rawtypes" ) public static boolean isStaticProperty ( Class clazz , String propertyName ) { Method getter = BeanUtils . findDeclaredMethod ( clazz , getGetterName ( propertyName ) , ( Class [ ] ) null ) ; if ( getter != null ) { return isPublicStatic ( getter ) ; } try { Field f = clazz . getDeclaredField ( propertyName ) ; if ( f != null ) { return isPublicStatic ( f ) ; } } catch ( NoSuchFieldException ignored ) { } return false ; }
<p>Work out if the specified property is readable and static. Java introspection does not
recognize this concept of static properties but Groovy does. We also consider public static fields
as static properties with no getters/setters</p>

@param clazz The class to check for static property
@param propertyName The property name
@return true if the property with name propertyName has a static getter method