Author: tilman
Date: Mon Sep 8 12:31:40 2025
New Revision: 1928290
Log:
PDFBOX-5660: refactor, as suggested by Valery Bokov; closes #250
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotation.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCaret.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCircle.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationFreeText.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationLine.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationSquare.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotation.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotation.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotation.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -195,16 +195,8 @@ public abstract class FDFAnnotation impl
{
throw new IOException("Error: missing attribute 'rect'");
}
- String[] rectValues = rect.split(",");
- if (rectValues.length != 4)
- {
- throw new IOException("Error: wrong amount of numbers in attribute
'rect'");
- }
- float[] values = new float[4];
- for (int i = 0; i < 4; i++)
- {
- values[i] = Float.parseFloat(rectValues[i]);
- }
+ float[] values = parseRectangleAttributes(
+ rect, "Error: wrong amount of numbers in attribute 'rect'");
setRectangle(new PDRectangle(COSArray.of(values)));
setTitle(element.getAttribute("title"));
@@ -313,6 +305,37 @@ public abstract class FDFAnnotation impl
}
}
+ float[] parseRectangleAttributes(String rect, String errorMessage) throws
IOException
+ {
+ String[] rectValues = rect.split(",");
+ if (rectValues.length != 4)
+ {
+ throw new IOException(errorMessage);
+ }
+ float[] values = new float[4];
+ values[0] = Float.parseFloat(rectValues[0]);
+ values[1] = Float.parseFloat(rectValues[1]);
+ values[2] = Float.parseFloat(rectValues[2]);
+ values[3] = Float.parseFloat(rectValues[3]);
+ return values;
+ }
+
+ PDRectangle createRectangleFromAttributes(String rect, String
errorMessage) throws IOException
+ {
+ String[] rectValues = rect.split(",");
+ if (rectValues.length != 4)
+ {
+ throw new IOException(errorMessage);
+ }
+ PDRectangle rectangle = new PDRectangle();
+ rectangle.setLowerLeftX(Float.parseFloat(rectValues[0]));
+ rectangle.setLowerLeftY(Float.parseFloat(rectValues[1]));
+ rectangle.setUpperRightX(Float.parseFloat(rectValues[2]));
+ rectangle.setUpperRightY(Float.parseFloat(rectValues[3]));
+
+ return rectangle;
+ }
+
/**
* Create the correct FDFAnnotation.
*
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCaret.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCaret.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCaret.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -81,16 +81,9 @@ public class FDFAnnotationCaret extends
String fringe = element.getAttribute("fringe");
if (fringe != null && !fringe.isEmpty())
{
- String[] fringeValues = fringe.split(",");
- if (fringeValues.length != 4)
- {
- throw new IOException("Error: wrong amount of numbers in
attribute 'fringe'");
- }
- PDRectangle rect = new PDRectangle();
- rect.setLowerLeftX(Float.parseFloat(fringeValues[0]));
- rect.setLowerLeftY(Float.parseFloat(fringeValues[1]));
- rect.setUpperRightX(Float.parseFloat(fringeValues[2]));
- rect.setUpperRightY(Float.parseFloat(fringeValues[3]));
+ PDRectangle rect = createRectangleFromAttributes(
+ fringe, "Error: wrong amount of numbers in attribute
'fringe'");
+
setFringe(rect);
}
}
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCircle.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCircle.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationCircle.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -83,16 +83,8 @@ public class FDFAnnotationCircle extends
String fringe = element.getAttribute("fringe");
if (fringe != null && !fringe.isEmpty())
{
- String[] fringeValues = fringe.split(",");
- if (fringeValues.length != 4)
- {
- throw new IOException("Error: wrong amount of numbers in
attribute 'fringe'");
- }
- PDRectangle rect = new PDRectangle();
- rect.setLowerLeftX(Float.parseFloat(fringeValues[0]));
- rect.setLowerLeftY(Float.parseFloat(fringeValues[1]));
- rect.setUpperRightX(Float.parseFloat(fringeValues[2]));
- rect.setUpperRightY(Float.parseFloat(fringeValues[3]));
+ PDRectangle rect = createRectangleFromAttributes(
+ fringe, "Error: wrong amount of numbers in attribute
'fringe'");
setFringe(rect);
}
}
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationFreeText.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationFreeText.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationFreeText.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -104,16 +104,8 @@ public class FDFAnnotationFreeText exten
String fringe = element.getAttribute("fringe");
if (fringe != null && !fringe.isEmpty())
{
- String[] fringeValues = fringe.split(",");
- if (fringeValues.length != 4)
- {
- throw new IOException("Error: wrong amount of numbers in
attribute 'fringe'");
- }
- PDRectangle rect = new PDRectangle();
- rect.setLowerLeftX(Float.parseFloat(fringeValues[0]));
- rect.setLowerLeftY(Float.parseFloat(fringeValues[1]));
- rect.setUpperRightX(Float.parseFloat(fringeValues[2]));
- rect.setUpperRightY(Float.parseFloat(fringeValues[3]));
+ PDRectangle rect = createRectangleFromAttributes(
+ fringe, "Error: wrong amount of numbers in attribute
'fringe'");
setFringe(rect);
}
}
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationLine.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationLine.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationLine.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -81,16 +81,8 @@ public class FDFAnnotationLine extends F
throw new IOException("Error: missing attribute 'end'");
}
String line = startCoords + "," + endCoords;
- String[] lineValues = line.split(",");
- if (lineValues.length != 4)
- {
- throw new IOException("Error: wrong amount of line coordinates");
- }
- float[] values = new float[4];
- for (int i = 0; i < 4; i++)
- {
- values[i] = Float.parseFloat(lineValues[i]);
- }
+ float[] values = parseRectangleAttributes(
+ line, "Error: wrong amount of line coordinates");
setLine(values);
String leaderLine = element.getAttribute("leaderLength");
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationSquare.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationSquare.java
Mon Sep 8 11:28:23 2025 (r1928289)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationSquare.java
Mon Sep 8 12:31:40 2025 (r1928290)
@@ -84,16 +84,8 @@ public class FDFAnnotationSquare extends
String fringe = element.getAttribute("fringe");
if (fringe != null && !fringe.isEmpty())
{
- String[] fringeValues = fringe.split(",");
- if (fringeValues.length != 4)
- {
- throw new IOException("Error: wrong amount of numbers in
attribute 'fringe'");
- }
- PDRectangle rect = new PDRectangle();
- rect.setLowerLeftX(Float.parseFloat(fringeValues[0]));
- rect.setLowerLeftY(Float.parseFloat(fringeValues[1]));
- rect.setUpperRightX(Float.parseFloat(fringeValues[2]));
- rect.setUpperRightY(Float.parseFloat(fringeValues[3]));
+ PDRectangle rect = createRectangleFromAttributes(
+ fringe, "Error: wrong amount of numbers in attribute
'fringe'");
setFringe(rect);
}
}