org.apache.poi.hwpf.model
Class TextPieceTable

java.lang.Object
  extended by org.apache.poi.hwpf.model.TextPieceTable
All Implemented Interfaces:
CharIndexTranslator

@Internal
public class TextPieceTable
extends java.lang.Object
implements CharIndexTranslator

The piece table for matching up character positions to bits of text. This mostly works in bytes, but the TextPieces themselves work in characters. This does the icky convertion.

Author:
Ryan Ackley

Field Summary
protected  java.util.ArrayList<TextPiece> _textPieces
           
protected  java.util.ArrayList<TextPiece> _textPiecesFCOrder
           
 
Constructor Summary
TextPieceTable()
           
TextPieceTable(byte[] documentStream, byte[] tableStream, int offset, int size, int fcMin)
           
 
Method Summary
 void add(TextPiece piece)
           
 int adjustForInsert(int listIndex, int length)
          Adjust all the text piece after inserting some text into one of them
 boolean equals(java.lang.Object o)
           
 int getByteIndex(int charPos)
          Calculates the byte index of the given char index.
 int getCharIndex(int bytePos)
          Deprecated. 
 int getCharIndex(int startBytePos, int startCP)
          Deprecated. 
 int[][] getCharIndexRanges(int startBytePosInclusive, int endBytePosExclusive)
          Finds character ranges that includes specified byte range.
 int getCpMin()
           
 java.lang.StringBuilder getText()
           
 java.util.List<TextPiece> getTextPieces()
           
 int hashCode()
           
 boolean isIndexInTable(int bytePos)
          Check if index is in table
 int lookIndexBackward(int startBytePos)
          Return last index <= bytePos that is in table
 int lookIndexForward(int startBytePos)
          Return first index >= bytePos that is in table
 byte[] writeTo(HWPFOutputStream docStream)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_textPieces

protected java.util.ArrayList<TextPiece> _textPieces

_textPiecesFCOrder

protected java.util.ArrayList<TextPiece> _textPiecesFCOrder
Constructor Detail

TextPieceTable

public TextPieceTable()

TextPieceTable

public TextPieceTable(byte[] documentStream,
                      byte[] tableStream,
                      int offset,
                      int size,
                      int fcMin)
Method Detail

add

public void add(TextPiece piece)

adjustForInsert

public int adjustForInsert(int listIndex,
                           int length)
Adjust all the text piece after inserting some text into one of them

Parameters:
listIndex - The TextPiece that had characters inserted into
length - The number of characters inserted

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

getByteIndex

public int getByteIndex(int charPos)
Description copied from interface: CharIndexTranslator
Calculates the byte index of the given char index.

Specified by:
getByteIndex in interface CharIndexTranslator
Parameters:
charPos - The char position
Returns:
The byte index

getCharIndex

@Deprecated
public int getCharIndex(int bytePos)
Deprecated. 

Description copied from interface: CharIndexTranslator
Calculates the char index of the given byte index. Look forward if index is not in table

Specified by:
getCharIndex in interface CharIndexTranslator
Parameters:
bytePos - The character offset to check
Returns:
the char index

getCharIndex

@Deprecated
public int getCharIndex(int startBytePos,
                                   int startCP)
Deprecated. 

Description copied from interface: CharIndexTranslator
Calculates the char index of the given byte index. Look forward if index is not in table

Specified by:
getCharIndex in interface CharIndexTranslator
Parameters:
startBytePos - The character offset to check
startCP - look from this characted position
Returns:
the char index

getCharIndexRanges

public int[][] getCharIndexRanges(int startBytePosInclusive,
                                  int endBytePosExclusive)
Description copied from interface: CharIndexTranslator
Finds character ranges that includes specified byte range.

Specified by:
getCharIndexRanges in interface CharIndexTranslator
Parameters:
startBytePosInclusive - start byte range
endBytePosExclusive - end byte range

getCpMin

public int getCpMin()

getText

public java.lang.StringBuilder getText()

getTextPieces

public java.util.List<TextPiece> getTextPieces()

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

isIndexInTable

public boolean isIndexInTable(int bytePos)
Description copied from interface: CharIndexTranslator
Check if index is in table

Specified by:
isIndexInTable in interface CharIndexTranslator
Returns:
true if index in table, false if not

lookIndexBackward

public int lookIndexBackward(int startBytePos)
Description copied from interface: CharIndexTranslator
Return last index <= bytePos that is in table

Specified by:
lookIndexBackward in interface CharIndexTranslator
Returns:
last index less of equal to bytePos that is in table

lookIndexForward

public int lookIndexForward(int startBytePos)
Description copied from interface: CharIndexTranslator
Return first index >= bytePos that is in table

Specified by:
lookIndexForward in interface CharIndexTranslator
Returns:
first index greater or equal to bytePos that is in table

writeTo

public byte[] writeTo(HWPFOutputStream docStream)
               throws java.io.IOException
Throws:
java.io.IOException


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