code: public void registerCallbacks(StorageService storageService,
                                    Iterable<Class<? extends RESTCallback>> callbackClasses) {
          if (m_bCmdSetIsFrozen) {
              throw new RuntimeException("New commands cannot be added: command set is frozen");
          }
          
          String cmdOwner = storageService == null ? SYSTEM_OWNER : storageService.getClass().getSimpleName();
          synchronized (m_cmdEvalMap) {
              for (Class<? extends RESTCallback> cmdClass : callbackClasses) {
                  RegisteredCommand cmd = new RegisteredCommand(cmdClass);
                  registerCommand(cmdOwner, cmd);
              }
          }
      }
docs: Add a set of REST commands by introspecting a set of callback classes. The given
  callback classes must use the {@link Description} annotation to provide command
  metadata, which is used to create a RegisteredCommand object, which is added to the
  command registry. If the given storage service is null, the commands are considered
  global. Otherwise, they belong to the given storage service and used in the context
  of applications that it manages.
  
  @param storageService    {@link StorageService} that owns the commands. Null if the
  commands are global.
  @param callbackClasses   Iterable {@link RESTCallback} classes that define the
  commands to be added.