Author: leleueri
Date: Sun Aug 18 13:33:22 2013
New Revision: 1515106

URL: http://svn.apache.org/r1515106
Log:
[PDFBOX-1673] Fix false negative error on annotation. ('Content' and 'F' 
entries aren't required in a annotation structure) 

Modified:
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightDocument.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/Validator_A1b.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/FreeTextAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/InkAnnotationValdiator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LineAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/MarkupAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PopupAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PrintMarkAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/RubberStampAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/SquareCircleAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TextAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TrapNetAnnotationValidator.java
    
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/WidgetAnnotationValidator.java
    pdfbox/trunk/preflight/src/test/resources/expected_errors.txt

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightDocument.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightDocument.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/PreflightDocument.java
 Sun Aug 18 13:33:22 2013
@@ -26,6 +26,7 @@ import java.util.Collection;
 
 import org.apache.pdfbox.cos.COSDocument;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 import org.apache.pdfbox.preflight.exception.ValidationException;
 import org.apache.pdfbox.preflight.utils.ContextHelper;

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/Validator_A1b.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/Validator_A1b.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/Validator_A1b.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/Validator_A1b.java
 Sun Aug 18 13:33:22 2013
@@ -26,6 +26,8 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import javax.activation.DataSource;
@@ -75,7 +77,7 @@ public class Validator_A1b
         // list
         boolean isBatch = "batch".equals(args[posFile]);
         posFile += isBatch?1:0;
-        
+
         if (isGroup||isBatch) {
             // prepare the list
             List<File> ftp = listFiles(args[posFile]);
@@ -114,9 +116,9 @@ public class Validator_A1b
                     }
                 }
             }
-            
-            
-            
+
+
+
         } else {
             // only one file
             FileDataSource fd = new FileDataSource(args[posFile]);
@@ -135,9 +137,9 @@ public class Validator_A1b
                 transformer.transform(new DOMSource(document), new 
StreamResult(System.out));
             }
         }
-        
+
     }
-    
+
     private static void usage () {
         System.out.println("Usage : java 
org.apache.pdfbox.preflight.Validator_A1b [xml] [mode] <file path>");
         System.out.println();
@@ -147,7 +149,7 @@ public class Validator_A1b
         System.out.println("       group : generate an xml result for all the 
file of the list.");
         System.out.println("Version : " + Version.getVersion());
     }
-    
+
     private static int runSimple (DataSource fd) throws Exception {
         ValidationResult result = null;
         PreflightParser parser = new PreflightParser(fd);
@@ -180,22 +182,26 @@ public class Validator_A1b
             System.out.println();
             return -1;
         }
-       
+
     }
-    
-    
+
+
     private static List<File> listFiles (String path) throws IOException {
         List<File> files = new ArrayList<File>();
         File f = new File(path);
-        FileReader fr = new FileReader(f);
-        BufferedReader buf = new BufferedReader(fr);
-        while (buf.ready()) {
-            File fn = new File(buf.readLine());
-            if (fn.exists()) {
-                files.add(fn);
-            } // else warn ?
+        if (f.isFile()) {
+            FileReader fr = new FileReader(f);
+            BufferedReader buf = new BufferedReader(fr);
+            while (buf.ready()) {
+                File fn = new File(buf.readLine());
+                if (fn.exists()) {
+                    files.add(fn);
+                } // else warn ?
+            }
+            IOUtils.closeQuietly(buf);
+        } else {
+            files.addAll(Arrays.asList(f.listFiles()));
         }
-        IOUtils.closeQuietly(buf);
         return files;
     }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -29,6 +29,7 @@ import static org.apache.pdfbox.prefligh
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_INVALID_AP_CONTENT;
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_INVALID_CA;
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_AP_N_CONTENT;
+import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_SYNTAX_DICT_INVALID;
 
 import org.apache.pdfbox.cos.COSBase;
@@ -269,9 +270,31 @@ public abstract class AnnotationValidato
      *            list of errors which is updated if validation fails
      * @return true if validation succeed, false otherwise.
      */
-    protected abstract boolean checkMandatoryFields();
+    protected boolean checkMandatoryFields()
+    {
+        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
+        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
+
+        boolean result = (subtype && rect && checkSpecificMandatoryFields());
+        if (!result)
+        {
+            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS, "A mandatory field for the "
+                    + this.pdAnnot.getSubtype() + " annotation is missing"));
+        }
+        return result;
+    }
 
     /**
+     * Override this method to check the presence of specific fields
+     * @return
+     */
+    protected boolean checkSpecificMandatoryFields()
+    {
+        return true;
+    }
+    
+    
+    /**
      * Initialize the annotFact attribute of this object. This method must be 
called by the Factory at the creation of
      * this object. Only the Factory should call this method.
      * 

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/FreeTextAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/FreeTextAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/FreeTextAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/FreeTextAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,13 +21,10 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
-
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationTextMarkup;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the FreeTextAnnotation
@@ -46,29 +43,8 @@ public class FreeTextAnnotationValidator
         this.pdAnnot = this.pdFreeText;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
+    protected boolean checkSpecificMandatoryFields()
     {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean contents = this.annotDictionary.containsKey(COSName.CONTENTS);
-        boolean da = this.annotDictionary.containsKey(COSName.DA);
-
-        /*
-         * After PDF 1.4, all additional entries in this annotation are 
optional and they seem to be compatible with the
-         * PDF/A specification.
-         */
-        boolean result = (subtype && rect && f && da && contents);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS, "A mandatory field for the "
-                    + this.pdAnnot.getSubtype() + " annotation is missing"));
-        }
-        return result;
+        return this.annotDictionary.containsKey(COSName.DA);
     }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/InkAnnotationValdiator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/InkAnnotationValdiator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/InkAnnotationValdiator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/InkAnnotationValdiator.java
 Sun Aug 18 13:33:22 2013
