From ee525b647727faaeafe0e1636bcd558c77e5c205 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 19 Apr 2024 14:12:13 +0000 Subject: [PATCH] refactor code that removes parts git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1917154 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/ooxml/ReferenceRelationship.java | 2 +- .../apache/poi/openxml4j/opc/OPCPackage.java | 11 +++++++++-- .../poi/openxml4j/opc/PackageRelationship.java | 10 ++++++---- .../apache/poi/openxml4j/opc/ZipPackage.java | 17 ++--------------- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/ooxml/ReferenceRelationship.java b/poi-ooxml/src/main/java/org/apache/poi/ooxml/ReferenceRelationship.java index 12dce49502..dd9fbe8b99 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/ooxml/ReferenceRelationship.java +++ b/poi-ooxml/src/main/java/org/apache/poi/ooxml/ReferenceRelationship.java @@ -47,7 +47,7 @@ public abstract class ReferenceRelationship { protected ReferenceRelationship(POIXMLDocumentPart container, URI targetUri, boolean isExternal, String relationshipType, String id) { if (targetUri == null) { - throw new IllegalArgumentException("targetUri"); + throw new NullPointerException("targetUri cannot be null"); } this.container = container; diff --git a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java index 6c8ceeac24..e15284806d 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java +++ b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java @@ -1025,7 +1025,6 @@ public abstract class OPCPackage implements RelationshipSource, Closeable { if (this.partList.containsKey(partName)) { this.partList.get(partName).setDeleted(true); this.removePartImpl(partName); - this.partList.remove(partName); } else { this.removePartImpl(partName); } @@ -1551,8 +1550,16 @@ public abstract class OPCPackage implements RelationshipSource, Closeable { * * @param partName * The URI of the part to delete. + * @throws IllegalArgumentException if the partName is null. + * @throws InvalidOperationException if the package is in read-only mode. */ - protected abstract void removePartImpl(PackagePartName partName); + protected void removePartImpl(PackagePartName partName) { + if (partName == null) { + throw new IllegalArgumentException("partName cannot be null"); + } + throwExceptionIfReadOnly(); + this.partList.remove(partName); + } /** * Flush the package but not save. diff --git a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageRelationship.java b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageRelationship.java index 417f3899d9..96764718be 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageRelationship.java +++ b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/PackageRelationship.java @@ -85,18 +85,20 @@ public final class PackageRelationship { /** * Constructor. + * + * @throws NullPointerException if inputs are null */ public PackageRelationship(OPCPackage pkg, PackagePart sourcePart, URI targetUri, TargetMode targetMode, String relationshipType, String id) { if (pkg == null) - throw new IllegalArgumentException("pkg"); + throw new NullPointerException("pkg cannot be null"); if (targetUri == null) - throw new IllegalArgumentException("targetUri"); + throw new NullPointerException("targetUri cannot be null"); if (relationshipType == null) - throw new IllegalArgumentException("relationshipType"); + throw new NullPointerException("relationshipType cannot be null"); if (id == null) - throw new IllegalArgumentException("id"); + throw new NullPointerException("id cannot be null"); this.container = pkg; this.source = sourcePart; diff --git a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java index cc650df588..46b3fd3b7f 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java +++ b/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java @@ -401,11 +401,11 @@ public final class ZipPackage extends OPCPackage { protected PackagePart createPartImpl(PackagePartName partName, String contentType, boolean loadRelationships) { if (contentType == null) { - throw new IllegalArgumentException("contentType"); + throw new IllegalArgumentException("contentType cannot be null"); } if (partName == null) { - throw new IllegalArgumentException("partName"); + throw new IllegalArgumentException("partName cannot be null"); } try { @@ -424,19 +424,6 @@ public final class ZipPackage extends OPCPackage { } } - /** - * Delete a part from the package - * - * @throws IllegalArgumentException - * Throws if the part URI is null or invalid. - */ - @Override - protected void removePartImpl(PackagePartName partName) { - if (partName == null) { - throw new IllegalArgumentException("partUri"); - } - } - /** * Flush the package. Do nothing. */ -- 2.39.5