diff options
author | Nick Burch <nick@apache.org> | 2015-08-11 20:10:53 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2015-08-11 20:10:53 +0000 |
commit | ef47d1833d4b8eb8537ecd0ff0e48ed2cb073e0d (patch) | |
tree | 2c2b48cb50aea827ef6869afd984494f02d17f09 | |
parent | 3aa84d4555ff73ee44302e9a4c8cd35f7cef2dd8 (diff) | |
download | poi-ef47d1833d4b8eb8537ecd0ff0e48ed2cb073e0d.tar.gz poi-ef47d1833d4b8eb8537ecd0ff0e48ed2cb073e0d.zip |
Fix some eclipse warnings, add TODOs for fields/hyperlinks XWPF add support, and give a more helpful exception if someone tries to remove a XWPFRun that is not a direct paragraph child
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1695365 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java index 65c726d102..da409b2fcc 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java +++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java @@ -131,6 +131,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para * sub-paragraph that correspond to character text * runs, and builds the appropriate runs for these. */ + @SuppressWarnings("deprecation") private void buildRunsInOrderFromXml(XmlObject object) { XmlCursor c = object.newCursor(); c.selectPath("child::*"); @@ -1322,7 +1323,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para * @return a new text run */ public XWPFRun createRun() { - XWPFRun xwpfRun = new XWPFRun(paragraph.addNewR(), this); + XWPFRun xwpfRun = new XWPFRun(paragraph.addNewR(), (IRunBody)this); runs.add(xwpfRun); iruns.add(xwpfRun); return xwpfRun; @@ -1337,7 +1338,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para public XWPFRun insertNewRun(int pos) { if (pos >= 0 && pos <= paragraph.sizeOfRArray()) { CTR ctRun = paragraph.insertNewR(pos); - XWPFRun newRun = new XWPFRun(ctRun, this); + XWPFRun newRun = new XWPFRun(ctRun, (IRunBody)this); // To update the iruns, find where we're going // in the normal runs, and go in there @@ -1358,6 +1359,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para } return null; } + // TODO Add methods to allow adding a HyperlinkRun or a FieldRun /** * this methods parse the paragraph and search for the string searched. @@ -1369,10 +1371,12 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para */ public TextSegement searchText(String searched, PositionInParagraph startPos) { int startRun = startPos.getRun(), - startText = startPos.getText(), - startChar = startPos.getChar(); + startText = startPos.getText(), + startChar = startPos.getChar(); int beginRunPos = 0, candCharPos = 0; boolean newList = false; + + @SuppressWarnings("deprecation") CTR[] rArray = paragraph.getRArray(); for (int runPos = startRun; runPos < rArray.length; runPos++) { int beginTextPos = 0, beginCharPos = 0, textPos = 0, charPos = 0; @@ -1433,6 +1437,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para * * @param segment */ + @SuppressWarnings("deprecation") public String getText(TextSegement segment) { int runBegin = segment.getBeginRun(); int textBegin = segment.getBeginText(); @@ -1473,6 +1478,12 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para if (pos >= 0 && pos < paragraph.sizeOfRArray()) { // Remove the run from our high level lists XWPFRun run = runs.get(pos); + if (run instanceof XWPFHyperlinkRun || + run instanceof XWPFFieldRun) { + // TODO Add support for removing these kinds of nested runs, + // which aren't on the CTP -> R array, but CTP -> XXX -> R array + throw new IllegalArgumentException("Removing Field or Hyperlink runs not yet supported"); + } runs.remove(pos); iruns.remove(run); // Remove the run from the low-level XML |