code: public static Object getPropertyOrStaticPropertyOrFieldValue(Object obj, String name) throws BeansException {
          BeanWrapper ref = new BeanWrapperImpl(obj);
          return getPropertyOrStaticPropertyOrFieldValue(ref, obj, name);
      }
docs: <p>Looks for a property of the reference instance with a given name.</p>
  <p>If found its value is returned. We follow the Java bean conventions with augmentation for groovy support
  and static fields/properties. We will therefore match, in this order:
  </p>
  <ol>
  <li>Standard public bean property (with getter or just public field, using normal introspection)
  <li>Public static property with getter method
  <li>Public static field
  </ol>
  
  @return property value or null if no property found