code: function constructor(mod, cls) {
              if (arguments.length === 1) {
                  var parts = mod.split('.');
                  cls = parts.pop();
                  mod = parts.join('.');
              }
              if (constructors[mod] && constructors[mod][cls]) {
                  return constructors[mod][cls];
              }
              var injector;
              try {
                  injector = angular.injector(['ng', mod]);
              } catch(e) {
                  d.error("There is no such module than", mod);
                  return null;
              }
              if (!injector.has(cls)) {
                  d.error("There is no such class than", cls, "defined in the module", mod);
                  return null;
              }
              if (!constructors[mod]) {
                  constructors[mod] = {};
              }
              constructors[mod][cls] = injector.get(cls);
              return constructors[mod][cls];
          }
docs: @ngdoc method
  @name constructor
  @methodOf coa.data.service:factory
  @param {String} mod The name of the module, which defines the class.
  @param {String} cls Name of the class to look for.
  @return {Function} A constructor or null if not found.
  @description
  
  Find the constructor for the given class. Alternatively first argument
  can be fully qualified class name including the module name, for example
  <code>coa.auth.Class</code>, in which case the second argument can be dropped.