code: public static List<PropertyValue> getMetaPropertyValues(Object self) {
          MetaClass metaClass = InvokerHelper.getMetaClass(self);
          List<MetaProperty> mps = metaClass.getProperties();
          List<PropertyValue> props = new ArrayList<PropertyValue>(mps.size());
          for (MetaProperty mp : mps) {
              props.add(new PropertyValue(self, mp));
          }
          return props;
      }
docs: Retrieves the list of {@link groovy.lang.MetaProperty} objects for 'self' and wraps it
  in a list of {@link groovy.lang.PropertyValue} objects that additionally provide
  the value for each property of 'self'.
  
  @param self the receiver object
  @return list of {@link groovy.lang.PropertyValue} objects
  @see groovy.util.Expando#getMetaPropertyValues()
  @since 1.0