try to make comments table more extensible

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895105 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2021-11-17 13:08:48 +00:00
parent fd1b5c87cf
commit fa703eccfb
2 changed files with 23 additions and 4 deletions

View 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;
@ -101,7 +102,10 @@ public class CommentsTable extends POIXMLDocumentPart implements Comments {
* 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
* @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();

View 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;
}