def METHOD_NAME(self) -> Iterator[List[Dict]]:
    """
    Gets all items to process
    Returns:
        generator or list relevant tasks and materials to process
    """
    self.logger.info("Absorption Builder Started")
    q = dict(self.query)
    mat_ids = self.materials.distinct(self.materials.key, criteria=q)
    ab_ids = self.absorption.distinct(self.absorption.key)
    mats_set = set(
        self.absorption.newer_in(target=self.materials, criteria=q, exhaustive=True)
    ) | (set(mat_ids) - set(ab_ids))
    mats = [mat for mat in mats_set]
    self.logger.info(
        "Processing {} materials for absorption data".format(len(mats))
    )
    self.total = len(mats)
    for mat in mats:
        doc = self._get_processed_doc(mat)
        if doc is not None:
            yield doc
        else:
            pass