public static function hydrate(stdClass $modification)
    {
        $hydrated = new ModificationEntity();

        if (isset($modification->id)) {
            $hydrated->setId($modification->id);
        }

        if (isset($modification->virtual_line)) {
            $hydrated->setVirtualLine($modification->virtual_line);
        }

        if (isset($modification->original_line)) {
            $hydrated->setOriginalLine($modification->original_line);
        }

        if (isset($modification->column_start)) {
            $hydrated->setColumnStart($modification->column_start);
        }

        if (isset($modification->column_end)) {
            $hydrated->setColumnEnd($modification->column_end);
        }

        if (isset($modification->content)) {
            $hydrated->setContent($modification->content);
        }

        if (isset($modification->highlighted_content)) {
            $hydrated->setHighlightedContent($modification->highlighted_content);
        }

        if (isset($modification->original_content)) {
            $hydrated->setOriginalContent($modification->original_content);
        }

        if (isset($modification->file)) {
            $hydrated->setFile(FileHydrator::hydrate($modification->file));
        }

        return $hydrated;
    }