private function generateIteratorElements()
    {
        if ($this->subject === '') {
            $this->iteratorCache->append(new TextIteratorElement(self::DONE, -1));
            return;
        }

        if ($this->iteratorType === self::CODE_POINT) {
            throw new UnsupportedFeatureException('Unsupported iterator type.', 1210849150);
        } elseif ($this->iteratorType === self::COMB_SEQUENCE) {
            throw new UnsupportedFeatureException('Unsupported iterator type.', 1210849151);
        } elseif ($this->iteratorType === self::CHARACTER) {
            $this->parseSubjectByCharacter();
        } elseif ($this->iteratorType === self::WORD) {
            $this->parseSubjectByWord();
        } elseif ($this->iteratorType === self::LINE) {
            $this->parseSubjectByLine();
        } elseif ($this->iteratorType === self::SENTENCE) {
            $this->parseSubjectBySentence();
        }

        $this->iteratorCache->append(new TextIteratorElement(self::DONE, -1));
        $this->iteratorCacheIterator = $this->iteratorCache->getIterator();
    }
private function generateIteratorElements()
    {
        if ($this->subject === '') {
            $this->iteratorCache->append(new TextIteratorElement(self::DONE, -1));
            return;
        }

        if ($this->iteratorType === self::CODE_POINT) {
            throw new UnsupportedFeatureException('Unsupported iterator type.', 1210849150);
        } elseif ($this->iteratorType === self::COMB_SEQUENCE) {
            throw new UnsupportedFeatureException('Unsupported iterator type.', 1210849151);
        } elseif ($this->iteratorType === self::CHARACTER) {
            $this->parseSubjectByCharacter();
        } elseif ($this->iteratorType === self::WORD) {
            $this->parseSubjectByWord();
        } elseif ($this->iteratorType === self::LINE) {
            $this->parseSubjectByLine();
        } elseif ($this->iteratorType === self::SENTENCE) {
            $this->parseSubjectBySentence();
        }

        $this->iteratorCache->append(new TextIteratorElement(self::DONE, -1));
        $this->iteratorCacheIterator = $this->iteratorCache->getIterator();
    }
private function generateIteratorElements ( ) { if ( $ this -> subject === '' ) { $ this -> iteratorCache -> append ( new TextIteratorElement ( self :: DONE , - 1 ) ) ; return ; } if ( $ this -> iteratorType === self :: CODE_POINT ) { throw new UnsupportedFeatureException ( 'Unsupported iterator type.' , 1210849150 ) ; } elseif ( $ this -> iteratorType === self :: COMB_SEQUENCE ) { throw new UnsupportedFeatureException ( 'Unsupported iterator type.' , 1210849151 ) ; } elseif ( $ this -> iteratorType === self :: CHARACTER ) { $ this -> parseSubjectByCharacter ( ) ; } elseif ( $ this -> iteratorType === self :: WORD ) { $ this -> parseSubjectByWord ( ) ; } elseif ( $ this -> iteratorType === self :: LINE ) { $ this -> parseSubjectByLine ( ) ; } elseif ( $ this -> iteratorType === self :: SENTENCE ) { $ this -> parseSubjectBySentence ( ) ; } $ this -> iteratorCache -> append ( new TextIteratorElement ( self :: DONE , - 1 ) ) ; $ this -> iteratorCacheIterator = $ this -> iteratorCache -> getIterator ( ) ; }
Helper function to coordinate the "string splitting"

@return void
@throws UnsupportedFeatureException
Helper function to coordinate the string splitting