public function getAssetHandler($className)
    {
        if (false === array_key_exists($className, $this->instances)) {
            if (false === class_exists($className)) {
                throw ClassNotFoundException::wrongAssetHandlerClassName($className);
            }

            $instance = GeneralUtility::makeInstance($className, $this);

            if (false === $instance instanceof AbstractAssetHandler) {
                throw InvalidArgumentTypeException::wrongAssetHandlerType(get_class($instance));
            }

            $this->instances[$className] = $instance;
        }

        return $this->instances[$className];
    }