org.codehaus.groovy.transform.powerassert

## Class SourceText

- java.lang.Object
- - org.codehaus.groovy.transform.powerassert.SourceText

    public class SourceText
    extends Object

Provides the source text for an assertion statement and translates coordinates in the original source text to coordinates relative to the assertion's (normalized) source text.

Author:
  Peter Niederwieser

### Constructor Summary

Constructors
Constructor and Description
`SourceText(AssertStatement stat, SourceUnit sourceUnit, Janitor janitor)` Constructs a `SourceText` by reading the given assertion's source text from the given source unit.

### Method Summary

Methods
`int` `getNormalizedColumn(int line, int column)` Returns the column in `getNormalizedText()` corresponding to the given line and column in the original source text.
`int` `getNormalizedColumn(String str, int line, int column)` Returns the normalized column of the last occurrence of the given substring within the original source text ending before the given line and column (exclusive), or -1 if no such occurrence is found.
`String` `getNormalizedText()` Returns the assertion's source text after removing line breaks.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SourceText

    public SourceText(AssertStatement stat,
              SourceUnit sourceUnit,
              Janitor janitor)

Constructs a `SourceText` by reading the given assertion's source text from the given source unit.

Parameters:
  `stat` - an assertion statement
  `sourceUnit` - the source unit containing the assertion statement
  `janitor` - a `Janitor` for cleaning up reader sources

### Method Detail

#### getNormalizedText

    public String getNormalizedText()

Returns the assertion's source text after removing line breaks.

Limitation: Line comments within the assertion's source text are not handled.

Returns:
  the assertion's source text after removing line breaks.

#### getNormalizedColumn

    public int getNormalizedColumn(int line,
                          int column)

Returns the column in `getNormalizedText()` corresponding to the given line and column in the original source text. The first character in the normalized text has column 1.

Parameters:
  `line` - a line number
  `column` - a column number
Returns:
  the column in getNormalizedText() corresponding to the given line and column in the original source text

#### getNormalizedColumn

    public int getNormalizedColumn(String str,
                          int line,
                          int column)

Returns the normalized column of the last occurrence of the given substring within the original source text ending before the given line and column (exclusive), or -1 if no such occurrence is found.

Parameters:
  `str` - a substring in the original source text
  `line` - a line number
  `column` - a column number
Returns:
  the normalized column of the last occurrence of the given substring within the original source text ending before the given line and column (exclusive), or -1 if no such occurrence is found