protected function getTypeAsRtfCode()
    {
        $rtfType = $this->getRtfType();

        switch ($this->_type) {
            case self::TYPE_ALL:
                if (!$this->_rtf->isOddEvenDifferent()) {
                    return $rtfType;
                }

                throw new PHPRtfLite_Exception('Header/Footer type ' . $this->_type . ' is not allowed, '
                                             . 'when using odd even different!');

            case self::TYPE_LEFT:
                if ($this->_rtf->isOddEvenDifferent()) {
                    return $rtfType . 'l';
                }

                throw new PHPRtfLite_Exception('Header/Footer type ' . $this->_type . ' is not allowed, '
                                             . 'when using not odd even different!');

            case self::TYPE_RIGHT:
                if ($this->_rtf->isOddEvenDifferent()) {
                    return $rtfType . 'r';
                }

                throw new PHPRtfLite_Exception('Header/Footer type ' . $this->_type . ' is not allowed, '
                                             . 'when using not odd even different!');

            case self::TYPE_FIRST:
                if ($this->_rtf->hasSpecialLayoutForFirstPage()) {
                    return $rtfType . 'f';
                }

                throw new PHPRtfLite_Exception('Header/Footer type ' . $this->_type . ' is not allowed, '
                                             . 'when using not special layout for first page!');

            default:
                throw new PHPRtfLite_Exception('Header/Footer type is not defined! You gave me: ', $this->_type);
        }
    }