@@ -22,13 +22,11 @@
 package org.apache.pdfbox.preflight.annotation;
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ANNOT_DICTIONARY_KEY_INKLIST;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the InkAnnotation
@@ -47,24 +45,8 @@ public class InkAnnotationValdiator exte
         this.pdAnnot = this.pdUnk;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
+    protected boolean checkSpecificMandatoryFields()
     {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean contents = this.annotDictionary.containsKey(COSName.CONTENTS);
-        boolean inkList = 
this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_INKLIST));
-
-        boolean result = (subtype && rect && f && contents && inkList);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
+        return 
this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_INKLIST));
     }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LineAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LineAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LineAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LineAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -22,7 +22,6 @@
 package org.apache.pdfbox.preflight.annotation;
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_FORBIDDEN_COLOR;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
@@ -88,22 +87,8 @@ public class LineAnnotationValidator ext
      * 
      * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
      */
-    protected boolean checkMandatoryFields()
+    protected boolean checkSpecificMandatoryFields()
     {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean l = this.annotDictionary.containsKey(COSName.L);
-
-        /*
-         * After PDF 1.4, all additional entries in this annotation are 
optional and they seem to be compatible with the
-         * PDF/A specification.
-         */
-        boolean result = (subtype && rect && f && l);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
+        return this.annotDictionary.containsKey(COSName.L);
     }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/LinkAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -23,12 +23,10 @@ package org.apache.pdfbox.preflight.anno
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_FORBIDDEN_DEST;
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_INVALID_DEST;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import java.io.IOException;
 
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink;
 import 
org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDDestination;
 import org.apache.pdfbox.preflight.PreflightContext;
@@ -93,23 +91,4 @@ public class LinkAnnotationValidator ext
         }
         return true;
     }
-
-    /*
-     * (non-Javadoc) (new ValidationError( ValidationConstants.
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/MarkupAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/MarkupAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/MarkupAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/MarkupAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -22,13 +22,11 @@
 package org.apache.pdfbox.preflight.annotation;
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ANNOT_DICTIONARY_KEY_QUADPOINTS;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationTextMarkup;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the MarkupAnnotation
@@ -47,24 +45,8 @@ public class MarkupAnnotationValidator e
         this.pdAnnot = this.pdMarkup;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
+    protected boolean checkSpecificMandatoryFields()
     {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean contents = this.annotDictionary.containsKey(COSName.CONTENTS);
-        boolean qp = 
this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_QUADPOINTS));
-
-        boolean result = (subtype && rect && f && contents && qp);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
+        return 
this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_QUADPOINTS));
     }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PopupAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PopupAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PopupAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PopupAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,13 +21,9 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
-
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationPopup;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the PopupAnnotation
@@ -46,22 +42,4 @@ public class PopupAnnotationValidator ex
         this.pdAnnot = this.pdPopup;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PrintMarkAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PrintMarkAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PrintMarkAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/PrintMarkAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,13 +21,9 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
-
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the PopupAnnotation
@@ -46,22 +42,4 @@ public class PrintMarkAnnotationValidato
         this.pdAnnot = this.pdUnk;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/RubberStampAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/RubberStampAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/RubberStampAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/RubberStampAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,13 +21,9 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
-
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import 
org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationRubberStamp;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the BudderStampAnnotation
@@ -46,24 +42,4 @@ public class RubberStampAnnotationValida
         this.pdAnnot = this.pdRStamp;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean contents = this.annotDictionary.containsKey(COSName.CONTENTS);
-
-        boolean result = (subtype && rect && f && contents);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
-
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/SquareCircleAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/SquareCircleAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/SquareCircleAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/SquareCircleAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -22,10 +22,8 @@
 package org.apache.pdfbox.preflight.annotation;
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_FORBIDDEN_COLOR;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import 
org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationSquareCircle;
 import org.apache.pdfbox.preflight.PreflightContext;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
@@ -83,27 +81,4 @@ public class SquareCircleAnnotationValid
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        /*
-         * ---- After PDF 1.4, all additional entries in this annotation are 
optional and they seem to be compatible
-         * with the PDF/A specification.
-         */
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
-
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TextAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TextAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TextAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TextAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,11 +21,9 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_NOT_RECOMMENDED_FLAG;
 
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationText;
 import org.apache.pdfbox.preflight.PreflightContext;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
