code: function (args) {
      var argsLength = args.length;
      var convertedArgs = {
          provider : resolveBaseLogicalPathResource(args[0], args[1]),
          caller : args[2]
      };
      if (argsLength > 3) {
          convertedArgs.onLoad = args[3];
      }
      if (argsLength > 4) {
          convertedArgs.handler = args[4];
      }
      if (argsLength > 5) {
          var resources = [];
          for (var i = 5; i < argsLength; i++) {
              resources.push(args[i]);
          }
          convertedArgs.resources = resources;
      }
      return convertedArgs;
  }
docs: Convert the array of arguments into an object
  @private
  @param {Array} args list of arguments. It has the following structure
  
  <pre>
  [
  referencePath,
  baseLogicalPath,
  classpath of the calling class,
  onLoad,
  handler,
  resource1,
  resource2,
  ...
  ]
  </pre>
  
  @return {Object} arguments as an object. It has the following structure
  
  <pre>
  {
  provider : path of the provider,
  caller : classpath of the caller,
  onLoad : onLoad method of the caller prototype to call after the resources are fetched,
  handler : handler,
  resurces : [resA, resB, ...]
  }
  </pre>