private function resolveValue($value)
    {
        if (DataSet::isPath($value)) {
            if (empty($this->dataSet)) {
                throw new ConfigurationException('DataSet is required to resole value by path.');
            }
            $value = $this->dataSet->resolvePath($value);
        }

        if (is_array($value)) {
            foreach ($value as $key => $subValue) {
                $value[$key] = $this->resolveValue($subValue);
            }
        }

        return $value;
    }