public final function getFinalCache() {
        $resource = $this;
        while (true) {
            $cache_file = $this->getParentProject()->getCacheManager()->getCacheBuilt($resource);
            if (\is_null($cache_file) ||
                    \is_null($this->getParentProject()->getResourceByFile($cache_file)) ||
                    $this->getParentProject()->getResourceByFile($cache_file)->getMemberId() === $resource->getMemberId()
            ) {
                return $resource;
            }
            $resource = $this->getParentProject()->getResourceByFile($cache_file);
        }
    }