def METHOD_NAME(self):
    #
    # As a core plugin, we use some private API to optimize file hashing.
    #
    # * Use Source._cache_directory() to prepare a Directory
    # * Do the regular staging activity into the Directory
    # * Use the hash of the cached digest as the unique key
    #
    if not self.__digest:
        with self._cache_directory() as directory:
            self.__do_stage(directory)
            self.__digest = directory._get_digest()
    return self.__digest.hash