protected function getActionArguments($class, $action)
    {
        $method = new \ReflectionMethod($class, $action);
        $this->action = $method;

        $parameters = $method->getParameters();

        $result = [];

        foreach ($parameters as $parameter) {
            $attribute = new ActionAttribute();
            $attribute->name = $parameter->getName();
            $attribute->isRequired = !$parameter->isDefaultValueAvailable();
            if (!$attribute->isRequired) {
                $attribute->defaultValue = $parameter->getDefaultValue();
            }
            $result[] = $attribute;
        }

        return $result;
    }