private void _collectConfigurationModels(
      Bundle bundle, Map<String, ConfigurationModel> modelMap, String locale, boolean factory) {

    ExtendedMetaTypeInformation extendedMetaTypeInformation =
        _extendedMetaTypeService.getMetaTypeInformation(bundle);

    if (extendedMetaTypeInformation == null) {
      return;
    }

    String[] pids = null;

    if (factory) {
      pids = extendedMetaTypeInformation.getFactoryPids();
    } else {
      pids = extendedMetaTypeInformation.getPids();
    }

    for (String pid : pids) {
      ConfigurationModel configurationModel = _getConfigurationModel(bundle, pid, factory, locale);

      if (configurationModel == null) {
        continue;
      }

      modelMap.put(pid, configurationModel);
    }
  }
  private ConfigurationModel _getConfigurationModel(
      Bundle bundle, String pid, boolean factory, String locale) {

    ExtendedMetaTypeInformation metaTypeInformation =
        _extendedMetaTypeService.getMetaTypeInformation(bundle);

    if (metaTypeInformation == null) {
      return null;
    }

    return new ConfigurationModel(
        metaTypeInformation.getObjectClassDefinition(pid, locale),
        getConfiguration(pid),
        StringPool.QUESTION,
        factory);
  }