Class PdfConfigurationProcessor

    • Constructor Detail

      • PdfConfigurationProcessor

        public PdfConfigurationProcessor()
        Constructor.
    • Method Detail

      • setUpdates

        public void setUpdates​(java.util.Map<java.lang.String,​java.lang.Object> updates)
        The pdf metadata property -> attribute name map. The keys must be one of the values in PDFConfig and the values must be the name of the attribute to obtain the the data from. Example Configuration:
        
         processors:
           - !updatePdfConfig
             updates:
               title: "titleAttribute"
               subject: "subjectAttribute"
         
        The type of the attribute must be of the correct type, for example title mus be a string, keywords must be an array of strings, compress must be a boolean.

        If the value is within the attribute output object then you can use dot separators for each level. For example suppose there is a custom attribute: myconfig, if and it has a property title then the configuration would be:

        
         processors:
           - updatePdfConfig
             updates: {title: :myconfig.title"}
         
        For more power a "format" can be defined. The format is a printf style format string which will be called with a single value that is identified by the value key/path. In this case the short hand key: value can't be used instead it is as follows:
        
           - updatePdfConfig
             updates:
               title: !updatePdfConfigUpdate
                  valueKey: "myconfig.title"
                  format: "Print Report %s"
         
        Parameters:
        updates - the attribute map
      • extraValidation

        protected void extraValidation​(java.util.List<java.lang.Throwable> validationErrors,
                                       Configuration configuration)
        Description copied from class: AbstractProcessor
        Perform any extra validation a subclass may need to perform.
        Specified by:
        extraValidation in class AbstractProcessor<PdfConfigurationProcessor.In,​java.lang.Void>
        Parameters:
        validationErrors - a list to add errors to so that all validation errors are reported as one.
        configuration - the containing configuration
      • createInputParameter

        @Nullable
        public PdfConfigurationProcessor.In createInputParameter()
        Description copied from interface: Processor
        Returns a new/clean instance of a parameter object. This instance's will be inspected using reflection to find its public fields and the properties will be set from the Values object.

        The way the properties will be looked up is to

        1. take the bean property name
        2. map it using the input mapper, (if the input mapper does not have a mapping for the property then the unmapped property name is used)
        3. Look up the property value in the Values object using the mapped property name
        4. set the value on the instance created by this method. If the value is null an exception will be thrown UNLESS the HasDefaultValue annotation is on the field for the property.
        The populated instance will be passed to the execute method. It is imperative that a new instance is created each time because they will be used in a multi-threaded environment and thus the same processor instance may be ran in multiple threads with different instances of the parameter object.

        It is important to realize that super classes will also be analyzed, so care must be had with inheritance.

      • execute

        @Nullable
        public java.lang.Void execute​(PdfConfigurationProcessor.In in,
                                      Processor.ExecutionContext context)
        Description copied from interface: Processor
        Perform the process on the input attributes.
        Parameters:
        in - A Java object whose public fields are populated from the Values object (which is used for transferring properties between processors).
        context - The execution context for a print task.
        Returns:
        A Java object whose public fields will be put into the Values object. The key in the Values object is the name of the field or if there is a mapping in the Processor.getOutputMapperBiMap() map, the mapped name. The key is determined in a similar way as for the input object.