]> source.dussan.org Git - poi.git/commitdiff
try to make comments table more extensible
authorPJ Fanning <fanningpj@apache.org>
Wed, 17 Nov 2021 13:08:48 +0000 (13:08 +0000)
committerPJ Fanning <fanningpj@apache.org>
Wed, 17 Nov 2021 13:08:48 +0000 (13:08 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895105 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFComment.java

index 876339f2fa347e7444ff8559b84d922d71a9fbdf..c3b122ad9a4787f162c27e61cf8401fe90b117dd 100644 (file)
@@ -30,6 +30,7 @@ import org.apache.poi.ooxml.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.ss.util.CellAddress;
 import org.apache.poi.util.Internal;
+import org.apache.poi.util.Removal;
 import org.apache.poi.util.Units;
 import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
 import org.apache.poi.xssf.usermodel.XSSFComment;
@@ -99,9 +100,12 @@ public class CommentsTable extends POIXMLDocumentPart implements Comments {
     /**
      * Called after the reference is updated, so that
      *  we can reflect that in our cache
-     *  @param oldReference the comment to remove from the commentRefs map
-     *  @param comment the comment to replace in the commentRefs map
+     * @param oldReference the comment to remove from the commentRefs map
+     * @param comment the comment to replace in the commentRefs map
+     * @deprecated use {@link #referenceUpdated(CellAddress, XSSFComment)}
      */
+    @Deprecated
+    @Removal(version = "6.0.0")
     public void referenceUpdated(CellAddress oldReference, CTComment comment) {
        if(commentRefs != null) {
           commentRefs.remove(oldReference);
@@ -109,6 +113,20 @@ public class CommentsTable extends POIXMLDocumentPart implements Comments {
        }
     }
 
+    /**
+     * Called after the reference is updated, so that
+     *  we can reflect that in our cache
+     * @param oldReference the comment to remove from the commentRefs map
+     * @param comment the comment to replace in the commentRefs map
+     * @since POI 5.2.0
+     */
+    public void referenceUpdated(CellAddress oldReference, XSSFComment comment) {
+        if(commentRefs != null) {
+            commentRefs.remove(oldReference);
+            commentRefs.put(comment.getAddress(), comment.getCTComment());
+        }
+    }
+
     @Override
     public int getNumberOfComments() {
         return comments.getCommentList().sizeOfCommentArray();
index 369a8bdc05208e975660a9312bc24ed2b7c7ecf6..96920c2345752a7ff8ab7e52ee673c277dd6ed27 100644 (file)
@@ -163,7 +163,7 @@ public class XSSFComment implements Comment {
         }
         
         _comment.setRef(address.formatAsString());
-        _comments.referenceUpdated(oldRef, _comment);
+        _comments.referenceUpdated(oldRef, this);
         
         if (_vmlShape != null) {
             CTClientData clientData = _vmlShape.getClientDataArray(0);
@@ -244,8 +244,9 @@ public class XSSFComment implements Comment {
 
     /**
      * @return the xml bean holding this comment's properties
+     * @since POI 5.2.0 (was protected before POI 5.2.0)
      */
-    protected CTComment getCTComment(){
+    public CTComment getCTComment(){
         return _comment;
     }