simplify some HWPFDocument.get*Range() methods
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1148860 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6d8949ef0c
commit
b71c78c384
@ -300,88 +300,101 @@ public final class HWPFDocument extends HWPFDocumentCore
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the range which covers the whole of the
|
||||
* document, but excludes any headers and footers.
|
||||
* Returns the range which covers the whole of the document, but excludes
|
||||
* any headers and footers.
|
||||
*/
|
||||
public Range getRange()
|
||||
{
|
||||
// First up, trigger a full-recalculate
|
||||
// Needed in case of deletes etc
|
||||
getOverallRange();
|
||||
// // First up, trigger a full-recalculate
|
||||
// // Needed in case of deletes etc
|
||||
// getOverallRange();
|
||||
//
|
||||
// if ( getFileInformationBlock().isFComplex() )
|
||||
// {
|
||||
// /*
|
||||
// * Page 31:
|
||||
// *
|
||||
// * main document must be found by examining the piece table entries
|
||||
// * from the 0th piece table entry from the piece table entry that
|
||||
// * describes cp=fib.ccpText.
|
||||
// */
|
||||
// // TODO: review
|
||||
// return new Range( _cpSplit.getMainDocumentStart(),
|
||||
// _cpSplit.getMainDocumentEnd(), this );
|
||||
// }
|
||||
//
|
||||
// /*
|
||||
// * Page 31:
|
||||
// *
|
||||
// * "In a non-complex file, this means text of the: main document
|
||||
// begins
|
||||
// * at fib.fcMin in the file and continues through
|
||||
// * fib.fcMin+fib.ccpText."
|
||||
// */
|
||||
// int bytesStart = getFileInformationBlock().getFcMin();
|
||||
//
|
||||
// int charsStart = getTextTable().getCharIndex( bytesStart );
|
||||
// int charsEnd = charsStart
|
||||
// + getFileInformationBlock().getSubdocumentTextStreamLength(
|
||||
// SubdocumentType.MAIN );
|
||||
|
||||
if ( getFileInformationBlock().isFComplex() )
|
||||
// it seems much simpler -- sergey
|
||||
return getRange(SubdocumentType.MAIN);
|
||||
}
|
||||
|
||||
private Range getRange( SubdocumentType subdocument )
|
||||
{
|
||||
/*
|
||||
* Page 31:
|
||||
int startCp = 0;
|
||||
for ( SubdocumentType previos : SubdocumentType.ORDERED )
|
||||
{
|
||||
int length = getFileInformationBlock()
|
||||
.getSubdocumentTextStreamLength( previos );
|
||||
if ( subdocument == previos )
|
||||
return new Range( startCp, startCp + length, this );
|
||||
startCp += length;
|
||||
}
|
||||
throw new UnsupportedOperationException(
|
||||
"Subdocument type not supported: " + subdocument );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link Range} which covers all the Footnotes.
|
||||
*
|
||||
* main document must be found by examining the piece table entries
|
||||
* from the 0th piece table entry from the piece table entry that
|
||||
* describes cp=fib.ccpText.
|
||||
* @return the {@link Range} which covers all the Footnotes.
|
||||
*/
|
||||
// TODO: review
|
||||
return new Range( _cpSplit.getMainDocumentStart(),
|
||||
_cpSplit.getMainDocumentEnd(), this );
|
||||
public Range getFootnoteRange()
|
||||
{
|
||||
return getRange( SubdocumentType.FOOTNOTE );
|
||||
}
|
||||
|
||||
/*
|
||||
* Page 31:
|
||||
/**
|
||||
* Returns the {@link Range} which covers all endnotes.
|
||||
*
|
||||
* "In a non-complex file, this means text of the: main document begins
|
||||
* at fib.fcMin in the file and continues through
|
||||
* fib.fcMin+fib.ccpText."
|
||||
* @return the {@link Range} which covers all endnotes.
|
||||
*/
|
||||
int bytesStart = getFileInformationBlock().getFcMin();
|
||||
|
||||
int charsStart = getTextTable().getCharIndex( bytesStart );
|
||||
int charsEnd = charsStart
|
||||
+ getFileInformationBlock().getSubdocumentTextStreamLength(
|
||||
SubdocumentType.MAIN );
|
||||
|
||||
return new Range( charsStart, charsEnd, this );
|
||||
public Range getEndnoteRange()
|
||||
{
|
||||
return getRange( SubdocumentType.ENDNOTE );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the range which covers all the Footnotes.
|
||||
* Returns the {@link Range} which covers all annotations.
|
||||
*
|
||||
* @return the {@link Range} which covers all annotations.
|
||||
*/
|
||||
public Range getFootnoteRange() {
|
||||
return new Range(
|
||||
_cpSplit.getFootnoteStart(),
|
||||
_cpSplit.getFootnoteEnd(),
|
||||
this
|
||||
);
|
||||
public Range getCommentsRange()
|
||||
{
|
||||
return getRange( SubdocumentType.ANNOTATION );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the range which covers all the Endnotes.
|
||||
* Returns the {@link Range} which covers all textboxes.
|
||||
*
|
||||
* @return the {@link Range} which covers all textboxes.
|
||||
*/
|
||||
public Range getEndnoteRange() {
|
||||
return new Range(
|
||||
_cpSplit.getEndNoteStart(),
|
||||
_cpSplit.getEndNoteEnd(),
|
||||
this
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the range which covers all the Endnotes.
|
||||
*/
|
||||
public Range getCommentsRange() {
|
||||
return new Range(
|
||||
_cpSplit.getCommentsStart(),
|
||||
_cpSplit.getCommentsEnd(),
|
||||
this
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the range which covers all the Endnotes.
|
||||
*/
|
||||
public Range getMainTextboxRange() {
|
||||
return new Range(
|
||||
_cpSplit.getMainTextboxStart(),
|
||||
_cpSplit.getMainTextboxEnd(),
|
||||
this
|
||||
);
|
||||
public Range getMainTextboxRange()
|
||||
{
|
||||
return getRange( SubdocumentType.TEXTBOX );
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user