You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2015/10/09 09:07:05 UTC
svn commit: r1707668 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form:
PDAcroForm.java PDField.java PDNonTerminalField.java PDTerminalField.java
Author: msahyoun
Date: Fri Oct 9 07:07:04 2015
New Revision: 1707668
URL: http://svn.apache.org/viewvc?rev=1707668&view=rev
Log:
PDFBOX-3012: avoid ClassCastException in flatten()
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java?rev=1707668&r1=1707667&r2=1707668&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java Fri Oct 9 07:07:04 2015
@@ -175,7 +175,7 @@ public final class PDAcroForm implements
// FormXObject at the page content level from that
for (PDField field : getFieldTree())
{
- for (PDAnnotationWidget widget : ((PDTerminalField)field).getWidgets())
+ for (PDAnnotationWidget widget : field.getWidgets())
{
if (widget.getNormalAppearanceStream() != null)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java?rev=1707668&r1=1707667&r2=1707668&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDField.java Fri Oct 9 07:07:04 2015
@@ -17,6 +17,8 @@
package org.apache.pdfbox.pdmodel.interactive.form;
import java.io.IOException;
+import java.util.List;
+
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSDictionary;
@@ -24,6 +26,7 @@ import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.common.COSObjectable;
import org.apache.pdfbox.pdmodel.fdf.FDFField;
import org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
/**
* A field in an interactive form.
@@ -108,11 +111,21 @@ public abstract class PDField implements
/**
* Returns a string representation of the "V" entry, or an empty string.
*
- * @return A non-null string.
+ * @return The list of widget annotations.
*/
public abstract String getValueAsString();
/**
+ * Returns the widget annotations associated with this field.
+ *
+ * For {@link PDNonTerminalField} the list will be empty as non terminal fields
+ * have no visual representation in the form.
+ *
+ * @return A non-null string.
+ */
+ public abstract List<PDAnnotationWidget> getWidgets();
+
+ /**
* sets the field to be read-only.
*
* @param readonly The new flag for readonly.
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java?rev=1707668&r1=1707667&r2=1707668&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java Fri Oct 9 07:07:04 2015
@@ -18,6 +18,7 @@ package org.apache.pdfbox.pdmodel.intera
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSBase;
@@ -27,6 +28,7 @@ import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.common.COSObjectable;
import org.apache.pdfbox.pdmodel.fdf.FDFField;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
/**
* A non terminal field in an interactive form.
@@ -222,4 +224,10 @@ public class PDNonTerminalField extends
{
getCOSObject().setItem(COSName.V, value);
}
+
+ @Override
+ public List<PDAnnotationWidget> getWidgets()
+ {
+ return Collections.emptyList();
+ }
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java?rev=1707668&r1=1707667&r2=1707668&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java Fri Oct 9 07:07:04 2015
@@ -158,6 +158,7 @@ public abstract class PDTerminalField ex
*
* @return The list of widget annotations.
*/
+ @Override
public List<PDAnnotationWidget> getWidgets()
{
List<PDAnnotationWidget> widgets = new ArrayList<PDAnnotationWidget>();