You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by gb...@apache.org on 2013/03/06 17:46:37 UTC
svn commit: r1453416 [4/16] - in /pdfbox/trunk/preflight: ./
src/main/java/org/apache/pdfbox/preflight/
src/main/java/org/apache/pdfbox/preflight/action/
src/main/java/org/apache/pdfbox/preflight/annotation/
src/main/java/org/apache/pdfbox/preflight/an...
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/UriAction.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/UriAction.java?rev=1453416&r1=1453415&r2=1453416&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/UriAction.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/UriAction.java Wed Mar 6 16:46:35 2013
@@ -33,50 +33,49 @@ import org.apache.pdfbox.preflight.Valid
import org.apache.pdfbox.preflight.utils.COSUtils;
/**
- * ActionManager for the URI action URI action is valid if the URI entry is
- * present as a String.
+ * ActionManager for the URI action URI action is valid if the URI entry is present as a String.
*/
-public class UriAction extends AbstractActionManager {
+public class UriAction extends AbstractActionManager
+{
- /**
- * @param amFact
- * Instance of ActionManagerFactory used to create ActionManager to
- * check Next actions.
- * @param adict
- * the COSDictionary of the action wrapped by this class.
- * @param cDoc
- * the COSDocument from which the action comes from.
- * @param aaKey
- * The name of the key which identify the action in a additional
- * action dictionary.
- */
- public UriAction(ActionManagerFactory amFact, COSDictionary adict,
- PreflightContext ctx, String aaKey) {
- super(amFact, adict, ctx, aaKey);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * net.awl.edoc.pdfa.validation.actions.AbstractActionManager#valid(java.util
- * .List)
- */
- @Override
- protected boolean innerValid() {
- COSBase uri = this.actionDictionnary.getItem(COSName.URI);
- if (uri == null) {
- context.addValidationError(new ValidationError(ERROR_ACTION_MISING_KEY,
- "URI entry is mandatory for the UriAction"));
- return false;
+ /**
+ * @param amFact
+ * Instance of ActionManagerFactory used to create ActionManager to check Next actions.
+ * @param adict
+ * the COSDictionary of the action wrapped by this class.
+ * @param cDoc
+ * the COSDocument from which the action comes from.
+ * @param aaKey
+ * The name of the key which identify the action in a additional action dictionary.
+ */
+ public UriAction(ActionManagerFactory amFact, COSDictionary adict, PreflightContext ctx, String aaKey)
+ {
+ super(amFact, adict, ctx, aaKey);
}
- COSDocument cosDocument = this.context.getDocument().getDocument();
- if (!COSUtils.isString(uri, cosDocument)) {
- context.addValidationError(new ValidationError(ERROR_ACTION_INVALID_TYPE, "URI entry should be a string"));
- return false;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see net.awl.edoc.pdfa.validation.actions.AbstractActionManager#valid(java.util .List)
+ */
+ @Override
+ protected boolean innerValid()
+ {
+ COSBase uri = this.actionDictionnary.getItem(COSName.URI);
+ if (uri == null)
+ {
+ context.addValidationError(new ValidationError(ERROR_ACTION_MISING_KEY,
+ "URI entry is mandatory for the UriAction"));
+ return false;
+ }
- return true;
- }
+ COSDocument cosDocument = this.context.getDocument().getDocument();
+ if (!COSUtils.isString(uri, cosDocument))
+ {
+ context.addValidationError(new ValidationError(ERROR_ACTION_INVALID_TYPE, "URI entry should be a string"));
+ return false;
+ }
+
+ return true;
+ }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -21,7 +21,6 @@
package org.apache.pdfbox.preflight.annotation;
-
import static org.apache.pdfbox.preflight.PreflightConfiguration.ACTIONS_PROCESS;
import static org.apache.pdfbox.preflight.PreflightConfiguration.GRAPHIC_PROCESS;
import static org.apache.pdfbox.preflight.PreflightConstants.ANNOT_DICTIONARY_VALUE_SUBTYPE_POPUP;
@@ -46,221 +45,240 @@ import org.apache.pdfbox.preflight.graph
import org.apache.pdfbox.preflight.utils.COSUtils;
import org.apache.pdfbox.preflight.utils.ContextHelper;
-public abstract class AnnotationValidator {
+public abstract class AnnotationValidator
+{
- protected AnnotationValidatorFactory annotFact = null;
+ protected AnnotationValidatorFactory annotFact = null;
- protected PreflightContext ctx = null;
- protected COSDocument cosDocument = null;
- /**
- * COSDictionary of the annotation
- */
- protected COSDictionary annotDictionary = null;
- /**
- * Instance of PDAnnotation built using the annotDictionary
- */
- protected PDAnnotation pdAnnot = null;
-
- public AnnotationValidator(PreflightContext context, COSDictionary annotDictionary) {
- super();
- this.ctx = context;
- this.annotDictionary = annotDictionary;
- this.cosDocument = this.ctx.getDocument().getDocument();
- }
-
- /**
- * Checks if flags of the annotation are authorized.
- * <UL>
- * <li>Print flag must be 1
- * <li>NoView flag must be 0
- * <li>Hidden flag must be 0
- * <li>Invisible flag must be 0
- * </UL>
- * If one of these flags is invalid, the errors list is updated with the
- * ERROR_ANNOT_FORBIDDEN_FLAG ValidationError code.
- *
- * @return false if a flag is invalid, true otherwise.
- */
- protected boolean checkFlags() {
- boolean result = this.pdAnnot.isPrinted();
- result = result && !this.pdAnnot.isHidden();
- result = result && !this.pdAnnot.isInvisible();
- result = result && !this.pdAnnot.isNoView();
- if (!result) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_FLAG, "Flags of " + pdAnnot.getSubtype() + " annotation are invalid"));
- }
-
- return result;
- }
-
- /**
- * Check if the CA value is 1.0. Return true if the CA element is missing or
- * if the value is 1.0. Return false otherwise and update the list of
- * errors present in the DocumentHandler.
- *
- * @return
- */
- protected boolean checkCA() {
- COSBase ca = this.pdAnnot.getDictionary().getItem(COSName.CA);
- if (ca != null) {
- float caf = COSUtils.getAsFloat(ca, cosDocument);
- if (caf != 1.0f) { // ---- Only 1.0 is authorized as value
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_CA, "CA entry is invalid. Expected 1.0 / Read " + caf));
- return false;
- }
- } //else optional field, ok
- return true;
- }
-
- /**
- * Return true if the C field is present in the Annotation dictionary and if
- * the RGB profile is used in the DestOutputProfile of the OutputIntent
- * dictionary.
- *
- * @return
- */
- protected boolean checkColors() throws ValidationException {
- if (this.pdAnnot.getColour() != null) {
- if (!searchRGBProfile()) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,"Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
- return false;
- }
- }
- return true;
- }
-
- /**
- * Search the RGB Profile in OutputIntents dictionaries
- *
- * @return true if a rgb profile is found, false otherwise.
- */
- protected boolean searchRGBProfile() throws ValidationException{
- ICCProfileWrapper iccpw = ICCProfileWrapper.getOrSearchICCProfile(ctx);
- if (iccpw != null) {
- return iccpw.isRGBColorSpace();
- }
- return false;
- }
-
- /**
- * This method checks the AP entry of the Annotation Dictionary. If the AP key
- * is missing, this method returns true. If the AP key exists, only the N
- * entry is authorized and must be a Stream which define the appearance of the
- * annotation. (Currently, only the type of the N entry is checked because of
- * the Appearance stream is a Form XObject, so it will be checked by the
- * Graphics Helper)
- *
- * If the AP content isn't valid, this method return false and updates the
- * errors list.
- * @return
- */
- protected boolean checkAP() throws ValidationException {
- PDAppearanceDictionary ap = this.pdAnnot.getAppearance();
- if (ap != null) {
- COSDictionary apDict = ap.getDictionary();
- // Only N entry is authorized
- if (apDict.getItem(COSName.D) != null || apDict.getItem(COSName.R) != null) {
- ctx.addValidationError(new ValidationError(
- ERROR_ANNOT_INVALID_AP_CONTENT,
- "Only the N Appearance is authorized"));
- return false;
- } else if (apDict.getItem(COSName.N) == null) {
- // N entry is required
- ctx.addValidationError(new ValidationError(
- ERROR_ANNOT_MISSING_AP_N_CONTENT,
- "The N Appearance must be present"));
- return false;
- } else {
- // the N entry must be a Stream (Dictionaries are forbidden)
- COSBase apn = apDict.getItem(COSName.N);
- if (!COSUtils.isStream(apn, cosDocument)) {
- ctx.addValidationError(new ValidationError(
- ERROR_ANNOT_INVALID_AP_CONTENT,
- "The N Appearance must be a Stream"));
- return false;
- }
-
- // Appearance stream is a XObjectForm, check it.
- ContextHelper.validateElement(ctx, new PDXObjectForm(COSUtils.getAsStream(apn, cosDocument)), GRAPHIC_PROCESS);
- }
- } //else ok, nothing to check,this field is optional
- return true;
- }
-
- /**
- * Extract a list of ActionManager from the Annotation dictionary and valid
- * them. If an action is invalid, the errors list is updated and the method
- * returns false. Otherwise, the method returns true and the errors list
- * doesn't change.
- *
- * @return
- * @throws ValidationException
- */
- protected boolean checkActions() throws ValidationException {
- ContextHelper.validateElement(ctx, annotDictionary, ACTIONS_PROCESS);
- return true;
- }
-
- /**
- * This method validates the Popup entry. This entry shall contain an other
- * Annotation. This annotation is validated with the right
- * AnnotationValidator.
- *
- * @param errors
- * @return
- * @throws ValidationException
- */
- protected boolean checkPopup() throws ValidationException {
- COSBase cosPopup = this.annotDictionary.getItem(ANNOT_DICTIONARY_VALUE_SUBTYPE_POPUP);
- if (cosPopup != null) {
- COSDictionary popupDict = COSUtils.getAsDictionary(cosPopup, cosDocument);
- if (popupDict == null) {
- ctx.addValidationError(new ValidationError(
- ERROR_SYNTAX_DICT_INVALID,
- "An Annotation has a Popup entry, but the value is missing or isn't a dictionary"));
- return false;
- }
- AnnotationValidator popupVal = this.annotFact.getAnnotationValidator(ctx, popupDict);
- return popupVal.validate();
- }
- return true;
- }
-
- /**
- * Execute validation of the Annotation dictionary.
- *
- * @return true if validation succeed, false otherwise.
- * @throws ValidationException
- */
- public boolean validate() throws ValidationException {
- boolean isValide = checkMandatoryFields();
- isValide = isValide && checkFlags();
- isValide = isValide && checkColors();
- isValide = isValide && checkAP();
- isValide = isValide && checkCA();
- isValide = isValide && checkActions();
- isValide = isValide && checkPopup();
- return isValide;
- }
-
- /**
- * Checks if all mandatory fields of an annotation are present. If some fields
- * are missing, the method returns false and the errors list is updated.
- *
- * @param errors
- * list of errors which is updated if validation fails
- * @return true if validation succeed, false otherwise.
- */
- protected abstract boolean checkMandatoryFields();
-
- /**
- * 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.
- *
- * @param fact
- */
- public final void setFactory (AnnotationValidatorFactory fact) {
- this.annotFact = fact;
- }
+ protected PreflightContext ctx = null;
+ protected COSDocument cosDocument = null;
+ /**
+ * COSDictionary of the annotation
+ */
+ protected COSDictionary annotDictionary = null;
+ /**
+ * Instance of PDAnnotation built using the annotDictionary
+ */
+ protected PDAnnotation pdAnnot = null;
+
+ public AnnotationValidator(PreflightContext context, COSDictionary annotDictionary)
+ {
+ super();
+ this.ctx = context;
+ this.annotDictionary = annotDictionary;
+ this.cosDocument = this.ctx.getDocument().getDocument();
+ }
+
+ /**
+ * Checks if flags of the annotation are authorized.
+ * <UL>
+ * <li>Print flag must be 1
+ * <li>NoView flag must be 0
+ * <li>Hidden flag must be 0
+ * <li>Invisible flag must be 0
+ * </UL>
+ * If one of these flags is invalid, the errors list is updated with the ERROR_ANNOT_FORBIDDEN_FLAG ValidationError
+ * code.
+ *
+ * @return false if a flag is invalid, true otherwise.
+ */
+ protected boolean checkFlags()
+ {
+ boolean result = this.pdAnnot.isPrinted();
+ result = result && !this.pdAnnot.isHidden();
+ result = result && !this.pdAnnot.isInvisible();
+ result = result && !this.pdAnnot.isNoView();
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_FLAG, "Flags of " + pdAnnot.getSubtype()
+ + " annotation are invalid"));
+ }
+
+ return result;
+ }
+
+ /**
+ * Check if the CA value is 1.0. Return true if the CA element is missing or if the value is 1.0. Return false
+ * otherwise and update the list of errors present in the DocumentHandler.
+ *
+ * @return
+ */
+ protected boolean checkCA()
+ {
+ COSBase ca = this.pdAnnot.getDictionary().getItem(COSName.CA);
+ if (ca != null)
+ {
+ float caf = COSUtils.getAsFloat(ca, cosDocument);
+ if (caf != 1.0f)
+ { // ---- Only 1.0 is authorized as value
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_CA,
+ "CA entry is invalid. Expected 1.0 / Read " + caf));
+ return false;
+ }
+ } // else optional field, ok
+ return true;
+ }
+
+ /**
+ * Return true if the C field is present in the Annotation dictionary and if the RGB profile is used in the
+ * DestOutputProfile of the OutputIntent dictionary.
+ *
+ * @return
+ */
+ protected boolean checkColors() throws ValidationException
+ {
+ if (this.pdAnnot.getColour() != null)
+ {
+ if (!searchRGBProfile())
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,
+ "Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Search the RGB Profile in OutputIntents dictionaries
+ *
+ * @return true if a rgb profile is found, false otherwise.
+ */
+ protected boolean searchRGBProfile() throws ValidationException
+ {
+ ICCProfileWrapper iccpw = ICCProfileWrapper.getOrSearchICCProfile(ctx);
+ if (iccpw != null)
+ {
+ return iccpw.isRGBColorSpace();
+ }
+ return false;
+ }
+
+ /**
+ * This method checks the AP entry of the Annotation Dictionary. If the AP key is missing, this method returns true.
+ * If the AP key exists, only the N entry is authorized and must be a Stream which define the appearance of the
+ * annotation. (Currently, only the type of the N entry is checked because of the Appearance stream is a Form
+ * XObject, so it will be checked by the Graphics Helper)
+ *
+ * If the AP content isn't valid, this method return false and updates the errors list.
+ *
+ * @return
+ */
+ protected boolean checkAP() throws ValidationException
+ {
+ PDAppearanceDictionary ap = this.pdAnnot.getAppearance();
+ if (ap != null)
+ {
+ COSDictionary apDict = ap.getDictionary();
+ // Only N entry is authorized
+ if (apDict.getItem(COSName.D) != null || apDict.getItem(COSName.R) != null)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_AP_CONTENT,
+ "Only the N Appearance is authorized"));
+ return false;
+ }
+ else if (apDict.getItem(COSName.N) == null)
+ {
+ // N entry is required
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_AP_N_CONTENT,
+ "The N Appearance must be present"));
+ return false;
+ }
+ else
+ {
+ // the N entry must be a Stream (Dictionaries are forbidden)
+ COSBase apn = apDict.getItem(COSName.N);
+ if (!COSUtils.isStream(apn, cosDocument))
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_AP_CONTENT,
+ "The N Appearance must be a Stream"));
+ return false;
+ }
+
+ // Appearance stream is a XObjectForm, check it.
+ ContextHelper.validateElement(ctx, new PDXObjectForm(COSUtils.getAsStream(apn, cosDocument)),
+ GRAPHIC_PROCESS);
+ }
+ } // else ok, nothing to check,this field is optional
+ return true;
+ }
+
+ /**
+ * Extract a list of ActionManager from the Annotation dictionary and valid them. If an action is invalid, the
+ * errors list is updated and the method returns false. Otherwise, the method returns true and the errors list
+ * doesn't change.
+ *
+ * @return
+ * @throws ValidationException
+ */
+ protected boolean checkActions() throws ValidationException
+ {
+ ContextHelper.validateElement(ctx, annotDictionary, ACTIONS_PROCESS);
+ return true;
+ }
+
+ /**
+ * This method validates the Popup entry. This entry shall contain an other Annotation. This annotation is validated
+ * with the right AnnotationValidator.
+ *
+ * @param errors
+ * @return
+ * @throws ValidationException
+ */
+ protected boolean checkPopup() throws ValidationException
+ {
+ COSBase cosPopup = this.annotDictionary.getItem(ANNOT_DICTIONARY_VALUE_SUBTYPE_POPUP);
+ if (cosPopup != null)
+ {
+ COSDictionary popupDict = COSUtils.getAsDictionary(cosPopup, cosDocument);
+ if (popupDict == null)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_SYNTAX_DICT_INVALID,
+ "An Annotation has a Popup entry, but the value is missing or isn't a dictionary"));
+ return false;
+ }
+ AnnotationValidator popupVal = this.annotFact.getAnnotationValidator(ctx, popupDict);
+ return popupVal.validate();
+ }
+ return true;
+ }
+
+ /**
+ * Execute validation of the Annotation dictionary.
+ *
+ * @return true if validation succeed, false otherwise.
+ * @throws ValidationException
+ */
+ public boolean validate() throws ValidationException
+ {
+ boolean isValide = checkMandatoryFields();
+ isValide = isValide && checkFlags();
+ isValide = isValide && checkColors();
+ isValide = isValide && checkAP();
+ isValide = isValide && checkCA();
+ isValide = isValide && checkActions();
+ isValide = isValide && checkPopup();
+ return isValide;
+ }
+
+ /**
+ * Checks if all mandatory fields of an annotation are present. If some fields are missing, the method returns false
+ * and the errors list is updated.
+ *
+ * @param errors
+ * list of errors which is updated if validation fails
+ * @return true if validation succeed, false otherwise.
+ */
+ protected abstract boolean checkMandatoryFields();
+
+ /**
+ * 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.
+ *
+ * @param fact
+ */
+ public final void setFactory(AnnotationValidatorFactory fact)
+ {
+ this.annotFact = fact;
+ }
}
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidatorFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidatorFactory.java?rev=1453416&r1=1453415&r2=1453416&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidatorFactory.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/AnnotationValidatorFactory.java Wed Mar 6 16:46:35 2013
@@ -34,54 +34,67 @@ import org.apache.pdfbox.preflight.Valid
import org.apache.pdfbox.preflight.action.ActionManagerFactory;
import org.apache.pdfbox.preflight.exception.ValidationException;
-public abstract class AnnotationValidatorFactory {
- protected ActionManagerFactory actionFact = null;
-
- protected Map<String, Class<? extends AnnotationValidator>> validatorClasses = new HashMap<String, Class<? extends AnnotationValidator>>();
-
- public AnnotationValidatorFactory() {
- initializeClasses();
- }
-
- public AnnotationValidatorFactory(ActionManagerFactory actionFact) {
- super();
- this.actionFact = actionFact;
- }
-
- public final void setActionFact(ActionManagerFactory _actionFact) {
- this.actionFact = _actionFact;
- }
-
- /**
- * Initialize the map of Validation classes used to create a validation object according to the Annotation subtype.
- */
- protected abstract void initializeClasses();
-
- /**
- * Return an instance of AnnotationValidator.
- *
- * @param ctx
- * @param annotDic
- * @return
- */
- public final AnnotationValidator getAnnotationValidator(PreflightContext ctx, COSDictionary annotDic)
- throws ValidationException {
-
- AnnotationValidator result = null;
- String subtype = annotDic.getNameAsString(COSName.SUBTYPE);
- Class<? extends AnnotationValidator> clazz = this.validatorClasses.get(subtype);
-
- if (clazz == null) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_SUBTYPE, "The subtype isn't authorized : " + subtype));
- } else {
- try {
- Constructor<? extends AnnotationValidator> constructor = clazz.getConstructor(PreflightContext.class, COSDictionary.class);
- result = constructor.newInstance(ctx, annotDic);
- result.setFactory(this);
- } catch (Exception e) {
- throw new ValidationException(e.getMessage());
- }
- }
- return result;
- }
+public abstract class AnnotationValidatorFactory
+{
+ protected ActionManagerFactory actionFact = null;
+
+ protected Map<String, Class<? extends AnnotationValidator>> validatorClasses = new HashMap<String, Class<? extends AnnotationValidator>>();
+
+ public AnnotationValidatorFactory()
+ {
+ initializeClasses();
+ }
+
+ public AnnotationValidatorFactory(ActionManagerFactory actionFact)
+ {
+ super();
+ this.actionFact = actionFact;
+ }
+
+ public final void setActionFact(ActionManagerFactory _actionFact)
+ {
+ this.actionFact = _actionFact;
+ }
+
+ /**
+ * Initialize the map of Validation classes used to create a validation object according to the Annotation subtype.
+ */
+ protected abstract void initializeClasses();
+
+ /**
+ * Return an instance of AnnotationValidator.
+ *
+ * @param ctx
+ * @param annotDic
+ * @return
+ */
+ public final AnnotationValidator getAnnotationValidator(PreflightContext ctx, COSDictionary annotDic)
+ throws ValidationException
+ {
+
+ AnnotationValidator result = null;
+ String subtype = annotDic.getNameAsString(COSName.SUBTYPE);
+ Class<? extends AnnotationValidator> clazz = this.validatorClasses.get(subtype);
+
+ if (clazz == null)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_SUBTYPE, "The subtype isn't authorized : "
+ + subtype));
+ }
+ else
+ {
+ try
+ {
+ Constructor<? extends AnnotationValidator> constructor = clazz.getConstructor(PreflightContext.class,
+ COSDictionary.class);
+ result = constructor.newInstance(ctx, annotDic);
+ result.setFactory(this);
+ }
+ catch (Exception e)
+ {
+ throw new ValidationException(e.getMessage());
+ }
+ }
+ return result;
+ }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -32,39 +32,43 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the FreeTextAnnotation
*/
-public class FreeTextAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the Annotation dictionary
- */
- protected PDAnnotationTextMarkup pdFreeText = null;
-
- public FreeTextAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdFreeText = new PDAnnotationTextMarkup(annotDictionary);
- this.pdAnnot = this.pdFreeText;
- }
+public class FreeTextAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the Annotation dictionary
+ */
+ protected PDAnnotationTextMarkup pdFreeText = null;
- /*
- * (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 da = this.annotDictionary.containsKey(COSName.DA);
+ public FreeTextAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdFreeText = new PDAnnotationTextMarkup(annotDictionary);
+ this.pdAnnot = this.pdFreeText;
+ }
/*
- * After PDF 1.4, all additional entries in this annotation are
- * optional and they seem to be compatible with the PDF/A specification.
+ * (non-Javadoc)
+ *
+ * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# checkMandatoryFields(java.util.List)
*/
- 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"));
+ 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 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 result;
- }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -33,35 +33,38 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the InkAnnotation
*/
-public class InkAnnotationValdiator extends AnnotationValidator {
- /**
- * PDFBox which wraps the annotation dictionary
- */
- protected PDAnnotationUnknown pdUnk = null;
+public class InkAnnotationValdiator extends AnnotationValidator
+{
+ /**
+ * PDFBox which wraps the annotation dictionary
+ */
+ protected PDAnnotationUnknown pdUnk = null;
- public InkAnnotationValdiator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdUnk = new PDAnnotationUnknown(annotDictionary);
- this.pdAnnot = this.pdUnk;
- }
+ public InkAnnotationValdiator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ 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 contents = this.annotDictionary.containsKey(COSName.CONTENTS);
- boolean inkList = this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_INKLIST));
+ /*
+ * (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 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));
+ boolean result = (subtype && rect && f && contents && inkList);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- return result;
- }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -34,71 +34,76 @@ import org.apache.pdfbox.preflight.excep
/**
* Validation class for the LineAnnotation
*/
-public class LineAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationLine pdLine = null;
-
- public LineAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdLine = new PDAnnotationLine(annotDictionary);
- this.pdAnnot = this.pdLine;
- }
+public class LineAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationLine pdLine = null;
- /**
- * In addition of the AnnotationValidator.validate() method, this method
- * executes the the checkIColors method.
- *
- * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
- */
- @Override
- public boolean validate() throws ValidationException {
- boolean isValide = super.validate();
- isValide = isValide && checkIColors();
- return isValide;
- }
+ public LineAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdLine = new PDAnnotationLine(annotDictionary);
+ this.pdAnnot = this.pdLine;
+ }
- /**
- * Return true if the IC field is present in the Annotation dictionary and if
- * the RGB profile is used in the DestOutputProfile of the OutputIntent
- * dictionary.
- *
- * @param errors
- * list of errors with is updated if no RGB profile is found when the
- * IC element is present
- * @return
- */
- protected boolean checkIColors() throws ValidationException {
- if (this.pdLine.getInteriorColour() != null) {
- if (!searchRGBProfile()) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,"Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
- return false;
- }
+ /**
+ * In addition of the AnnotationValidator.validate() method, this method executes the the checkIColors method.
+ *
+ * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
+ */
+ @Override
+ public boolean validate() throws ValidationException
+ {
+ boolean isValide = super.validate();
+ isValide = isValide && checkIColors();
+ return isValide;
}
- 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);
- boolean l = this.annotDictionary.containsKey(COSName.L);
+ /**
+ * Return true if the IC field is present in the Annotation dictionary and if the RGB profile is used in the
+ * DestOutputProfile of the OutputIntent dictionary.
+ *
+ * @param errors
+ * list of errors with is updated if no RGB profile is found when the IC element is present
+ * @return
+ */
+ protected boolean checkIColors() throws ValidationException
+ {
+ if (this.pdLine.getInteriorColour() != null)
+ {
+ if (!searchRGBProfile())
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,
+ "Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
+ return false;
+ }
+ }
+ return true;
+ }
/*
- * After PDF 1.4, all additional entries in this annotation are
- * optional and they seem to be compatible with the PDF/A specification.
+ * (non-Javadoc)
+ *
+ * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# checkMandatoryFields(java.util.List)
*/
- boolean result = (subtype && rect && f && l);
- if (!result) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ 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 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 result;
- }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -38,71 +38,78 @@ import org.apache.pdfbox.preflight.excep
/**
* Validation class for the LinkAnnotation
*/
-public class LinkAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationLink pdLink = null;
+public class LinkAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationLink pdLink = null;
- public LinkAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdLink = new PDAnnotationLink(annotDictionary);
- this.pdAnnot = this.pdLink;
- }
+ public LinkAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdLink = new PDAnnotationLink(annotDictionary);
+ this.pdAnnot = this.pdLink;
+ }
- /**
- * In addition of the AnnotationValidator.validate() method, this method
- * executes the the checkDest method.
- *
- * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate()
- */
- @Override
- public boolean validate() throws ValidationException {
- boolean isValide = super.validate();
- isValide = isValide && checkDest();
- return isValide;
- }
+ /**
+ * In addition of the AnnotationValidator.validate() method, this method executes the the checkDest method.
+ *
+ * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate()
+ */
+ @Override
+ public boolean validate() throws ValidationException
+ {
+ boolean isValide = super.validate();
+ isValide = isValide && checkDest();
+ return isValide;
+ }
- /**
- * Check if the Dest element is authorized according to the A entry
- *
- * @return
- */
- protected boolean checkDest() {
- try {
- PDDestination dest = this.pdLink.getDestination();
- if (dest != null) {
- // ---- check the if an A entry is present.
- if (this.pdLink.getAction() != null) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_DEST,
- "Dest can't be used due to A element"));
- return false;
+ /**
+ * Check if the Dest element is authorized according to the A entry
+ *
+ * @return
+ */
+ protected boolean checkDest()
+ {
+ try
+ {
+ PDDestination dest = this.pdLink.getDestination();
+ if (dest != null)
+ {
+ // ---- check the if an A entry is present.
+ if (this.pdLink.getAction() != null)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_DEST,
+ "Dest can't be used due to A element"));
+ return false;
+ }
+ }
}
- }
- } catch (IOException e) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_DEST,
- "Dest can't be checked"));
- return false;
+ catch (IOException e)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_INVALID_DEST, "Dest can't be checked"));
+ return false;
+ }
+ return true;
}
- 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);
+ /*
+ * (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));
+ boolean result = (subtype && rect && f);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -33,35 +33,38 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the MarkupAnnotation
*/
-public class MarkupAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationTextMarkup pdMarkup = null;
+public class MarkupAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationTextMarkup pdMarkup = null;
- public MarkupAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdMarkup = new PDAnnotationTextMarkup(annotDictionary);
- this.pdAnnot = this.pdMarkup;
- }
+ public MarkupAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdMarkup = new PDAnnotationTextMarkup(annotDictionary);
+ this.pdAnnot = this.pdMarkup;
+ }
- /*
- * (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 qp = this.annotDictionary.containsKey(COSName.getPDFName(ANNOT_DICTIONARY_KEY_QUADPOINTS));
+ /*
+ * (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 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));
+ boolean result = (subtype && rect && f && contents && qp);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- return result;
- }
}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -32,33 +32,36 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the PopupAnnotation
*/
-public class PopupAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationPopup pdPopup = null;
+public class PopupAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationPopup pdPopup = null;
- public PopupAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdPopup = new PDAnnotationPopup(annotDictionary);
- this.pdAnnot = this.pdPopup;
- }
+ public PopupAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdPopup = new PDAnnotationPopup(annotDictionary);
+ 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);
+ /*
+ * (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));
+ boolean result = (subtype && rect && f);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -32,33 +32,36 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the PopupAnnotation
*/
-public class PrintMarkAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationUnknown pdUnk = null;
+public class PrintMarkAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationUnknown pdUnk = null;
- public PrintMarkAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdUnk = new PDAnnotationUnknown(annotDictionary);
- this.pdAnnot = this.pdUnk;
- }
+ public PrintMarkAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ 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);
+ /*
+ * (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;
- }
+ 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -32,35 +32,38 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the BudderStampAnnotation
*/
-public class RubberStampAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox class which wraps the annotaiton dictionary
- */
- protected PDAnnotationRubberStamp pdRStamp = null;
+public class RubberStampAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox class which wraps the annotaiton dictionary
+ */
+ protected PDAnnotationRubberStamp pdRStamp = null;
- public RubberStampAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdRStamp = new PDAnnotationRubberStamp(annotDictionary);
- this.pdAnnot = this.pdRStamp;
- }
+ public RubberStampAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdRStamp = new PDAnnotationRubberStamp(annotDictionary);
+ 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);
+ /*
+ * (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));
+ boolean result = (subtype && rect && f && contents);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -34,71 +34,76 @@ import org.apache.pdfbox.preflight.excep
/**
* Validation class for the Square/Circle Annotation
*/
-public class SquareCircleAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationSquareCircle pdSquareCircle = null;
-
- public SquareCircleAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdSquareCircle = new PDAnnotationSquareCircle(annotDictionary);
- this.pdAnnot = this.pdSquareCircle;
- }
-
- /**
- * In addition of the AnnotationValidator.validate() method, this method
- * executes the the checkIColors method.
- *
- * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
- */
- @Override
- public boolean validate() throws ValidationException {
- boolean isValide = super.validate();
- isValide = isValide && checkIColors();
- return isValide;
- }
-
- /**
- * Return true if the IC field is present in the Annotation dictionary and if
- * the RGB profile is used in the DestOutputProfile of the OutputIntent
- * dictionary.
- *
- * @param errors
- * list of errors with is updated if no RGB profile is found when the
- * IC element is present
- * @return
- */
- protected boolean checkIColors() throws ValidationException {
- if (this.pdSquareCircle.getInteriorColour() != null) {
- if (!searchRGBProfile()) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,"Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
- return false;
- }
+public class SquareCircleAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationSquareCircle pdSquareCircle = null;
+
+ public SquareCircleAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdSquareCircle = new PDAnnotationSquareCircle(annotDictionary);
+ this.pdAnnot = this.pdSquareCircle;
}
- 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);
+ /**
+ * In addition of the AnnotationValidator.validate() method, this method executes the the checkIColors method.
+ *
+ * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
+ */
+ @Override
+ public boolean validate() throws ValidationException
+ {
+ boolean isValide = super.validate();
+ isValide = isValide && checkIColors();
+ return isValide;
+ }
+
+ /**
+ * Return true if the IC field is present in the Annotation dictionary and if the RGB profile is used in the
+ * DestOutputProfile of the OutputIntent dictionary.
+ *
+ * @param errors
+ * list of errors with is updated if no RGB profile is found when the IC element is present
+ * @return
+ */
+ protected boolean checkIColors() throws ValidationException
+ {
+ if (this.pdSquareCircle.getInteriorColour() != null)
+ {
+ if (!searchRGBProfile())
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_COLOR,
+ "Annotation uses a Color profile which isn't the same than the profile contained by the OutputIntent"));
+ return false;
+ }
+ }
+ return true;
+ }
/*
- * ---- After PDF 1.4, all additional entries in this annotation are
- * optional and they seem to be compatible with the PDF/A specification.
+ * (non-Javadoc)
+ *
+ * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# checkMandatoryFields(java.util.List)
*/
- boolean result = (subtype && rect && f);
- if (!result) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ 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;
}
- 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -33,61 +33,63 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for Text Annotation
*/
-public class TextAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationText pdText = null;
-
- public TextAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdText = new PDAnnotationText(annotDictionary);
- this.pdAnnot = this.pdText;
- }
+public class TextAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationText pdText = null;
- /*
- * (non-Javadoc)
- *
- * @see
- * net.awl.edoc.pdfa.validation.annotation.AnnotationValidator#checkFlags(
- * java.util.List)
- */
- protected boolean checkFlags() {
- // call common flags settings
- boolean result = super.checkFlags();
+ public TextAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdText = new PDAnnotationText(annotDictionary);
+ this.pdAnnot = this.pdText;
+ }
/*
- * For Text Annotation, this two flags should be set to avoid potential
- * ambiguity between the annotation dictionary and the reader behavior.
- */
- result = result && this.pdAnnot.isNoRotate();
- result = result && this.pdAnnot.isNoZoom();
- if (!result) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_NOT_RECOMMENDED_FLAG));
+ * (non-Javadoc)
+ *
+ * @see net.awl.edoc.pdfa.validation.annotation.AnnotationValidator#checkFlags( java.util.List)
+ */
+ protected boolean checkFlags()
+ {
+ // call common flags settings
+ boolean result = super.checkFlags();
+
+ /*
+ * For Text Annotation, this two flags should be set to avoid potential ambiguity between the annotation
+ * dictionary and the reader behavior.
+ */
+ result = result && this.pdAnnot.isNoRotate();
+ result = result && this.pdAnnot.isNoZoom();
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_NOT_RECOMMENDED_FLAG));
+ }
+ return result;
}
- 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...)
+ * (non-Javadoc)
+ *
+ * @seenet.awl.edoc.pdfa.validation.annotation.AnnotationValidator# checkMandatoryFields(java.util.List)
*/
- boolean result = (subtype && rect && f && contents);
- if (!result) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ 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;
}
- return result;
- }
-}
\ No newline at end of file
+}
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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -32,33 +32,36 @@ import org.apache.pdfbox.preflight.Valid
/**
* Validation class for the TrapNet annotation
*/
-public class TrapNetAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationUnknown pdUnk = null;
+public class TrapNetAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationUnknown pdUnk = null;
- public TrapNetAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdUnk = new PDAnnotationUnknown(annotDictionary);
- this.pdAnnot = this.pdUnk;
- }
+ public TrapNetAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ 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);
+ /*
+ * (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));
+ boolean result = (subtype && rect && f);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- 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=1453416&r1=1453415&r2=1453416&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 Wed Mar 6 16:46:35 2013
@@ -34,61 +34,65 @@ import org.apache.pdfbox.preflight.excep
/**
* Validation class for the Widget Annotation
*/
-public class WidgetAnnotationValidator extends AnnotationValidator {
- /**
- * PDFBox object which wraps the annotation dictionary
- */
- protected PDAnnotationWidget pdWidget = null;
+public class WidgetAnnotationValidator extends AnnotationValidator
+{
+ /**
+ * PDFBox object which wraps the annotation dictionary
+ */
+ protected PDAnnotationWidget pdWidget = null;
- public WidgetAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary) {
- super(ctx, annotDictionary);
- this.pdWidget = new PDAnnotationWidget(annotDictionary);
- this.pdAnnot = this.pdWidget;
- }
+ public WidgetAnnotationValidator(PreflightContext ctx, COSDictionary annotDictionary)
+ {
+ super(ctx, annotDictionary);
+ this.pdWidget = new PDAnnotationWidget(annotDictionary);
+ this.pdAnnot = this.pdWidget;
+ }
- /**
- * In addition of the AnnotationValidator.validate() method, this method
- * executes the the checkAAField method.
- *
- * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
- */
- @Override
- public boolean validate() throws ValidationException {
- boolean isValide = super.validate();
- isValide = isValide && checkAAField();
- return isValide;
- }
+ /**
+ * In addition of the AnnotationValidator.validate() method, this method executes the the checkAAField method.
+ *
+ * @see org.apache.padaf.preflight.annotation.AnnotationValidator#validate(java.util.List)
+ */
+ @Override
+ public boolean validate() throws ValidationException
+ {
+ boolean isValide = super.validate();
+ isValide = isValide && checkAAField();
+ return isValide;
+ }
- /**
- * The AA field is forbidden for the Widget annotation when the PDF is a
- * PDF/A. This method return false and update the errors list if this key is
- * present. returns true otherwise
- *
- * @return
- */
- protected boolean checkAAField() {
- if (this.pdWidget.getActions() != null) {
- ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_AA));
- return false;
+ /**
+ * The AA field is forbidden for the Widget annotation when the PDF is a PDF/A. This method return false and update
+ * the errors list if this key is present. returns true otherwise
+ *
+ * @return
+ */
+ protected boolean checkAAField()
+ {
+ if (this.pdWidget.getActions() != null)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_FORBIDDEN_AA));
+ return false;
+ }
+ return true;
}
- 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);
+ /*
+ * (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));
+ boolean result = (subtype && rect && f);
+ if (!result)
+ {
+ ctx.addValidationError(new ValidationError(ERROR_ANNOT_MISSING_FIELDS));
+ }
+ return result;
}
- return result;
- }
}
Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/pdfa/PDFAbAnnotationFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/pdfa/PDFAbAnnotationFactory.java?rev=1453416&r1=1453415&r2=1453416&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/pdfa/PDFAbAnnotationFactory.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/annotation/pdfa/PDFAbAnnotationFactory.java Wed Mar 6 16:46:35 2013
@@ -55,28 +55,30 @@ import org.apache.pdfbox.preflight.annot
/**
* Factory to instantiate AnnotationValidator for a PDF/A-1b validation.
*/
-public class PDFAbAnnotationFactory extends AnnotationValidatorFactory {
+public class PDFAbAnnotationFactory extends AnnotationValidatorFactory
+{
- protected void initializeClasses() {
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_TEXT, TextAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_LINK, LinkAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_FREETEXT, FreeTextAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_LINE, LineAnnotationValidator.class);
-
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_SQUARE, SquareCircleAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_CIRCLE, SquareCircleAnnotationValidator.class);
+ protected void initializeClasses()
+ {
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_TEXT, TextAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_LINK, LinkAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_FREETEXT, FreeTextAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_LINE, LineAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_HIGHLIGHT, MarkupAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_UNDERLINE, MarkupAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_STRIKEOUT, MarkupAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_SQUILGGLY, MarkupAnnotationValidator.class);
-
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_STAMP, RubberStampAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_INK, InkAnnotationValdiator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_POPUP, PopupAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_WIDGET, WidgetAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_PRINTERMARK, PrintMarkAnnotationValidator.class);
- this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_TRAPNET, TrapNetAnnotationValidator.class);
- }
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_SQUARE, SquareCircleAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_CIRCLE, SquareCircleAnnotationValidator.class);
-}
\ No newline at end of file
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_HIGHLIGHT, MarkupAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_UNDERLINE, MarkupAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_STRIKEOUT, MarkupAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_SQUILGGLY, MarkupAnnotationValidator.class);
+
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_STAMP, RubberStampAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_INK, InkAnnotationValdiator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_POPUP, PopupAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_WIDGET, WidgetAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_PRINTERMARK, PrintMarkAnnotationValidator.class);
+ this.validatorClasses.put(ANNOT_DICTIONARY_VALUE_SUBTYPE_TRAPNET, TrapNetAnnotationValidator.class);
+ }
+
+}