## org.apache.poi.hwpf.usermodel
Class Range

    java.lang.Object
      org.apache.poi.hwpf.usermodel.Range

Direct Known Subclasses:
  CharacterRun, DocumentPosition, Paragraph, Section, Table, TableCell, TableRow

    public class Range

extends java.lang.Object

This class is the central class of the HWPF object model. All properties that apply to a range of characters in a Word document extend this class. It is possible to insert text and/or properties at the beginning or end of a range. Ranges are only valid if there hasn't been an insert in a prior Range since the Range's creation. Once an element (text, paragraph, etc.) has been inserted into a Range, subsequent Ranges become unstable.

Author:
  Ryan Ackley

Field Summary
`protected java.util.List<CHPX>` `_characters` All CharacterRuns that belong to the document this Range belongs to.
`protected int` `_charEnd` The end index in the characterRuns list for this Range.
`protected boolean` `_charRangeFound` Have we loaded the characterRun indexes yet.
`protected int` `_charStart` The start index in the characterRuns list for this Range
`protected HWPFDocumentCore` `_doc` The document this range blongs to.
`protected int` `_end` The ending character offset of this range.
`protected java.util.List<PAPX>` `_paragraphs` All paragraphs that belong to the document this Range belongs to.
`protected int` `_parEnd` The end index in the paragraphs list for this Range, exclusive
`protected boolean` `_parRangeFound` Have we loaded the paragraph indexes yet.
`protected int` `_parStart` The start index in the paragraphs list for this Range, inclusive
`protected int` `_sectionEnd` The end index in the sections list for this Range.
`protected java.util.List<SEPX>` `_sections` All sections that belong to the document this Range belongs to.
`protected int` `_sectionStart` The start index in the sections list for this Range
`protected int` `_start` The starting character offset of this range.
`protected java.lang.StringBuilder` `_text`
`static int` `TYPE_CHARACTER` Deprecated.
`static int` `TYPE_LISTENTRY` Deprecated.
`static int` `TYPE_PARAGRAPH` Deprecated.
`static int` `TYPE_SECTION` Deprecated.
`static int` `TYPE_TABLE` Deprecated.
`static int` `TYPE_TEXT` Deprecated.
`static int` `TYPE_UNDEFINED` Deprecated.

Constructor Summary
`` `Range(int start, int end, HWPFDocumentCore doc)` Used to construct a Range from a document.
`protected` `Range(int startIdx, int endIdx, int idxType, Range parent)` Deprecated.
`protected` `Range(int start, int end, Range parent)` Used to create Ranges that are children of other Ranges.

Method Summary
`protected void` `adjustFIB(int adjustment)` Adjust the value of the various FIB character count fields, eg `FIB.CCPText` after an insert or a delete...
`void` `delete()`
`CharacterRun` `getCharacterRun(int index)` Gets the character run at index.
`protected HWPFDocumentCore` `getDocument()`
`int` `getEndOffset()`
`Paragraph` `getParagraph(int index)` Gets the paragraph at index.
`Section` `getSection(int index)` Gets the section at index.
`int` `getStartOffset()`
`Table` `getTable(Paragraph paragraph)` Gets the table that starts with paragraph.
`protected void` `initAll()` loads all of the list indexes.
`Paragraph` `insertAfter(ParagraphProperties props, int styleIndex)` Deprecated. Use code shall not work with `ParagraphProperties`
`ListEntry` `insertAfter(ParagraphProperties props, int listID, int level, int styleIndex)` Deprecated. Use code shall not work with `ParagraphProperties`
`protected Paragraph` `insertAfter(ParagraphProperties props, int styleIndex, java.lang.String text)` Deprecated. Use code shall not work with `ParagraphProperties`
`CharacterRun` `insertAfter(java.lang.String text)` Inserts text onto the end of this range
`CharacterRun` `insertAfter(java.lang.String text, CharacterProperties props)` Deprecated. User code should not work with `CharacterProperties`
`Paragraph` `insertBefore(ParagraphProperties props, int styleIndex)` Deprecated. Use code shall not work with `ParagraphProperties`
`ListEntry` `insertBefore(ParagraphProperties props, int listID, int level, int styleIndex)` Deprecated. Use code shall not work with `ParagraphProperties`
`protected Paragraph` `insertBefore(ParagraphProperties props, int styleIndex, java.lang.String text)` Deprecated. Use code shall not work with `ParagraphProperties`
`CharacterRun` `insertBefore(java.lang.String text)` Inserts text into the front of this range.
`CharacterRun` `insertBefore(java.lang.String text, CharacterProperties props)` Deprecated. User code should not work with `CharacterProperties`
`Table` `insertBefore(TableProperties props, int rows)` Deprecated. Use code shall not work with `TableProperties`. Use `insertTableBefore(short, int)` instead
`Table` `insertTableBefore(short columns, int rows)` Inserts a simple table into the beginning of this range.
`int` `numCharacterRuns()`
`int` `numParagraphs()` Used to get the number of paragraphs in a range.
`int` `numSections()` Used to get the number of sections in a range.
`void` `replaceText(java.lang.String newText, boolean addAfter)` Replace range text with new one, adding it to the range and deleting original text from document
`void` `replaceText(java.lang.String pPlaceHolder, java.lang.String pValue)` Replace (all instances of) a piece of text with another...
`void` `replaceText(java.lang.String pPlaceHolder, java.lang.String pValue, int pOffset)` Replace (one instance of) a piece of text with another...
`protected void` `reset()` resets the list indexes.
`boolean` `sanityCheck()` Method for debug purposes.
`static java.lang.String` `stripFields(java.lang.String text)` Removes any fields (eg macros, page markers etc) from the string.
`java.lang.String` `text()` Gets the text that this Range contains.
`java.lang.String` `toString()`
`int` `type()` Deprecated.
`boolean` `usesUnicode()` Deprecated. Range is not linked to any text piece anymore, so to check if unicode is used please access `TextPieceTable` during document load time

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

