code: public RegisteredCommand findCommand(ApplicationDefinition appDef, HttpMethod method, String uri,
                                           String query, Map<String, String> variableMap) {
          String cmdOwner = null;
          if (appDef != null) {
              StorageService ss = SchemaService.instance().getStorageService(appDef);
              cmdOwner = ss.getClass().getSimpleName();
          }
          return m_cmdRegistry.findCommand(cmdOwner, method, uri, query, variableMap);
      }
docs: Attempt to match the given REST request to a registered command. If it does, return
  the corresponding {@link RegisteredCommand} and update the given variable map with
  decoded URI variables. For example, if the matching command is defined as:
  <pre>
  GET /{application}/{table}/_query?{query}
  </pre>
  And the actual request passed is:
  <pre>
  GET /Magellan/Stars/_query?q=Tarantula+Nebula%2A
  <pre>
  The variable map will be returned with the follow key/value pairs:
  <pre>
  application=Magellan
  table=Stars
  query=Tarantula+Nebula%2A
  </pre>
  Note that URI-encoded parameter values remain encoded in the variable map.
  
  @param appDef        {@link ApplicationDefinition} of application that provides
  context for command, if any. Null for system commands.
  @param method        {@link HttpMethod} of the request.
  @param uri           Request URI (case-sensitive: "/Magellan/Stars/_query")
  @param query         Optional query parameter (case-sensitive: "q=Tarantula+Nebula%2A").
  @param variableMap   Variable parameters defined in the REST command substituted with
  the actual values passed, not decoded (see above).
  @return              The {@link RegisteredCommand} if a match was found, otherwise null.