code: function (interfaceName, methodName, args, asyncCbParam) {
                  var interceptors;
                  if (this.__$interceptors == null || this.__$interceptors[interfaceName] == null
                          || (interceptors = this.__$interceptors[interfaceName][methodName]) == null) {
                      // no interceptor for that interface: call the method directly:
                      return this[methodName].apply(this, args);
                  }
                  return __callWrapper.call(this, args, {
                      interceptors : interceptors,
                      nbInterceptors : interceptors.length,
                      method : methodName,
                      asyncCbParam : asyncCbParam
                  }, 0);
              }
docs: Call a method from this class, taking into account any registered interceptor.
  @param {String} interfaceName Classpath of the interface in which the method is declared (directly). The
  actual interface from which this method is called maybe an interface which extends this one.
  @param {String} methodName Method name.
  @param {Array} args Array of parameters to send to the method.
  @param {Number} asyncCbParam [optional] if the method is asynchronous, must contain the index in args of
  the callback parameter. Should be null if the method is not asynchronous.