Overview | Package | Class | Tree | Deprecated | Index | Help
| J avolution v5.3 (J2SE 1.5+)
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javolution.text
Class Cursor

    java.lang.Object
      java.text.ParsePosition
          javolution.text.Cursor

All Implemented Interfaces:
  Reusable

    public class Cursor

extends java.text.ParsePosition
implements Reusable

This class represents a parsing cursor over characters. Cursor allows for token iterations over any `CharSequence`.``

           CharSequence csq = "this is a test";
           for (Cursor cursor = new Cursor(); cursor.skip(CharSet.WHITESPACES, csq);) {
               System.out.println(cursor.nextToken(csq, CharSet.WHITESPACES));
           }

Prints the following output:

            this
            is
            a
            test

Cursors are typically used with `TextFormat` instances.`

            public Font parse(CharSequence csq, Cursor cursor) {
                CharSequence fontName = cursor.nextToken(csq, CharSet.WHITESPACE);
                return Font.decode(fontName.toString());
            }

`

Version:
  5.3, February 15, 2006
Author:
  Jean-Marie Dautelle

Constructor Summary
`Cursor()` Default constructor.

Method Summary
`boolean` | `equals(java.lang.Object obj)` Indicates if this cursor is equals to the specified object.
`int` | `getIndex()` Returns this cursor index.
`int` | `hashCode()` Returns the hash code for this cursor.
`boolean` | `hasNext(java.lang.CharSequence csq)` Indicates if this cursor points to a valid character in the specified character sequence.
`Cursor` | `increment()` Increments the cursor index by one.
`Cursor` | `increment(int i)` Increments the cursor index by the specified value.
`char` | `next(java.lang.CharSequence csq)` Returns the next character at this cursor position.
`java.lang.CharSequence` | `nextToken(java.lang.CharSequence csq, char c)` Returns the subsequence from the specified cursor position not holding the specified character.
`java.lang.CharSequence` | `nextToken(java.lang.CharSequence csq, CharSet charSet)` Returns the subsequence from the specified cursor position not holding any of the characters specified.
`void` | `reset()` Resets this cursor instance.
`void` | `setIndex(int i)` Sets the cursor current index.
`boolean` | `skip(char c, java.lang.CharSequence csq)` Moves this cursor forward until it points to a character different from the specified character.
`boolean` | `skip(CharSet charSet, java.lang.CharSequence csq)` Moves this cursor forward until it points to a character different from any of the character in the specified set.
`java.lang.String` | `toString()` Returns the string representation of this cursor.

Methods inherited from class java.text.ParsePosition
`getErrorIndex, setErrorIndex`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Cursor

    public Cursor()

  Default constructor.

Method Detail

### getIndex

    public final int getIndex()

  Returns this cursor index.

  Overrides:
    `getIndex` in class `java.text.ParsePosition`
  Returns:
    the index of the next character to parse.

### setIndex

    public void setIndex(int i)

  Sets the cursor current index.

  Overrides:
    `setIndex` in class `java.text.ParsePosition`
  Parameters:
    `i` - the index of the next character to parse.

### hasNext

    public final boolean hasNext(java.lang.CharSequence csq)

  Indicates if this cursor points to a valid character in the specified character sequence.

  Parameters:
    `csq` - the character sequence iterated by this cursor.
  Returns:
    `true` if this cursor points to a valid character position; `false` otherwise.

### next

    public final char next(java.lang.CharSequence csq)

  Returns the next character at this cursor position. The cursor position is incremented by one.

  Parameters:
    `csq` - the character sequence iterated by this cursor.
  Returns:
    this cursor points to a valid character; `false` otherwise.
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `!hasNext(csq)`

### skip

    public final boolean skip(char c,
                              java.lang.CharSequence csq)

  Moves this cursor forward until it points to a character different from the specified character.

  Parameters:
    `c` - the character to skip.
    `csq` - the character sequence iterated by this cursor.
  Returns:
    `true` if this cursor points to a character different from the ones specified; `false` otherwise (end of sequence reached).

### skip

    public final boolean skip(CharSet charSet,
                              java.lang.CharSequence csq)

  Moves this cursor forward until it points to a character different from any of the character in the specified set. For example: `

        // Reads numbers separated by tabulations or spaces.
        FastTable<Integer> numbers = new FastTable<Integer>();
        while (cursor.skip(CharSet.SPACE_OR_TAB, csq)) {
            numbers.add(TypeFormat.parseInt(csq, cursor));
        }

  `

  Parameters:
    `charSet` - the character to skip.
    `csq` - the character sequence iterated by this cursor.
  Returns:
    `true` if this cursor points to a character different from the ones specified; `false` otherwise (e.g. end of sequence reached).

### nextToken

    public final java.lang.CharSequence nextToken(java.lang.CharSequence csq,
                                                  char c)

  Returns the subsequence from the specified cursor position not holding the specified character. For example:`

          CharSequence csq = "This is a test";
          for (CharSequence token; (token=cursor.nextToken(csq, ' '))!= null;) {
              System.out.println(token); // Prints one word at a time.
          }

  `

  Parameters:
    `csq` - the character sequence iterated by this cursor.
    `c` - the character being skipped.
  Returns:
    the subsequence not holding the specified character or `null` if none.

### nextToken

    public final java.lang.CharSequence nextToken(java.lang.CharSequence csq,
                                                  CharSet charSet)

  Returns the subsequence from the specified cursor position not holding any of the characters specified. For example:`

          CharSequence csq = "This is a test";
          for (CharSequence token; (token=cursor.nextToken(csq, CharSet.WHITESPACE))!= null;) {
              System.out.println(token); // Prints one word at a time.
          }

  `

  Parameters:
    `csq` - the character sequence iterated by this cursor.
    `charSet` - the characters being skipped.
  Returns:
    the subsequence not holding the specified character or `null` if none.

### increment

    public final Cursor increment()

  Increments the cursor index by one.

  Returns:
    `this`

### increment

    public final Cursor increment(int i)

  Increments the cursor index by the specified value.

  Parameters:
    `i` - the increment value.
  Returns:
    `this`

### toString

    public java.lang.String toString()

  Returns the string representation of this cursor.

  Overrides:
    `toString` in class `java.text.ParsePosition`
  Returns:
    the index value as a string.

### equals

    public boolean equals(java.lang.Object obj)

  Indicates if this cursor is equals to the specified object.

  Overrides:
    `equals` in class `java.text.ParsePosition`
  Returns:
    `true` if the specified object is a cursor at the same index; `false` otherwise.

### hashCode

    public int hashCode()

  Returns the hash code for this cursor.

  Overrides:
    `hashCode` in class `java.text.ParsePosition`
  Returns:
    the hash code value for this object

### reset

    public void reset()

  Resets this cursor instance.

  Specified by:
    `reset` in interface `Reusable`
  See Also:
    `Reusable`

Overview | Package | Class | Tree | Deprecated | Index | Help
| J avolution v5.3 (J2SE 1.5+)
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005 - 2009 Javolution.