Author: fanningpj
Date: Mon Aug 1 11:35:22 2022
New Revision: 1903163
URL: http://svn.apache.org/viewvc?rev=1903163&view=rev
Log:
[bug-66187] issue with XWPFRun creating run properties unnecessarily
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java?rev=1903163&r1=1903162&r2=1903163&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
Mon Aug 1 11:35:22 2022
@@ -40,12 +40,7 @@ import org.apache.poi.util.Internal;
import org.apache.poi.util.Removal;
import org.apache.poi.util.Units;
import org.apache.poi.wp.usermodel.CharacterRun;
-import org.apache.xmlbeans.SimpleValue;
-import org.apache.xmlbeans.XmlCursor;
-import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlObject;
-import org.apache.xmlbeans.XmlString;
-import org.apache.xmlbeans.XmlToken;
+import org.apache.xmlbeans.*;
import org.apache.xmlbeans.impl.values.XmlAnyTypeImpl;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
@@ -239,8 +234,7 @@ public class XWPFRun implements ISDTCont
*/
public String getLang() {
CTRPr pr = getRunProperties(false);
- Object lang = (pr == null || pr.sizeOfLangArray() == 0) ? null :
pr.getLangArray(0).getVal();
- return (String) lang;
+ return (pr == null || pr.sizeOfLangArray() == 0) ? null :
pr.getLangArray(0).getVal();
}
/**
@@ -299,7 +293,7 @@ public class XWPFRun implements ISDTCont
}
/**
- * Get text color. The returned value is a string in the hex form "RRGGBB".
+ * Get text color. The returned value is a string in the hex form
"RRGGBB". This can be <code>null</code>.
*/
public String getColor() {
String color = null;
@@ -963,10 +957,10 @@ public class XWPFRun implements ISDTCont
}
/**
- *
+ * Not yet implemented.
*/
public void removeBreak() {
- // TODO
+ // TODO not yet implemented
}
/**
@@ -1506,11 +1500,14 @@ public class XWPFRun implements ISDTCont
/**
* Gets the highlight color for the run
*
- * @return {@link STHighlightColor} for the run.
+ * @return {@link STHighlightColor} for the run. The default is
<code>NONE</code>;
* @since 5.2.3
*/
public STHighlightColor.Enum getTextHighlightColor() {
- CTRPr pr = getRunProperties(true);
+ CTRPr pr = getRunProperties(false);
+ if (pr == null) {
+ return STHighlightColor.NONE;
+ }
CTHighlight highlight = pr.sizeOfHighlightArray() > 0 ?
pr.getHighlightArray(0) : pr.addNewHighlight();
STHighlightColor color = highlight.xgetVal();
if (color == null) {
@@ -1527,7 +1524,7 @@ public class XWPFRun implements ISDTCont
* @since 4.0.0
*/
public boolean isVanish() {
- CTRPr pr = getRunProperties(true);
+ CTRPr pr = getRunProperties(false);
return pr != null && pr.sizeOfVanishArray() > 0 &&
isCTOnOff(pr.getVanishArray(0));
}
@@ -1546,11 +1543,15 @@ public class XWPFRun implements ISDTCont
/**
* Get the vertical alignment value
*
- * @return {@link STVerticalAlignRun.Enum} value (see 22.9.2.17
ST_VerticalAlignRun (Vertical Positioning Location))
+ * @return {@link STVerticalAlignRun.Enum} value (see 22.9.2.17
ST_VerticalAlignRun (Vertical Positioning Location)).
+ * The default is <code>BASELINE</code>.
* @since 4.0.0
*/
public STVerticalAlignRun.Enum getVerticalAlignment() {
- CTRPr pr = getRunProperties(true);
+ CTRPr pr = getRunProperties(false);
+ if (pr == null) {
+ return STVerticalAlignRun.BASELINE;
+ }
CTVerticalAlignRun vertAlign = pr.sizeOfVertAlignArray() > 0 ?
pr.getVertAlignArray(0) : pr.addNewVertAlign();
STVerticalAlignRun.Enum val = vertAlign.getVal();
if (val == null) {
@@ -1585,10 +1586,14 @@ public class XWPFRun implements ISDTCont
* Get the emphasis mark value for the run.
*
* @return {@link STEm.Enum} emphasis mark type enumeration. See 17.18.24
ST_Em (Emphasis Mark Type).
+ * The default is <code>NONE</code>.
* @since 4.0.0
*/
public STEm.Enum getEmphasisMark() {
- CTRPr pr = getRunProperties(true);
+ CTRPr pr = getRunProperties(false);
+ if (pr == null) {
+ return STEm.NONE;
+ }
CTEm emphasis = pr.sizeOfEmArray() > 0 ? pr.getEmArray(0) :
pr.addNewEm();
STEm.Enum val = emphasis.getVal();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]