protected function resolveItemAction(AbstractDiffItem $item)
    {
        if ($item instanceof CreateDiffItem) {
            $action = ActionTypes::CREATE;

            return $action;
        } elseif ($item instanceof DeleteDiffItem) {
            $action = ActionTypes::DELETE;

            return $action;
        } elseif ($item instanceof UpdateDiffItem) {
            $action = ActionTypes::UPDATE;

            return $action;
        } else {
            throw new \InvalidArgumentException('Unsupported diff item type. Got: ' . get_class($item));
        }
    }