_showObjErrors(obj) {
    let errorEntries = obj.hasErrors() ? obj.errors.getErrors() : null;

    if (!errorEntries || (errorEntries.length === 1 && errorEntries[0].type === Errors.ERROR_PACKAGE_DIR_MISSING)) {
      return;
    }

    logger.info('');
    let rootPath;

    if (obj instanceof PackageInfoCache) {
      logger.info('Top level errors:');
      rootPath = this.realPath || '';
    } else {
      let typeName = obj.project ? 'project' : 'addon';

      logger.info(`The 'package.json' file for the ${typeName} at ${obj.realPath}`);
      rootPath = obj.realPath;
    }

    errorEntries.forEach((errorEntry) => {
      switch (errorEntry.type) {
        case Errors.ERROR_PACKAGE_JSON_MISSING:
          logger.info(`  does not exist`);
          break;
        case Errors.ERROR_PACKAGE_JSON_PARSE:
          logger.info(`  could not be parsed`);
          break;
        case Errors.ERROR_EMBER_ADDON_MAIN_MISSING:
          logger.info(
            `  specifies a missing ember-addon 'main' file at relative path '${path.relative(
              rootPath,
              errorEntry.data
            )}'`
          );
          break;
        case Errors.ERROR_DEPENDENCIES_MISSING:
          if (errorEntry.data.length === 1) {
            logger.info(`  specifies a missing dependency '${errorEntry.data[0]}'`);
          } else {
            logger.info(`  specifies some missing dependencies:`);
            errorEntry.data.forEach((dependencyName) => {
              logger.info(`    ${dependencyName}`);
            });
          }
          break;
        case Errors.ERROR_NODEMODULES_ENTRY_MISSING:
          logger.info(`  specifies a missing 'node_modules/${errorEntry.data}' directory`);
          break;
      }
    });
  }
Dump all the errors for a single object in the cache out to the ui-console.

Special case: because package-info-cache also creates PackageInfo objects for entries
that do not actually exist (to allow simplifying the code), if there's a case where
an object has only the single error ERROR_PACKAGE_DIR_MISSING, do not print
anything. The package will have been found as a reference from some other
addon or the root project, and we'll print a reference error there. Having
both is just confusing to users.

@private
@method _showObjErrors