Field Detail

### TYPE_PARAGRAPH

    @Deprecated
    public static final int TYPE_PARAGRAPH

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_CHARACTER

    @Deprecated
    public static final int TYPE_CHARACTER

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_SECTION

    @Deprecated
    public static final int TYPE_SECTION

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_TEXT

    @Deprecated
    public static final int TYPE_TEXT

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_LISTENTRY

    @Deprecated
    public static final int TYPE_LISTENTRY

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_TABLE

    @Deprecated
    public static final int TYPE_TABLE

  Deprecated.
  See Also:
    Constant Field Values

### TYPE_UNDEFINED

    @Deprecated
    public static final int TYPE_UNDEFINED

  Deprecated.
  See Also:
    Constant Field Values

### _start

    protected int _start

  The starting character offset of this range.

### _end

    protected int _end

  The ending character offset of this range.

### _doc

    protected HWPFDocumentCore _doc

  The document this range blongs to.

### _sections

    protected java.util.List<SEPX> _sections

  All sections that belong to the document this Range belongs to.

### _sectionStart

    protected int _sectionStart

  The start index in the sections list for this Range

### _sectionEnd

    protected int _sectionEnd

  The end index in the sections list for this Range.

### _parRangeFound

    protected boolean _parRangeFound

  Have we loaded the paragraph indexes yet.

### _paragraphs

    protected java.util.List<PAPX> _paragraphs

  All paragraphs that belong to the document this Range belongs to.

### _parStart

    protected int _parStart

  The start index in the paragraphs list for this Range, inclusive

### _parEnd

    protected int _parEnd

  The end index in the paragraphs list for this Range, exclusive

### _charRangeFound

    protected boolean _charRangeFound

  Have we loaded the characterRun indexes yet.

### _characters

    protected java.util.List<CHPX> _characters

  All CharacterRuns that belong to the document this Range belongs to.

### _charStart

    protected int _charStart

  The start index in the characterRuns list for this Range

### _charEnd

    protected int _charEnd

  The end index in the characterRuns list for this Range.

### _text

    protected java.lang.StringBuilder _text

Constructor Detail

### Range

    public Range(int start,
                 int end,
                 HWPFDocumentCore doc)

  Used to construct a Range from a document. This is generally used to create a Range that spans the whole document, or at least one whole part of the document (eg main text, header, comment)

  Parameters:
    `start` - Starting character offset of the range.
    `end` - Ending character offset of the range.
    `doc` - The HWPFDocument the range is based on.

### Range

    protected Range(int start,
                    int end,
                    Range parent)

  Used to create Ranges that are children of other Ranges.

  Parameters:
    `start` - Starting character offset of the range.
    `end` - Ending character offset of the range.
    `parent` - The parent this range belongs to.

### Range

    @Deprecated
    protected Range(int startIdx,
                               int endIdx,
                               int idxType,
                               Range parent)

  Deprecated.

  Constructor used to build a Range from indexes in one of its internal lists.

  Parameters:
    `startIdx` - The starting index in the list, inclusive
    `endIdx` - The ending index in the list, exclusive
    `idxType` - The list type.
    `parent` - The parent Range this range belongs to.

