jaragunde commented on code in PR #843:
URL: https://github.com/apache/poi/pull/843#discussion_r2206609283


##########
poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTable.java:
##########
@@ -306,6 +306,80 @@ public int getNumberOfRows() {
         return ctTbl.sizeOfTrArray();
     }
 
+    /**
+     * Get the indentation value in 20ths of a point (twips).
+     *
+     * <p>This element specifies the indentation which shall be added before 
the leading edge of
+     * the current table in the document (the left edge in a left-to-right 
table, and the right
+     * edge in a right-to-left table).</p>
+     * <p>If the table alignment is not left/start, this property shall be 
ignored.</p>
+     *
+     * @see boolean isSetIndent()
+     * @return indentation value as an integer (20ths of a point)
+     */
+    public int getIndent() {
+        CTTblPr tblPr = getTblPr();
+        if (tblPr.isSetTblInd()) {
+            STTblWidth.Enum typeValue = tblPr.getTblInd().getType();
+            if (typeValue == null) {
+                // "§17.4.87: If [type] is omitted, then its value shall be 
assumed to be dxa"
+                typeValue = STTblWidth.DXA;
+            }
+            switch (typeValue.intValue()) {
+                case STTblWidth.INT_DXA:
+                    return (int) 
Units.toDXA(POIXMLUnits.parseLength(tblPr.getTblInd().xgetW()));
+                case STTblWidth.INT_NIL:
+                    // "§17.18.90: [nil] Specifies that the current width is 
zero, regardless of
+                    // any width value specified on the parent element"
+                    return 0;
+                case STTblWidth.INT_PCT:
+                case STTblWidth.INT_AUTO:
+                    // "§17.4.50: Any width value of type pct or auto for this 
element shall be ignored"
+                    return 0;
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * Set the indentation in 20ths of a point (twips).
+     * @see int getIndent()
+     * @param indent Indentation value (20ths of a point)
+     */
+    public void setIndent(int indent) {
+        CTTblPr tblPr = getTblPr();
+        CTTblWidth tblInd = tblPr.isSetTblInd() ? tblPr.getTblInd() : 
tblPr.addNewTblInd();
+        tblInd.setW(new BigInteger(Integer.toString(indent)));

Review Comment:
   I think we are safe using BigInteger. I inspected the getter and I see it 
returns a BigInteger. Besides, `setWidth()` also makes use of a `CTTblWidth` 
object and it sets a BigInteger.
   
   I checked the BigInteger API as suggested and noticed 
BigInteger.valueOf(int) which is a better fit.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to