protected function extractValue(ModelStubInterface $model, $name, $value, $extractName = true)
    {
        $modelHydrator = $model->getHydrator();
        if (!$modelHydrator || !method_exists($modelHydrator, 'extractValue')) {
            throw new Exception\RuntimeException(
                'Model hydrator must be set and must have extractValue() method ' .
                'in order extract a single value'
                );
        }

        if ($extractName) {
            $name = $this->extractName($model, $name);
        }

        return $modelHydrator->extractValue($name, $value);
    }