Method Detail

### usesUnicode

    @Deprecated
    public boolean usesUnicode()

  Deprecated. Range is not linked to any text piece anymore, so to check if unicode is used please access `TextPieceTable` during document load time

  Returns:
    always return true

### text

    public java.lang.String text()

  Gets the text that this Range contains.

  Returns:
    The text for this range.

### stripFields

    public static java.lang.String stripFields(java.lang.String text)

  Removes any fields (eg macros, page markers etc) from the string. Normally used to make some text suitable for showing to humans, and the resultant text should not normally be saved back into the document!

### numSections

    public int numSections()

  Used to get the number of sections in a range. If this range is smaller than a section, it will return 1 for its containing section.

  Returns:
    The number of sections in this range.

### numParagraphs

    public int numParagraphs()

  Used to get the number of paragraphs in a range. If this range is smaller than a paragraph, it will return 1 for its containing paragraph.

  Returns:
    The number of paragraphs in this range.

### numCharacterRuns

    public int numCharacterRuns()

  Returns:
    The number of characterRuns in this range.

### insertBefore

    public CharacterRun insertBefore(java.lang.String text)

  Inserts text into the front of this range.

  Parameters:
    `text` - The text to insert
  Returns:
    The character run that text was inserted into.

### insertAfter

    public CharacterRun insertAfter(java.lang.String text)

  Inserts text onto the end of this range

  Parameters:
    `text` - The text to insert
  Returns:
    The character run the text was inserted into.

### insertBefore

    @Deprecated
    public CharacterRun insertBefore(java.lang.String text,
                                                CharacterProperties props)

  Deprecated. User code should not work with `CharacterProperties`

  Inserts text into the front of this range and it gives that text the CharacterProperties specified in props.

  Parameters:
    `text` - The text to insert.
    `props` - The CharacterProperties to give the text.
  Returns:
    A new CharacterRun that has the given text and properties and is n ow a part of the document.

### insertAfter

    @Deprecated
    public CharacterRun insertAfter(java.lang.String text,
                                               CharacterProperties props)

  Deprecated. User code should not work with `CharacterProperties`

  Inserts text onto the end of this range and gives that text the CharacterProperties specified in props.

  Parameters:
    `text` - The text to insert.
    `props` - The CharacterProperties to give the text.
  Returns:
    A new CharacterRun that has the given text and properties and is n ow a part of the document.

### insertBefore

    @Deprecated
    public Paragraph insertBefore(ParagraphProperties props,
                                             int styleIndex)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts and empty paragraph into the front of this range.

  Parameters:
    `props` - The properties that the new paragraph will have.
    `styleIndex` - The index into the stylesheet for the new paragraph.
  Returns:
    The newly inserted paragraph.

### insertBefore

    @Deprecated
    protected Paragraph insertBefore(ParagraphProperties props,
                                                int styleIndex,
                                                java.lang.String text)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts a paragraph into the front of this range. The paragraph will contain one character run that has the default properties for the paragraph's style. It is necessary for the text to end with the character '\r'

  Parameters:
    `props` - The paragraph's properties.
    `styleIndex` - The index of the paragraph's style in the style sheet.
    `text` - The text to insert.
  Returns:
    A newly inserted paragraph.

### insertAfter

    @Deprecated
    public Paragraph insertAfter(ParagraphProperties props,
                                            int styleIndex)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts and empty paragraph into the end of this range.

  Parameters:
    `props` - The properties that the new paragraph will have.
    `styleIndex` - The index into the stylesheet for the new paragraph.
  Returns:
    The newly inserted paragraph.

### insertAfter

    @Deprecated
    protected Paragraph insertAfter(ParagraphProperties props,
                                               int styleIndex,
                                               java.lang.String text)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts a paragraph into the end of this range. The paragraph will contain one character run that has the default properties for the paragraph's style. It is necessary for the text to end with the character '\r'

  Parameters:
    `props` - The paragraph's properties.
    `styleIndex` - The index of the paragraph's style in the style sheet.
    `text` - The text to insert.
  Returns:
    A newly inserted paragraph.

### delete

    public void delete()

### insertBefore

    @Deprecated
    public Table insertBefore(TableProperties props,
                                         int rows)

  Deprecated. Use code shall not work with `TableProperties`. Use `insertTableBefore(short, int)` instead

  Inserts a simple table into the beginning of this range. The number of columns is determined by the TableProperties passed into this function.

  Parameters:
    `props` - The table properties for the table.
    `rows` - The number of rows.
  Returns:
    The empty Table that is now part of the document.

