Fix up whitespace / indents to be consistent

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1563491 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2014-02-01 22:05:23 +00:00
parent 71b6ee9757
commit 40ceccdcbd
2 changed files with 383 additions and 386 deletions

View File

@ -32,68 +32,66 @@ import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
public class Paragraph extends Range implements Cloneable
{
public class Paragraph extends Range implements Cloneable {
private static POILogger log = POILogFactory.getLogger( Paragraph.class );
public final static short SPRM_JC = 0x2403;
public final static short SPRM_FSIDEBYSIDE = 0x2404;
public final static short SPRM_FKEEP = 0x2405;
public final static short SPRM_FKEEPFOLLOW = 0x2406;
public final static short SPRM_FPAGEBREAKBEFORE = 0x2407;
public final static short SPRM_BRCL = 0x2408;
public final static short SPRM_BRCP = 0x2409;
public final static short SPRM_ILVL = 0x260A;
public final static short SPRM_ILFO = 0x460B;
public final static short SPRM_FNOLINENUMB = 0x240C;
public final static short SPRM_CHGTABSPAPX = (short)0xC60D;
public final static short SPRM_DXARIGHT = (short)0x840E;
public final static short SPRM_DXALEFT = (short)0x840F;
public final static short SPRM_DXALEFT1 = (short)0x8411;
public final static short SPRM_DYALINE = 0x6412;
public final static short SPRM_DYABEFORE = (short)0xA413;
public final static short SPRM_DYAAFTER = (short)0xA414;
public final static short SPRM_CHGTABS = (short)0xC615;
public final static short SPRM_FINTABLE = 0x2416;
public final static short SPRM_FTTP = 0x2417;
public final static short SPRM_DXAABS = (short)0x8418;
public final static short SPRM_DYAABS = (short)0x8419;
public final static short SPRM_DXAWIDTH = (short)0x841A;
public final static short SPRM_PC = 0x261B;
public final static short SPRM_WR = 0x2423;
public final static short SPRM_BRCTOP = 0x6424;
public final static short SPRM_BRCLEFT = 0x6425;
public final static short SPRM_BRCBOTTOM = 0x6426;
public final static short SPRM_BRCRIGHT = 0x6427;
public final static short SPRM_BRCBAR = 0x6629;
public final static short SPRM_FNOAUTOHYPH = 0x242A;
public final static short SPRM_WHEIGHTABS = 0x442B;
public final static short SPRM_DCS = 0x442C;
public final static short SPRM_SHD80 = 0x442D;
public final static short SPRM_SHD = (short)0xC64D;
public final static short SPRM_DYAFROMTEXT = (short)0x842E;
public final static short SPRM_DXAFROMTEXT = (short)0x842F;
public final static short SPRM_FLOCKED = 0x2430;
public final static short SPRM_FWIDOWCONTROL = 0x2431;
public final static short SPRM_RULER = (short)0xC632;
public final static short SPRM_FKINSOKU = 0x2433;
public final static short SPRM_FWORDWRAP = 0x2434;
public final static short SPRM_FOVERFLOWPUNCT = 0x2435;
public final static short SPRM_FTOPLINEPUNCT = 0x2436;
public final static short SPRM_AUTOSPACEDE = 0x2437;
public final static short SPRM_AUTOSPACEDN = 0x2438;
public final static short SPRM_WALIGNFONT = 0x4439;
public final static short SPRM_FRAMETEXTFLOW = 0x443A;
public final static short SPRM_ANLD = (short)0xC63E;
public final static short SPRM_PROPRMARK = (short)0xC63F;
public final static short SPRM_OUTLVL = 0x2640;
public final static short SPRM_FBIDI = 0x2441;
public final static short SPRM_FNUMRMLNS = 0x2443;
public final static short SPRM_CRLF = 0x2444;
public final static short SPRM_NUMRM = (short)0xC645;
public final static short SPRM_USEPGSUSETTINGS = 0x2447;
public final static short SPRM_FADJUSTRIGHT = 0x2448;
public final static short SPRM_JC = 0x2403;
public final static short SPRM_FSIDEBYSIDE = 0x2404;
public final static short SPRM_FKEEP = 0x2405;
public final static short SPRM_FKEEPFOLLOW = 0x2406;
public final static short SPRM_FPAGEBREAKBEFORE = 0x2407;
public final static short SPRM_BRCL = 0x2408;
public final static short SPRM_BRCP = 0x2409;
public final static short SPRM_ILVL = 0x260A;
public final static short SPRM_ILFO = 0x460B;
public final static short SPRM_FNOLINENUMB = 0x240C;
public final static short SPRM_CHGTABSPAPX = (short)0xC60D;
public final static short SPRM_DXARIGHT = (short)0x840E;
public final static short SPRM_DXALEFT = (short)0x840F;
public final static short SPRM_DXALEFT1 = (short)0x8411;
public final static short SPRM_DYALINE = 0x6412;
public final static short SPRM_DYABEFORE = (short)0xA413;
public final static short SPRM_DYAAFTER = (short)0xA414;
public final static short SPRM_CHGTABS = (short)0xC615;
public final static short SPRM_FINTABLE = 0x2416;
public final static short SPRM_FTTP = 0x2417;
public final static short SPRM_DXAABS = (short)0x8418;
public final static short SPRM_DYAABS = (short)0x8419;
public final static short SPRM_DXAWIDTH = (short)0x841A;
public final static short SPRM_PC = 0x261B;
public final static short SPRM_WR = 0x2423;
public final static short SPRM_BRCTOP = 0x6424;
public final static short SPRM_BRCLEFT = 0x6425;
public final static short SPRM_BRCBOTTOM = 0x6426;
public final static short SPRM_BRCRIGHT = 0x6427;
public final static short SPRM_BRCBAR = 0x6629;
public final static short SPRM_FNOAUTOHYPH = 0x242A;
public final static short SPRM_WHEIGHTABS = 0x442B;
public final static short SPRM_DCS = 0x442C;
public final static short SPRM_SHD80 = 0x442D;
public final static short SPRM_SHD = (short)0xC64D;
public final static short SPRM_DYAFROMTEXT = (short)0x842E;
public final static short SPRM_DXAFROMTEXT = (short)0x842F;
public final static short SPRM_FLOCKED = 0x2430;
public final static short SPRM_FWIDOWCONTROL = 0x2431;
public final static short SPRM_RULER = (short)0xC632;
public final static short SPRM_FKINSOKU = 0x2433;
public final static short SPRM_FWORDWRAP = 0x2434;
public final static short SPRM_FOVERFLOWPUNCT = 0x2435;
public final static short SPRM_FTOPLINEPUNCT = 0x2436;
public final static short SPRM_AUTOSPACEDE = 0x2437;
public final static short SPRM_AUTOSPACEDN = 0x2438;
public final static short SPRM_WALIGNFONT = 0x4439;
public final static short SPRM_FRAMETEXTFLOW = 0x443A;
public final static short SPRM_ANLD = (short)0xC63E;
public final static short SPRM_PROPRMARK = (short)0xC63F;
public final static short SPRM_OUTLVL = 0x2640;
public final static short SPRM_FBIDI = 0x2441;
public final static short SPRM_FNUMRMLNS = 0x2443;
public final static short SPRM_CRLF = 0x2444;
public final static short SPRM_NUMRM = (short)0xC645;
public final static short SPRM_USEPGSUSETTINGS = 0x2447;
public final static short SPRM_FADJUSTRIGHT = 0x2448;
@Internal
static Paragraph newParagraph( Range parent, PAPX papx )
@ -616,46 +614,45 @@ public class Paragraph extends Range implements Cloneable
return getIlfo() != 0x000 && getIlfo() != 0xF801;
}
/**
* clone the ParagraphProperties object associated with this Paragraph so
* that you can apply the same properties to another paragraph.
*
*/
public ParagraphProperties cloneProperties() {
try {
return (ParagraphProperties)_props.clone();
} catch (Exception e) {
throw new RuntimeException(e);
/**
* Clone the ParagraphProperties object associated with this
* Paragraph, so that you can apply the same properties to
* another Paragraph.
*/
public ParagraphProperties cloneProperties() {
try {
return (ParagraphProperties)_props.clone();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
public Object clone()
throws CloneNotSupportedException
{
Paragraph p = (Paragraph)super.clone();
p._props = (ParagraphProperties)_props.clone();
//p._baseStyle = _baseStyle;
p._papx = new SprmBuffer(0);
return p;
}
public Object clone() throws CloneNotSupportedException
{
Paragraph p = (Paragraph)super.clone();
p._props = (ParagraphProperties)_props.clone();
//p._baseStyle = _baseStyle;
p._papx = new SprmBuffer(0);
return p;
}
private short getFrameTextFlow()
{
short retVal = 0;
if (_props.isFVertical())
private short getFrameTextFlow()
{
retVal |= 1;
short retVal = 0;
if (_props.isFVertical())
{
retVal |= 1;
}
if (_props.isFBackward())
{
retVal |= 2;
}
if (_props.isFRotateFont())
{
retVal |= 4;
}
return retVal;
}
if (_props.isFBackward())
{
retVal |= 2;
}
if (_props.isFRotateFont())
{
retVal |= 4;
}
return retVal;
}
@Override
public String toString()

View File

@ -32,84 +32,84 @@ import org.apache.poi.hwpf.model.StyleSheet;
* properties applied to them.
*/
public final class TestRangeProperties extends TestCase {
private static final char page_break = (char)12;
private static final char page_break = (char)12;
private static final String u_page_1 =
"This is a fairly simple word document, over two pages, with headers and footers.\r" +
"The trick with this one is that it contains some Unicode based strings in it.\r" +
"Firstly, some currency symbols:\r" +
"\tGBP - \u00a3\r" +
"\tEUR - \u20ac\r" +
"Now, we\u2019ll have some French text, in bold and big:\r" +
"\tMoli\u00e8re\r" +
"And some normal French text:\r" +
"\tL'Avare ou l'\u00c9cole du mensonge\r" +
"That\u2019s it for page one\r"
;
private static final String u_page_2 =
"This is page two. Les Pr\u00e9cieuses ridicules. The end.\r"
;
private static final String u_page_1 =
"This is a fairly simple word document, over two pages, with headers and footers.\r" +
"The trick with this one is that it contains some Unicode based strings in it.\r" +
"Firstly, some currency symbols:\r" +
"\tGBP - \u00a3\r" +
"\tEUR - \u20ac\r" +
"Now, we\u2019ll have some French text, in bold and big:\r" +
"\tMoli\u00e8re\r" +
"And some normal French text:\r" +
"\tL'Avare ou l'\u00c9cole du mensonge\r" +
"That\u2019s it for page one\r"
;
private static final String u_page_2 =
"This is page two. Les Pr\u00e9cieuses ridicules. The end.\r"
;
private static final String a_page_1 =
"I am a test document\r" +
"This is page 1\r" +
"I am Calibri (Body) in font size 11\r"
;
private static final String a_page_2 =
"This is page two\r" +
"It\u2019s Arial Black in 16 point\r" +
"It\u2019s also in blue\r"
;
private static final String a_page_1 =
"I am a test document\r" +
"This is page 1\r" +
"I am Calibri (Body) in font size 11\r"
;
private static final String a_page_2 =
"This is page two\r" +
"It\u2019s Arial Black in 16 point\r" +
"It\u2019s also in blue\r"
;
private HWPFDocument u;
private HWPFDocument a;
private HWPFDocument u;
private HWPFDocument a;
protected void setUp() {
u = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
a = HWPFTestDataSamples.openSampleFile("SampleDoc.doc");
}
protected void setUp() {
u = HWPFTestDataSamples.openSampleFile("HeaderFooterUnicode.doc");
a = HWPFTestDataSamples.openSampleFile("SampleDoc.doc");
}
public void testAsciiTextParagraphs() {
Range r = a.getRange();
assertEquals(
a_page_1 +
page_break + "\r" +
a_page_2,
r.text()
);
public void testAsciiTextParagraphs() {
Range r = a.getRange();
assertEquals(
a_page_1 +
page_break + "\r" +
a_page_2,
r.text()
);
assertEquals(1, r.numSections());
assertEquals(1, a.getSectionTable().getSections().size());
Section s = r.getSection(0);
assertEquals(
a_page_1 +
page_break + "\r" +
a_page_2,
s.text()
);
assertEquals(1, r.numSections());
assertEquals(1, a.getSectionTable().getSections().size());
Section s = r.getSection(0);
assertEquals(
a_page_1 +
page_break + "\r" +
a_page_2,
s.text()
);
// no PAP reconstruction
// assertEquals( 7, r.numParagraphs() );
// with PAP reconstructon
assertEquals( 8, r.numParagraphs() );
String[] p1_parts = a_page_1.split("\r");
String[] p2_parts = a_page_2.split("\r");
String[] p1_parts = a_page_1.split("\r");
String[] p2_parts = a_page_2.split("\r");
// Check paragraph contents
assertEquals(
p1_parts[0] + "\r",
r.getParagraph(0).text()
);
assertEquals(
p1_parts[1] + "\r",
r.getParagraph(1).text()
);
assertEquals(
p1_parts[2] + "\r",
r.getParagraph(2).text()
);
// Check paragraph contents
assertEquals(
p1_parts[0] + "\r",
r.getParagraph(0).text()
);
assertEquals(
p1_parts[1] + "\r",
r.getParagraph(1).text()
);
assertEquals(
p1_parts[2] + "\r",
r.getParagraph(2).text()
);
// no PAPX reconstruction
// assertEquals( page_break + "\r", r.getParagraph( 3 ).text() );
@ -125,168 +125,168 @@ public final class TestRangeProperties extends TestCase {
assertEquals( p2_parts[2] + "\r", r.getParagraph( 7 ).text() );
}
public void testAsciiStyling() {
Range r = a.getRange();
public void testAsciiStyling() {
Range r = a.getRange();
Paragraph p1 = r.getParagraph(0);
Paragraph p7 = r.getParagraph(6);
Paragraph p1 = r.getParagraph(0);
Paragraph p7 = r.getParagraph(6);
assertEquals(1, p1.numCharacterRuns());
assertEquals(1, p7.numCharacterRuns());
assertEquals(1, p1.numCharacterRuns());
assertEquals(1, p7.numCharacterRuns());
CharacterRun c1 = p1.getCharacterRun(0);
CharacterRun c7 = p7.getCharacterRun(0);
CharacterRun c1 = p1.getCharacterRun(0);
CharacterRun c7 = p7.getCharacterRun(0);
assertEquals("Times New Roman", c1.getFontName()); // No Calibri
assertEquals("Arial Black", c7.getFontName());
assertEquals(22, c1.getFontSize());
assertEquals(32, c7.getFontSize());
// This document has 15 styles
assertEquals(15, a.getStyleSheet().numStyles());
// Ensure none of the paragraphs refer to one that isn't there,
// and none of their character runs either
// Also check all use the default style
assertEquals("Times New Roman", c1.getFontName()); // No Calibri
assertEquals("Arial Black", c7.getFontName());
assertEquals(22, c1.getFontSize());
assertEquals(32, c7.getFontSize());
// This document has 15 styles
assertEquals(15, a.getStyleSheet().numStyles());
// Ensure none of the paragraphs refer to one that isn't there,
// and none of their character runs either
// Also check all use the default style
StyleSheet ss = a.getStyleSheet();
for(int i=0; i<a.getRange().numParagraphs(); i++) {
Paragraph p = a.getRange().getParagraph(i);
int styleIndex = p.getStyleIndex();
assertTrue(styleIndex < 15);
assertEquals("Normal", ss.getStyleDescription(styleIndex).getName());
}
for(int i=0; i<a.getRange().numParagraphs(); i++) {
Paragraph p = a.getRange().getParagraph(i);
int styleIndex = p.getStyleIndex();
assertTrue(styleIndex < 15);
assertEquals("Normal", ss.getStyleDescription(styleIndex).getName());
}
for(int i=0; i<a.getRange().numCharacterRuns(); i++) {
CharacterRun c = a.getRange().getCharacterRun(i);
int styleIndex = c.getStyleIndex();
assertTrue(styleIndex < 15);
assertEquals("Normal", ss.getStyleDescription(styleIndex).getName());
}
}
}
/**
* Tests the raw definitions of the paragraphs of
* a unicode document
*/
public void testUnicodeParagraphDefinitions() {
Range r = u.getRange();
String[] p1_parts = u_page_1.split("\r");
String[] p2_parts = u_page_2.split("\r");
/**
* Tests the raw definitions of the paragraphs of
* a unicode document
*/
public void testUnicodeParagraphDefinitions() {
Range r = u.getRange();
String[] p1_parts = u_page_1.split("\r");
String[] p2_parts = u_page_2.split("\r");
assertEquals(
u_page_1 + page_break + "\r" + u_page_2,
r.text()
);
assertEquals(
408, r.text().length()
);
assertEquals(
u_page_1 + page_break + "\r" + u_page_2,
r.text()
);
assertEquals(
408, r.text().length()
);
assertEquals(1, r.numSections());
assertEquals(1, u.getSectionTable().getSections().size());
Section s = r.getSection(0);
assertEquals(
u_page_1 +
page_break + "\r" +
u_page_2,
s.text()
);
assertEquals(0, s.getStartOffset());
assertEquals(408, s.getEndOffset());
assertEquals(1, r.numSections());
assertEquals(1, u.getSectionTable().getSections().size());
Section s = r.getSection(0);
assertEquals(
u_page_1 +
page_break + "\r" +
u_page_2,
s.text()
);
assertEquals(0, s.getStartOffset());
assertEquals(408, s.getEndOffset());
List<PAPX> pDefs = r._paragraphs;
List<PAPX> pDefs = r._paragraphs;
// no PAPX reconstruction
// assertEquals(36, pDefs.size());
// with PAPX reconstruction
assertEquals( 36, pDefs.size() );
// Check that the last paragraph ends where it should do
assertEquals(531, u.getOverallRange().text().length());
PAPX pLast = pDefs.get(34);
// assertEquals(530, pLast.getEnd());
// Check that the last paragraph ends where it should do
assertEquals(531, u.getOverallRange().text().length());
PAPX pLast = pDefs.get(34);
// assertEquals(530, pLast.getEnd());
// Only care about the first few really though
PAPX p0 = pDefs.get(0);
PAPX p1 = pDefs.get(1);
PAPX p2 = pDefs.get(2);
PAPX p3 = pDefs.get(3);
PAPX p4 = pDefs.get(4);
// Only care about the first few really though
PAPX p0 = pDefs.get(0);
PAPX p1 = pDefs.get(1);
PAPX p2 = pDefs.get(2);
PAPX p3 = pDefs.get(3);
PAPX p4 = pDefs.get(4);
// 5 paragraphs should get us to the end of our text
assertTrue(p0.getStart() < 408);
assertTrue(p0.getEnd() < 408);
assertTrue(p1.getStart() < 408);
assertTrue(p1.getEnd() < 408);
assertTrue(p2.getStart() < 408);
assertTrue(p2.getEnd() < 408);
assertTrue(p3.getStart() < 408);
assertTrue(p3.getEnd() < 408);
assertTrue(p4.getStart() < 408);
assertTrue(p4.getEnd() < 408);
// 5 paragraphs should get us to the end of our text
assertTrue(p0.getStart() < 408);
assertTrue(p0.getEnd() < 408);
assertTrue(p1.getStart() < 408);
assertTrue(p1.getEnd() < 408);
assertTrue(p2.getStart() < 408);
assertTrue(p2.getEnd() < 408);
assertTrue(p3.getStart() < 408);
assertTrue(p3.getEnd() < 408);
assertTrue(p4.getStart() < 408);
assertTrue(p4.getEnd() < 408);
// Paragraphs should match with lines
assertEquals(
0,
p0.getStart()
);
assertEquals(
p1_parts[0].length() + 1,
p0.getEnd()
);
// Paragraphs should match with lines
assertEquals(
0,
p0.getStart()
);
assertEquals(
p1_parts[0].length() + 1,
p0.getEnd()
);
assertEquals(
p1_parts[0].length() + 1,
p1.getStart()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1,
p1.getEnd()
);
assertEquals(
p1_parts[0].length() + 1,
p1.getStart()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1,
p1.getEnd()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1,
p2.getStart()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1,
p2.getEnd()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1,
p2.getStart()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1,
p2.getEnd()
);
}
/**
* Tests the paragraph text of a unicode document
*/
public void testUnicodeTextParagraphs() {
Range r = u.getRange();
assertEquals(
u_page_1 +
page_break + "\r" +
u_page_2,
r.text()
);
/**
* Tests the paragraph text of a unicode document
*/
public void testUnicodeTextParagraphs() {
Range r = u.getRange();
assertEquals(
u_page_1 +
page_break + "\r" +
u_page_2,
r.text()
);
// without PAPX reconstruction
// assertEquals( 12, r.numParagraphs() );
// with PAPX reconstruction
assertEquals( 13, r.numParagraphs() );
String[] p1_parts = u_page_1.split("\r");
String[] p2_parts = u_page_2.split("\r");
String[] p1_parts = u_page_1.split("\r");
String[] p2_parts = u_page_2.split("\r");
// Check text all matches up properly
assertEquals(p1_parts[0] + "\r", r.getParagraph(0).text());
assertEquals(p1_parts[1] + "\r", r.getParagraph(1).text());
assertEquals(p1_parts[2] + "\r", r.getParagraph(2).text());
assertEquals(p1_parts[3] + "\r", r.getParagraph(3).text());
assertEquals(p1_parts[4] + "\r", r.getParagraph(4).text());
assertEquals(p1_parts[5] + "\r", r.getParagraph(5).text());
assertEquals(p1_parts[6] + "\r", r.getParagraph(6).text());
assertEquals(p1_parts[7] + "\r", r.getParagraph(7).text());
assertEquals(p1_parts[8] + "\r", r.getParagraph(8).text());
assertEquals(p1_parts[9] + "\r", r.getParagraph(9).text());
// Check text all matches up properly
assertEquals(p1_parts[0] + "\r", r.getParagraph(0).text());
assertEquals(p1_parts[1] + "\r", r.getParagraph(1).text());
assertEquals(p1_parts[2] + "\r", r.getParagraph(2).text());
assertEquals(p1_parts[3] + "\r", r.getParagraph(3).text());
assertEquals(p1_parts[4] + "\r", r.getParagraph(4).text());
assertEquals(p1_parts[5] + "\r", r.getParagraph(5).text());
assertEquals(p1_parts[6] + "\r", r.getParagraph(6).text());
assertEquals(p1_parts[7] + "\r", r.getParagraph(7).text());
assertEquals(p1_parts[8] + "\r", r.getParagraph(8).text());
assertEquals(p1_parts[9] + "\r", r.getParagraph(9).text());
// without PAPX reconstruction
// assertEquals(page_break + "\r", r.getParagraph(10).text());
// assertEquals(p2_parts[0] + "\r", r.getParagraph(11).text());
@ -294,118 +294,118 @@ public final class TestRangeProperties extends TestCase {
assertEquals( page_break + "", r.getParagraph( 10 ).text() );
assertEquals( "\r", r.getParagraph( 11 ).text() );
assertEquals( p2_parts[0] + "\r", r.getParagraph( 12 ).text() );
}
public void testUnicodeStyling() {
Range r = u.getRange();
String[] p1_parts = u_page_1.split("\r");
}
public void testUnicodeStyling() {
Range r = u.getRange();
String[] p1_parts = u_page_1.split("\r");
Paragraph p1 = r.getParagraph(0);
Paragraph p7 = r.getParagraph(6);
StyleSheet ss = r._doc.getStyleSheet();
Paragraph p1 = r.getParagraph(0);
Paragraph p7 = r.getParagraph(6);
StyleSheet ss = r._doc.getStyleSheet();
// Line ending in its own run each time!
assertEquals(2, p1.numCharacterRuns());
assertEquals(2, p7.numCharacterRuns());
// Line ending in its own run each time!
assertEquals(2, p1.numCharacterRuns());
assertEquals(2, p7.numCharacterRuns());
CharacterRun c1a = p1.getCharacterRun(0);
CharacterRun c1b = p1.getCharacterRun(1);
CharacterRun c7a = p7.getCharacterRun(0);
CharacterRun c7b = p7.getCharacterRun(1);
CharacterRun c1a = p1.getCharacterRun(0);
CharacterRun c1b = p1.getCharacterRun(1);
CharacterRun c7a = p7.getCharacterRun(0);
CharacterRun c7b = p7.getCharacterRun(1);
assertEquals("Times New Roman", c1a.getFontName()); // No Calibri
assertEquals(22, c1a.getFontSize());
assertEquals("Times New Roman", c1a.getFontName()); // No Calibri
assertEquals(22, c1a.getFontSize());
assertEquals("Times New Roman", c1b.getFontName()); // No Calibri
assertEquals(22, c1b.getFontSize());
assertEquals("Times New Roman", c1b.getFontName()); // No Calibri
assertEquals(22, c1b.getFontSize());
assertEquals("Times New Roman", c7a.getFontName());
assertEquals(48, c7a.getFontSize());
assertEquals("Times New Roman", c7a.getFontName());
assertEquals(48, c7a.getFontSize());
assertEquals("Times New Roman", c7b.getFontName());
assertEquals(48, c7b.getFontSize());
// All use the default base style
assertEquals("Normal", ss.getStyleDescription(c1a.getStyleIndex()).getName());
assertEquals("Times New Roman", c7b.getFontName());
assertEquals(48, c7b.getFontSize());
// All use the default base style
assertEquals("Normal", ss.getStyleDescription(c1a.getStyleIndex()).getName());
assertEquals("Normal", ss.getStyleDescription(c1b.getStyleIndex()).getName());
assertEquals("Heading 1", ss.getStyleDescription(c7a.getStyleIndex()).getName());
assertEquals("Heading 1", ss.getStyleDescription(c7b.getStyleIndex()).getName());
// Now check where they crop up
assertEquals(
0,
c1a.getStartOffset()
);
assertEquals(
p1_parts[0].length(),
c1a.getEndOffset()
);
// Now check where they crop up
assertEquals(
0,
c1a.getStartOffset()
);
assertEquals(
p1_parts[0].length(),
c1a.getEndOffset()
);
assertEquals(
p1_parts[0].length(),
c1b.getStartOffset()
);
assertEquals(
p1_parts[0].length()+1,
c1b.getEndOffset()
);
assertEquals(
p1_parts[0].length(),
c1b.getStartOffset()
);
assertEquals(
p1_parts[0].length()+1,
c1b.getEndOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1,
c7a.getStartOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
1,
c7a.getEndOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1,
c7a.getStartOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
1,
c7a.getEndOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
1,
c7b.getStartOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
p1_parts[6].length() + 1,
c7b.getEndOffset()
);
// This document also has 22 styles
assertEquals(22, ss.numStyles());
// Ensure none of the paragraphs refer to one that isn't there,
// and none of their character runs either
for(int i=0; i<r.numParagraphs(); i++) {
Paragraph p = r.getParagraph(i);
int styleIndex = p.getStyleIndex();
assertTrue(styleIndex < 22);
assertNotNull(ss.getStyleDescription(styleIndex).getName());
}
for(int i=0; i<r.numCharacterRuns(); i++) {
CharacterRun c = r.getCharacterRun(i);
int styleIndex = c.getStyleIndex();
assertTrue(styleIndex < 22);
assertNotNull(ss.getStyleDescription(styleIndex).getName());
}
}
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
1,
c7b.getStartOffset()
);
assertEquals(
p1_parts[0].length() + 1 +
p1_parts[1].length() + 1 +
p1_parts[2].length() + 1 +
p1_parts[3].length() + 1 +
p1_parts[4].length() + 1 +
p1_parts[5].length() + 1 +
p1_parts[6].length() + 1,
c7b.getEndOffset()
);
// This document also has 22 styles
assertEquals(22, ss.numStyles());
// Ensure none of the paragraphs refer to one that isn't there,
// and none of their character runs either
for(int i=0; i<r.numParagraphs(); i++) {
Paragraph p = r.getParagraph(i);
int styleIndex = p.getStyleIndex();
assertTrue(styleIndex < 22);
assertNotNull(ss.getStyleDescription(styleIndex).getName());
}
for(int i=0; i<r.numCharacterRuns(); i++) {
CharacterRun c = r.getCharacterRun(i);
int styleIndex = c.getStyleIndex();
assertTrue(styleIndex < 22);
assertNotNull(ss.getStyleDescription(styleIndex).getName());
}
}
}