

def link_references(self, progress_monitor=NullProgressMonitor(), local_object_id=None):
    linksets = ReleaseLinkSet.objects.filter(project_release=self.prelease).filter(first_link__code_element__kind__is_type=True)
    count = linksets.count()
    progress_monitor.start('Post-Processing Classes', count)
    log = gl.LinkerLog(self, 'type')
    for linkset in queryset_iterator(linksets):
        log.reset_variables()
        scode_reference = linkset.code_reference
        if self._reject_reference(scode_reference):
            progress_monitor.work('Skipped reference', 1)
            continue
        lcount = linkset.links.count()
        if (lcount <= 1):
            log.log_type('', '', scode_reference, linkset.first_link.code_element, [linkset.first_link], lcount, [], 'onlyone')
            progress_monitor.work('Skipped a linkset.', 1)
            continue
        local_ctx_id = scode_reference.local_object_id
        source = scode_reference.source
        prefix = '{0}{1}{2}'.format(PREFIX_CLASS_POST_LINKER, cu.get_codebase_key(scode_reference.codebase), source)
        package_freq = cu.get_value(prefix, local_ctx_id, get_package_freq, [local_ctx_id, source, self.prelease])
        code_element = self._find_package_by_freq(linkset, package_freq)
        rationale = 'highest_frequency'
        if (code_element is None):
            code_element = self._find_package_by_depth(linkset)
            rationale = 'heuristic_depth'
        if (code_element is not None):
            linkset.first_link.code_element = code_element
            linkset.first_link.linker_name = self.name
            linkset.first_link.rationale = rationale
            linkset.first_link.save()
            for link in linkset.links.all()[1:]:
                link.delete()
            log.log_type('', '', scode_reference, linkset.first_link.code_element, [linkset.first_link], lcount, [], rationale)
            progress_monitor.info('FOUND Best Package {0} because {1}'.format(code_element.fqn, rationale))
        else:
            potentials = [link.code_element for link in linkset.links.all()]
            log.log_type('', '', scode_reference, linkset.first_link.code_element, potentials, lcount, 'nomatch')
        progress_monitor.work('Processed a linkset.', 1)
    progress_monitor.done()

dataset/ETHPy150Open bartdag/recodoc2/recodoc2/apps/codebase/linker/java_linkers.py JavaPostClassLinker.link_references/VarMisuse@199/323 `self`->`scode_reference`