### insertTableBefore

    public Table insertTableBefore(short columns,
                                   int rows)

  Inserts a simple table into the beginning of this range.

  Parameters:
    `columns` - The number of columns
    `rows` - The number of rows.
  Returns:
    The empty Table that is now part of the document.

### insertBefore

    @Deprecated
    public ListEntry insertBefore(ParagraphProperties props,
                                             int listID,
                                             int level,
                                             int styleIndex)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts a list into the beginning of this range.

  Parameters:
    `props` - The properties of the list entry. All list entries are paragraphs.
    `listID` - The id of the list that contains the properties.
    `level` - The indentation level of the list.
    `styleIndex` - The base style's index in the stylesheet.
  Returns:
    The empty ListEntry that is now part of the document.

### insertAfter

    @Deprecated
    public ListEntry insertAfter(ParagraphProperties props,
                                            int listID,
                                            int level,
                                            int styleIndex)

  Deprecated. Use code shall not work with `ParagraphProperties`

  Inserts a list into the beginning of this range.

  Parameters:
    `props` - The properties of the list entry. All list entries are paragraphs.
    `listID` - The id of the list that contains the properties.
    `level` - The indentation level of the list.
    `styleIndex` - The base style's index in the stylesheet.
  Returns:
    The empty ListEntry that is now part of the document.

### replaceText

    public void replaceText(java.lang.String newText,
                            boolean addAfter)

  Replace range text with new one, adding it to the range and deleting original text from document

  Parameters:
    `newText` - The text to be replaced with
    `addAfter` - if `true` the text will be added at the end of current range, otherwise to the beginning

### replaceText

    @Internal
    public void replaceText(java.lang.String pPlaceHolder,
                                     java.lang.String pValue,
                                     int pOffset)

  Replace (one instance of) a piece of text with another...

  Parameters:
    `pPlaceHolder` - The text to be replaced (e.g., "${organization}")
    `pValue` - The replacement text (e.g., "Apache Software Foundation")
    `pOffset` - The offset or index where the text to be replaced begins (relative to/within this `Range`)

### replaceText

    public void replaceText(java.lang.String pPlaceHolder,
                            java.lang.String pValue)

  Replace (all instances of) a piece of text with another...

  Parameters:
    `pPlaceHolder` - The text to be replaced (e.g., "${organization}")
    `pValue` - The replacement text (e.g., "Apache Software Foundation")

### getCharacterRun

    public CharacterRun getCharacterRun(int index)

  Gets the character run at index. The index is relative to this range.

  Parameters:
    `index` - The index of the character run to get.
  Returns:
    The character run at the specified index in this range.

### getSection

    public Section getSection(int index)

  Gets the section at index. The index is relative to this range.

  Parameters:
    `index` - The index of the section to get.
  Returns:
    The section at the specified index in this range.

### getParagraph

    public Paragraph getParagraph(int index)

  Gets the paragraph at index. The index is relative to this range.

  Parameters:
    `index` - The index of the paragraph to get.
  Returns:
    The paragraph at the specified index in this range.

### type

    @Deprecated
    public int type()

  Deprecated.

  This method is used to determine the type. Handy for switch statements compared to the instanceof operator.

  Returns:
    A TYPE constant.

### getTable

    public Table getTable(Paragraph paragraph)

  Gets the table that starts with paragraph. In a Word file, a table consists of a group of paragraphs with certain flags set.

  Parameters:
    `paragraph` - The paragraph that is the first paragraph in the table.
  Returns:
    The table that starts with paragraph

### initAll

    protected void initAll()

  loads all of the list indexes.

### reset

    protected void reset()

  resets the list indexes.

### adjustFIB

    protected void adjustFIB(int adjustment)

  Adjust the value of the various FIB character count fields, eg `FIB.CCPText` after an insert or a delete... Works on all CCP fields from this range onwards

  Parameters:
    `adjustment` - The (signed) value that should be added to the FIB CCP fields

### getStartOffset

    public int getStartOffset()

  Returns:
    Starting character offset of the range

### getEndOffset

    public int getEndOffset()

  Returns:
    The ending character offset of this range

### getDocument

    protected HWPFDocumentCore getDocument()

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### sanityCheck

    public boolean sanityCheck()

  Method for debug purposes. Checks that all resolved elements are inside of current range.

Copyright 2012 The Apache Software Foundation or its licensors, as applicable.