]> source.dussan.org Git - poi.git/commitdiff
Fix some eclipse warnings, add TODOs for fields/hyperlinks XWPF add support, and...
authorNick Burch <nick@apache.org>
Tue, 11 Aug 2015 20:10:53 +0000 (20:10 +0000)
committerNick Burch <nick@apache.org>
Tue, 11 Aug 2015 20:10:53 +0000 (20:10 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1695365 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java

index 65c726d102df2e02c69d8bedfac6dfcd7efc61a9..da409b2fccb2858f464eace760488fdad411a0e5 100644 (file)
@@ -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