home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright International Business Machines Corporation, 1998-1999 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *******************************************************************************
- */
-
- #ifndef UCHRITER_H
- #define UCHRITER_H
-
- #include "utypes.h"
- #include "chariter.h"
-
-
- /**
- * A concrete subclass of CharacterIterator that iterates over the
- * characters in a UnicodeString. It's possible not only to create an
- * iterator that iterates over an entire UnicodeString, but also to
- * create only that iterates over only a subrange of a UnicodeString
- * (iterators over different subranges of the same UnicodeString don't
- * compare equal). */
- class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
- public:
- /**
- * Create an iterator over the UnicodeString referred to by "text".
- * The iteration range is the whole string, and the starting
- * position is 0. */
- UCharCharacterIterator(const UChar* text, int32_t len);
-
- /**
- * Copy constructor. The new iterator iterates over the same range
- * of the same string as "that", and its initial position is the
- * same as "that"'s current position. */
- UCharCharacterIterator(const UCharCharacterIterator& that);
-
- /**
- * Destructor. */
- ~UCharCharacterIterator();
-
- /**
- * Assignment operator. *this is altered to iterate over the sane
- * range of the same string as "that", and refers to the same
- * character within that string as "that" does. */
- UCharCharacterIterator&
- operator=(const UCharCharacterIterator& that);
-
- /**
- * Returns true if the iterators iterate over the same range of the
- * same string and are pointing at the same character. */
- virtual bool_t operator==(const CharacterIterator& that) const;
-
- /**
- * Generates a hash code for this iterator. */
- virtual int32_t hashCode(void) const;
-
- /**
- * Returns a new StringCharacterIterator referring to the same
- * character in the same range of the same string as this one. The
- * caller must delete the new iterator. */
- virtual CharacterIterator* clone(void) const;
-
- /**
- * Sets the iterator to refer to the first character in its
- * iteration range, and returns that character, */
- virtual UChar first(void);
-
- /**
- * Sets the iterator to refer to the last character in its iteration
- * range, and returns that character. */
- virtual UChar last(void);
-
- /**
- * Sets the iterator to refer to the "position"-th character in the
- * UnicodeString the iterator refers to, and returns that character.
- * If the index is outside the iterator's iteration range, the
- * behavior of the iterator is undefined. */
- virtual UChar setIndex(UTextOffset pos);
-
- /**
- * Returns the character the iterator currently refers to. */
- virtual UChar current(void) const;
-
- /**
- * Advances to the next character in the iteration range (toward
- * last()), and returns that character. If there are no more
- * characters to return, returns DONE. */
- virtual UChar next(void);
-
- /**
- * Advances to the previous character in the iteration rance (toward
- * first()), and returns that character. If there are no more
- * characters to return, returns DONE. */
- virtual UChar previous(void);
-
- /**
- * Returns the numeric index of the first character in this
- * iterator's iteration range. */
- virtual UTextOffset startIndex(void) const;
-
- /**
- * Returns the numeric index of the character immediately BEYOND the
- * last character in this iterator's iteration range. */
- virtual UTextOffset endIndex(void) const;
-
- /**
- * Returns the numeric index in the underlying UnicodeString of the
- * character the iterator currently refers to (i.e., the character
- * returned by current()). */
- virtual UTextOffset getIndex(void) const;
-
- /**
- * Copies the UnicodeString under iteration into the UnicodeString
- * referred to by "result". Even if this iterator iterates across
- * only a part of this string, the whole string is copied. @param
- * result Receives a copy of the text under iteration. */
- virtual void getText(UnicodeString& result);
-
- /**
- * Return a class ID for this object (not really public) */
- virtual UClassID getDynamicClassID(void) const
- { return getStaticClassID(); }
-
- /**
- * Return a class ID for this class (not really public) */
- static UClassID getStaticClassID(void)
- { return (UClassID)(&fgClassID); }
-
- private:
- UCharCharacterIterator();
-
- const UChar* text;
- UTextOffset pos;
- UTextOffset begin;
- UTextOffset end;
-
- static char fgClassID;
- };
-
- #endif
-
-
-
-