code: def make_catalog_comp_info(self, full_cat_info, split_key, rule_key, rule_val, sources):
          
          merge = rule_val.get('merge', True)
          sourcekey = "%s_%s_%s" % (
              full_cat_info.catalog_name, split_key, rule_key)
          srcmdl_name = self._name_factory.srcmdl_xml(sourcekey=sourcekey)
          srcmdl_name = self._name_factory.fullpath(localpath=srcmdl_name)
          kwargs = dict(source_name="%s_%s" % (full_cat_info.catalog_name, rule_key),
                        source_ver=split_key,
                        sourcekey=sourcekey,
                        srcmdl_name=srcmdl_name,
                        source_names=sources,
                        catalog_info=full_cat_info,
                        roi_model=SourceFactory.copy_selected_sources(full_cat_info.roi_model,
                                                                      sources))
          if merge:
              return CompositeSourceInfo(**kwargs)
          return CatalogSourcesInfo(**kwargs)
docs: Make the information about a single merged component
  
          Parameters
          ----------
  
          full_cat_info : `_model_component.CatalogInfo`
              Information about the full catalog
          split_key : str
              Key identifying the version of the spliting used
          rule_key : str
              Key identifying the specific rule for this component
          rule_val : list
              List of the cuts used to define this component
          sources : list
              List of the names of the sources in this component
  
          Returns `CompositeSourceInfo` or `CatalogSourcesInfo`