Author: tilman
Date: Sat Sep 20 16:44:42 2025
New Revision: 1928646
Log:
PDFBOX-6073: Add option to implement custom ICOSVisitor behaviour for COSObject
as suggested by jp-db; closes #255
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/ICOSVisitor.java
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
Sat Sep 20 16:44:38 2025 (r1928645)
+++
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
Sat Sep 20 16:44:42 2025 (r1928646)
@@ -186,15 +186,7 @@ public class COSObject extends COSBase i
@Override
public void accept( ICOSVisitor visitor ) throws IOException
{
- COSBase object = getObject();
- if (object != null)
- {
- object.accept(visitor);
- }
- else
- {
- COSNull.NULL.accept(visitor);
- }
+ visitor.visitFromObject(this);
}
/**
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/ICOSVisitor.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/ICOSVisitor.java
Sat Sep 20 16:44:38 2025 (r1928645)
+++
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/ICOSVisitor.java
Sat Sep 20 16:44:42 2025 (r1928646)
@@ -104,4 +104,23 @@ public interface ICOSVisitor
* @throws IOException If there is an error while visiting this object.
*/
void visitFromString(COSString obj) throws IOException;
+
+ /**
+ * Notification of visit to object.
+ *
+ * @param obj The Object that is being visited.
+ * @throws IOException If there is an error while visiting this object.
+ */
+ default void visitFromObject(COSObject obj) throws IOException
+ {
+ COSBase base = obj.getObject();
+ if (base == null)
+ {
+ visitFromNull(COSNull.NULL);
+ }
+ else
+ {
+ base.accept(this);
+ }
+ }
}