Class ActionManagerFactory


  • public class ActionManagerFactory
    extends java.lang.Object
    • Constructor Detail

      • ActionManagerFactory

        public ActionManagerFactory()
    • Method Detail

      • getActionManagers

        public final java.util.List<AbstractActionManager> getActionManagers​(PreflightContext ctx,
                                                                             COSDictionary dictionary)
                                                                      throws ValidationException
        This method extract actions from the given dictionary. An action is identified by the following entries :
        • A (Action) : Available in Annotations, Outline items
        • OpenAction (OpenAction) : Available in the Catalog dictionary
        • AA (Additional Action) : Available in the Catalog dictionary, Annotations, Pages
        If there are no action, an empty list is returned.
        Parameters:
        ctx - the preflight context.
        dictionary - the dictionary to retrieve the actions from.
        Returns:
        the list of actions from the given dictionary.
        Throws:
        ValidationException
      • callCreateAction

        private void callCreateAction​(COSBase aDict,
                                      PreflightContext ctx,
                                      java.util.List<AbstractActionManager> result,
                                      java.util.Map<COSObjectKey,​java.lang.Boolean> alreadyCreated)
                               throws ValidationException
        Call the callCreateAction(COSBase, COSDocument, List, String) method with null as isAA parameter.
        Parameters:
        aDict - a COSBase object (COSObject or COSDictionary) which represent the action dictionary.
        ctx - the preflight context.
        result - the list of ActionManager to updated if the aDict parameter is valid.
        alreadyCreated - This map is used to know if an Action has already been validated. It is useful to avoid infinite loop in an action which has a Next entry.
        Throws:
        ValidationException
      • callCreateAction

        private void callCreateAction​(COSBase aDict,
                                      PreflightContext ctx,
                                      java.util.List<AbstractActionManager> result,
                                      java.lang.String additionActionKey,
                                      java.util.Map<COSObjectKey,​java.lang.Boolean> alreadyCreated)
                               throws ValidationException
        Call the create action to add the ActionManager to the result list. If the aDict parameter isn't an instance of COSDictionary, this method throws a ValidationException. If the aDict parameter is a reference to a COSDictionary, the action manager is create only if the linked COSObjectKey is missing from the "alreadyCreated" map, in this case the action is added to the map. If the aDict parameter is an instance of COSDictionary, it is impossible to check if the ActionManager already exists in the "alreadyCreated" map.
        Parameters:
        aDict - a COSBase object (COSObject or COSDictionary) which represent the action dictionary.
        ctx - the preflight validation context.
        result - the list of ActionManager to updated if the aDict parameter is valid.
        additionActionKey - the Action identifier if it is an additional action
        alreadyCreated - This map is used to know if an Action has already been validated. It is useful to avoid infinite loop in an action which has a Next entry.
        Throws:
        ValidationException
      • getNextActions

        public final java.util.List<AbstractActionManager> getNextActions​(PreflightContext ctx,
                                                                          COSDictionary actionDictionary)
                                                                   throws ValidationException
        Returns all actions contained by the Next entry. If the action dictionary doesn't have Next action, the result is an empty list.
        Parameters:
        ctx - the preflight context.
        actionDictionary - the dictionary to retrieve the actions from.
        Returns:
        the list of actions from the given dictionary.
        Throws:
        ValidationException
      • createActionManager

        protected AbstractActionManager createActionManager​(PreflightContext ctx,
                                                            COSDictionary action,
                                                            java.lang.String aaKey)
                                                     throws ValidationException
        Create an instance of ActionManager according to the value of the S entry. If the type entry isn't Action, a ValidationException will be thrown. If the action type isn't authorized in a PDF/A file, an instance of InvalidAction is returned.
        Parameters:
        ctx - the preflight context.
        action - the action dictionary used to instantiate the ActionManager
        aaKey - the Action identifier if it is an additional action
        Returns:
        the ActionManager instance.
        Throws:
        ValidationException