docs: public Object getProperty(String property) {
          try {
              return getProxyBuilder().doGetProperty(property);
          } catch (MissingPropertyException mpe) {
              if ((getContext() != null) && (getContext().containsKey(property))) {
                  return getContext().get(property);
              } else {
                  try {
                      return getMetaClass().getProperty(this, property);
                  } catch(MissingPropertyException mpe2) {
                      if(mpe2.getProperty().equals(property) && propertyMissingDelegate != null) {
                          return propertyMissingDelegate.call(new Object[]{property});
                      }
                      throw mpe2;
                  }
              }
          }
      }