@@ -69,27 +67,4 @@ public class TextAnnotationValidator ext
         }
         return result;
     }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-        boolean contents = this.annotDictionary.containsKey(COSName.CONTENTS);
-        /*
-         * Since PDF 1.5, two optional entries are possible. These new entries 
seem to e compatible with the PDF/A
-         * specification (used to set a State to the annotation - ex : 
rejected, reviewed...)
-         */
-        boolean result = (subtype && rect && f && contents);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TrapNetAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TrapNetAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TrapNetAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/TrapNetAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -21,13 +21,9 @@
 
 package org.apache.pdfbox.preflight.annotation;
 
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
-
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationUnknown;
 import org.apache.pdfbox.preflight.PreflightContext;
-import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 
 /**
  * Validation class for the TrapNet annotation
@@ -45,23 +41,4 @@ public class TrapNetAnnotationValidator 
         this.pdUnk = new PDAnnotationUnknown(annotDictionary);
         this.pdAnnot = this.pdUnk;
     }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields(java.util.List)
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/WidgetAnnotationValidator.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/WidgetAnnotationValidator.java?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/WidgetAnnotationValidator.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/WidgetAnnotationValidator.java
 Sun Aug 18 13:33:22 2013
@@ -22,10 +22,8 @@
 package org.apache.pdfbox.preflight.annotation;
 
 import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_FORBIDDEN_AA;
-import static 
org.apache.pdfbox.preflight.PreflightConstants.ERROR_ANNOT_MISSING_FIELDS;
 
 import org.apache.pdfbox.cos.COSDictionary;
-import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
 import org.apache.pdfbox.preflight.PreflightContext;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
@@ -76,23 +74,4 @@ public class WidgetAnnotationValidator e
         }
         return true;
     }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# 
checkMandatoryFields()
-     */
-    protected boolean checkMandatoryFields()
-    {
-        boolean subtype = this.annotDictionary.containsKey(COSName.SUBTYPE);
-        boolean rect = this.annotDictionary.containsKey(COSName.RECT);
-        boolean f = this.annotDictionary.containsKey(COSName.F);
-
-        boolean result = (subtype && rect && f);
-        if (!result)
-        {
-            ctx.addValidationError(new 
ValidationError(ERROR_ANNOT_MISSING_FIELDS));
-        }
-        return result;
-    }
 }

Modified: pdfbox/trunk/preflight/src/test/resources/expected_errors.txt
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/test/resources/expected_errors.txt?rev=1515106&r1=1515105&r2=1515106&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/test/resources/expected_errors.txt (original)
+++ pdfbox/trunk/preflight/src/test/resources/expected_errors.txt Sun Aug 18 
13:33:22 2013
@@ -143,7 +143,7 @@ isartor-6-5-2-t02-fail-a.pdf=1.2.9 // Sh
 isartor-6-5-2-t02-fail-b.pdf=5.2.1
 isartor-6-5-2-t02-fail-c.pdf=5.2.1
 isartor-6-5-3-t01-fail-a.pdf=5.3.2
-isartor-6-5-3-t02-fail-a.pdf=5.1
+isartor-6-5-3-t02-fail-a.pdf=5.2.2 // F is optional according to PDF 1.7 or 
ISO 32000 --> missing will set the print flag to 0 so it is invalid 
 isartor-6-5-3-t02-fail-b.pdf=5.2.2
 isartor-6-5-3-t02-fail-c.pdf=5.2.2
 isartor-6-5-3-t02-fail-d.pdf=5.2.2


Reply via email to