/**
  * Retrieves the description for the supplied <code>Method</code> from the metadata. Uses the
  * method name is no description is present in the metadata.
  */
 protected String getOperationDescription(Method method, String beanKey) {
   PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method);
   if (pd != null) {
     ManagedAttribute ma = this.attributeSource.getManagedAttribute(method);
     if (ma != null && StringUtils.hasText(ma.getDescription())) {
       return ma.getDescription();
     }
     return method.getName();
   } else {
     ManagedOperation mo = this.attributeSource.getManagedOperation(method);
     if (mo != null && StringUtils.hasText(mo.getDescription())) {
       return mo.getDescription();
     }
     return method.getName();
   }
 }
 /**
  * Adds descriptor fields from the <code>ManagedAttribute</code> attribute to the attribute
  * descriptor. Specifically, adds the <code>currencyTimeLimit</code> descriptor field if it is
  * present in the metadata.
  */
 protected void populateOperationDescriptor(Descriptor desc, Method method, String beanKey) {
   ManagedOperation mo = this.attributeSource.getManagedOperation(method);
   if (mo != null) {
     applyCurrencyTimeLimit(desc, mo.getCurrencyTimeLimit());
   }
 }