code: public MethodDef[] getMethods(Context context,
                                            String PID,
                                            String sDefPID,
                                            Date asOfDateTime)
              throws ServerException {
          Class<?> deploymentClass = dynamicServiceToDeployment.get(sDefPID);
          if (deploymentClass != null) {
              try {
                  Method method =
                          deploymentClass.getMethod("reflectMethods", (Class[]) null);
                  return (MethodDef[]) method.invoke(null, (Object[]) null);
              } catch (Exception e) {
                  throw new GeneralException("[DynamicAccessImpl] returned error when "
                          + "attempting to get dynamic method definitions. "
                          + "The underlying error class was: "
                          + e.getClass().getName()
                          + ". The message "
                          + "was \""
                          + e.getMessage() + "\"");
              }
          }
          throw new MethodNotFoundException("[DynamicAccessImpl] The object, "
                  + PID + " does not have the dynamic Service Definition "
                  + sDefPID);
      }
docs: Get the method defintions for a given dynamic disseminator that
  is associated with the digital object. The dynamic disseminator is
  identified by the sDefPID.
  
  @param context
  @param PID
  identifier of digital object being reflected upon
  @param sDefPID
  identifier of dynamic Service Definition
  @param asOfDateTime
  @return an array of method definitions
  @throws ServerException