Class UnicodeMapIterator<T>


  • public class UnicodeMapIterator<T>
    extends java.lang.Object
    UnicodeSetIterator iterates over the contents of a UnicodeSet. It iterates over either code points or code point ranges. After all code points or ranges have been returned, it returns the multicharacter strings of the UnicodeSet, if any.

    To iterate over code points, use a loop like this:

     UnicodeSetIterator it = new UnicodeSetIterator(set);
     while (set.next()) {
       if (set.codepoint != UnicodeSetIterator.IS_STRING) {
         processCodepoint(set.codepoint);
       } else {
         processString(set.string);
       }
     }
     

    To iterate over code point ranges, use a loop like this:

     UnicodeSetIterator it = new UnicodeSetIterator(set);
     while (set.nextRange()) {
       if (set.codepoint != UnicodeSetIterator.IS_STRING) {
         processCodepointRange(set.codepoint, set.codepointEnd);
       } else {
         processString(set.string);
       }
     }
     
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int codepoint
      Current code point, or the special value IS_STRING, if the iterator points to a string.
      int codepointEnd
      When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING.
      protected int endElement  
      private int endRange  
      static int IS_STRING
      Value of codepoint if the iterator points to a string.
      private UnicodeMap<T> map  
      protected int nextElement  
      private int range  
      java.lang.String string
      If codepoint == IS_STRING, then string points to the current string.
      private java.util.Iterator<java.lang.String> stringIterator  
      T value
      The value associated with this element or range.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getString()
      Gets the current string from the iterator.
      protected T loadRange​(int range)  
      boolean next()
      Returns the next element in the set, either a single code point or a string.
      boolean nextRange()
      Returns the next element in the set, either a code point range or a string.
      UnicodeMapIterator<T> reset()
      Resets this iterator to the start of the set.
      void reset​(UnicodeMap set)
      Sets this iterator to visit the elements of the given set and resets it to the start of that set.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • IS_STRING

        public static int IS_STRING
        Value of codepoint if the iterator points to a string. If codepoint == IS_STRING, then examine string for the current iteration result.
      • codepoint

        public int codepoint
        Current code point, or the special value IS_STRING, if the iterator points to a string.
      • codepointEnd

        public int codepointEnd
        When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING. If iterating over code points using next(), or if codepoint == IS_STRING, then the value of codepointEnd is undefined.
      • string

        public java.lang.String string
        If codepoint == IS_STRING, then string points to the current string. If codepoint != IS_STRING, the value of string is undefined.
      • value

        public T value
        The value associated with this element or range.
      • endRange

        private int endRange
      • range

        private int range
      • stringIterator

        private java.util.Iterator<java.lang.String> stringIterator
      • endElement

        protected int endElement
      • nextElement

        protected int nextElement
    • Constructor Detail

      • UnicodeMapIterator

        public UnicodeMapIterator​(UnicodeMap set)
        Create an iterator over the given set.
        Parameters:
        set - set to iterate over
      • UnicodeMapIterator

        public UnicodeMapIterator()
        Create an iterator over nothing. next() and nextRange() return false. This is a convenience constructor allowing the target to be set later.
    • Method Detail

      • next

        public boolean next()
        Returns the next element in the set, either a single code point or a string. If there are no more elements in the set, return false. If codepoint == IS_STRING, the value is a string in the string field. Otherwise the value is a single code point in the codepoint field.

        The order of iteration is all code points in sorted order, followed by all strings sorted order. codepointEnd is undefined after calling this method. string is undefined unless codepoint == IS_STRING. Do not mix calls to next() and nextRange() without calling reset() between them. The results of doing so are undefined.

        Returns:
        true if there was another element in the set and this object contains the element.
      • nextRange

        public boolean nextRange()
        Returns the next element in the set, either a code point range or a string. If there are no more elements in the set, return false. If codepoint == IS_STRING, the value is a string in the string field. Otherwise the value is a range of one or more code points from codepoint to codepointeEnd inclusive.

        The order of iteration is all code points ranges in sorted order, followed by all strings sorted order. Ranges are disjoint and non-contiguous. string is undefined unless codepoint == IS_STRING. Do not mix calls to next() and nextRange() without calling reset() between them. The results of doing so are undefined.

        Returns:
        true if there was another element in the set and this object contains the element.
      • reset

        public void reset​(UnicodeMap set)
        Sets this iterator to visit the elements of the given set and resets it to the start of that set. The iterator is valid only so long as set is valid.
        Parameters:
        set - the set to iterate over.
      • reset

        public UnicodeMapIterator<T> reset()
        Resets this iterator to the start of the set.
        Returns:
      • getString

        public java.lang.String getString()
        Gets the current string from the iterator. Only use after calling next(), not nextRange().
      • loadRange

        protected T loadRange​(int range)