protected function getRegisteredType()
    {
        if (empty($this->registered_type)) {
            $this->registered_type = $this->pool->getRegisteredType($this->getType());

            if (empty($this->registered_type)) {
                throw new InvalidArgumentException("Type '" . $this->getType() . "' is not registered");
            }
        }

        return $this->registered_type;
    }