Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.text
Class AbstractLineTracker

    java.lang.Object
      org.eclipse.jface.text.AbstractLineTracker

All Implemented Interfaces:
  ILineTracker

Direct Known Subclasses:
  ConfigurableLineTracker, DefaultLineTracker

public abstract class AbstractLineTracker
extends Object
implements ILineTracker

Abstract implementation of `ILineTracker`. It lets the definition of line delimiters to subclasses. Assuming that '\n' is the only line delimiter, this abstract implementation defines the following line scheme:

- "" -> [0,0]
- "a" -> [0,1]
- "\n" -> [0,1], [1,0]
- "a\n" -> [0,2], [2,0]
- "a\nb" -> [0,2], [2,1]
- "a\nbc\n" -> [0,2], [2,3], [5,0]

This class must be subclassed.

Nested Class Summary
`protected static class` | `AbstractLineTracker.DelimiterInfo` Combines the information of the occurrence of a line delimiter.

Constructor Summary
`protected` | `AbstractLineTracker()` Creates a new line tracker.

Method Summary
`int` | `computeNumberOfLines(String text)` Computes the number of lines in the given text.
`String` | `getLineDelimiter(int line)` Returns the line delimiter of the specified line.
`IRegion` | `getLineInformation(int line)` Returns a line description of the given line.
`IRegion` | `getLineInformationOfOffset(int position)` Returns a line description of the line at the given offset.
`int` | `getLineLength(int line)` Returns length of the specified line including the line's delimiter.
`int` | `getLineNumberOfOffset(int position)` Returns the line number the character at the given offset belongs to.
`int` | `getLineOffset(int line)` Returns the position of the first character of the specified line.
`int` | `getNumberOfLines()` Returns the number of lines.
`int` | `getNumberOfLines(int position, int length)` Returns the number of lines which are occupied by a given text range.
`protected abstract AbstractLineTracker.DelimiterInfo` | `nextDelimiterInfo(String text, int offset)` Returns the information about the first delimiter found in the given text starting at the given offset.
`void` | `replace(int position, int length, String text)` Informs the line tracker about the specified change in the tracked text.
`void` | `set(String text)` Sets the tracked text to the specified text.

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

Methods inherited from interface org.eclipse.jface.text.ILineTracker
`getLegalLineDelimiters`

Constructor Detail

### AbstractLineTracker

    protected AbstractLineTracker()

  Creates a new line tracker.

Method Detail

### getLineLength

    public int getLineLength(int line)
                      throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns length of the specified line including the line's delimiter.

  Specified by:
    `getLineLength` in interface `ILineTracker`
  Parameters:
    `line` - the line of interest
  Returns:
    the length of the line
  Throws:
    `BadLocationException` - if line is unknown to this tracker

### getLineNumberOfOffset

    public int getLineNumberOfOffset(int position)
                              throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns the line number the character at the given offset belongs to.

  Specified by:
    `getLineNumberOfOffset` in interface `ILineTracker`
  Parameters:
    `position` - the offset whose line number to be determined
  Returns:
    the number of the line the offset is on
  Throws:
    `BadLocationException` - if the offset is invalid in this tracker

### getLineInformationOfOffset

    public IRegion getLineInformationOfOffset(int position)
                                       throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns a line description of the line at the given offset. The description contains the start offset and the length of the line excluding the line's delimiter.

  Specified by:
    `getLineInformationOfOffset` in interface `ILineTracker`
  Parameters:
    `position` - the offset whose line should be described
  Returns:
    a region describing the line
  Throws:
    `BadLocationException` - if offset is invalid in this tracker

### getLineInformation

    public IRegion getLineInformation(int line)
                               throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns a line description of the given line. The description contains the start offset and the length of the line excluding the line's delimiter.

  Specified by:
    `getLineInformation` in interface `ILineTracker`
  Parameters:
    `line` - the line that should be described
  Returns:
    a region describing the line
  Throws:
    `BadLocationException` - if line is unknown to this tracker

### getLineOffset

    public int getLineOffset(int line)
                      throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns the position of the first character of the specified line.

  Specified by:
    `getLineOffset` in interface `ILineTracker`
  Parameters:
    `line` - the line of interest
  Returns:
    offset of the first character of the line
  Throws:
    `BadLocationException` - if the line is unknown to this tracker

### getNumberOfLines

    public int getNumberOfLines()

  Description copied from interface: `ILineTracker`
  Returns the number of lines.

  Specified by:
    `getNumberOfLines` in interface `ILineTracker`
  Returns:
    the number of lines in this tracker's line structure

### getNumberOfLines

    public int getNumberOfLines(int position,
                                int length)
                         throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns the number of lines which are occupied by a given text range.

  Specified by:
    `getNumberOfLines` in interface `ILineTracker`
  Parameters:
    `position` - the offset of the specified text range
    `length` - the length of the specified text range
  Returns:
    the number of lines occupied by the specified range
  Throws:
    `BadLocationException` - if specified range is unknown to this tracker

### computeNumberOfLines

    public int computeNumberOfLines(String text)

  Description copied from interface: `ILineTracker`
  Computes the number of lines in the given text.

  Specified by:
    `computeNumberOfLines` in interface `ILineTracker`
  Parameters:
    `text` - the text whose number of lines should be computed
  Returns:
    the number of lines in the given text

### nextDelimiterInfo

    protected abstract AbstractLineTracker.DelimiterInfo nextDelimiterInfo(String text,
                                                                           int offset)

  Returns the information about the first delimiter found in the given text starting at the given offset.

  Parameters:
    `text` - the text to be searched
    `offset` - the offset in the given text
  Returns:
    the information of the first found delimiter or `null`

### replace

    public void replace(int position,
                        int length,
                        String text)
                 throws BadLocationException

  Description copied from interface: `ILineTracker`
  Informs the line tracker about the specified change in the tracked text.

  Specified by:
    `replace` in interface `ILineTracker`
  Parameters:
    `position` - the offset of the replaced text
    `length` - the length of the replaced text
    `text` - the substitution text
  Throws:
    `BadLocationException` - if specified range is unknown to this tracker

### set

    public void set(String text)

  Description copied from interface: `ILineTracker`
  Sets the tracked text to the specified text.

  Specified by:
    `set` in interface `ILineTracker`
  Parameters:
    `text` - the new tracked text

### getLineDelimiter

    public String getLineDelimiter(int line)
                            throws BadLocationException

  Description copied from interface: `ILineTracker`
  Returns the line delimiter of the specified line. Returns `null` if the line is not closed with a line delimiter.

  Specified by:
    `getLineDelimiter` in interface `ILineTracker`
  Parameters:
    `line` - the line whose line delimiter is queried
  Returns:
    the line's delimiter or `null` if line does not have a delimiter
  Throws:
    `BadLocationException` - if the line number is invalid in this tracker's line structure

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.