public function prepareArguments()
    {
        if (!$this->argumentsInitialized) {
            $thisClassName = get_class($this);
            if (isset(self::$argumentDefinitionCache[$thisClassName])) {
                $this->argumentDefinitions = self::$argumentDefinitionCache[$thisClassName];
            } else {
                $this->registerRenderMethodArguments();
                $this->initializeArguments();
                self::$argumentDefinitionCache[$thisClassName] = $this->argumentDefinitions;
            }
            $this->argumentsInitialized = true;
        }
        return $this->argumentDefinitions;
    }