org.apache.axiom.util.stax.xop

## Interface OptimizationPolicy

-     public interface OptimizationPolicy

  Encapsulates an algorithm that decides whether base64 encoded binary data should be optimized using XOP. The implementation takes the decision based on the submitted binary content and the "eligible for optimization" flag. Depending on the context of use, this flag is provided by the return value of `DataHandlerReader.isOptimized()` or the `optimize` argument of `DataHandlerWriter.writeDataHandler(DataHandler, String, boolean)` or `DataHandlerWriter.writeDataHandler(DataHandlerProvider, String, boolean)`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static OptimizationPolicy` | `ALL` Policy implementation that optimizes all binary content, regardless of whether is has been marked as eligible for optimization.
    `static OptimizationPolicy` | `DEFAULT` Policy implementation that optimizes all binary content marked as eligible for optimization.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isOptimized(javax.activation.DataHandler dataHandler, boolean optimize)` Determine whether the binary content supplied by a given `DataHandler` should be optimized.
    `boolean` | `isOptimized(DataHandlerProvider dataHandlerProvider, boolean optimize)` Determine whether the binary content supplied by a given `DataHandlerProvider` should be optimized.

- - ### Field Detail

    - #### DEFAULT

          static final OptimizationPolicy DEFAULT

      Policy implementation that optimizes all binary content marked as eligible for optimization.

    - #### ALL

          static final OptimizationPolicy ALL

      Policy implementation that optimizes all binary content, regardless of whether is has been marked as eligible for optimization.

  - ### Method Detail

    - #### isOptimized

          boolean isOptimized(javax.activation.DataHandler dataHandler,
                              boolean optimize)
                       throws IOException

      Determine whether the binary content supplied by a given `DataHandler` should be optimized.
      Parameters:
        `dataHandler` - the binary content
        `optimize` - indicates whether the binary content was initially marked as eligible for optimization (see above)
      Returns:
        `true` if the binary content should be optimized using XOP, i.e. encoded using `xop:Include`
      Throws:
        `IOException` - if an error occurs while reading the data handler

    - #### isOptimized

          boolean isOptimized(DataHandlerProvider dataHandlerProvider,
                              boolean optimize)
                       throws IOException

      Determine whether the binary content supplied by a given `DataHandlerProvider` should be optimized.
      Parameters:
        `dataHandlerProvider` - the binary content
        `optimize` - indicates whether the binary content was initially marked as eligible for optimization (see above)
      Returns:
        `true` if the binary content should be optimized using XOP, i.e. encoded using `xop:Include`
      Throws:
        `IOException` - if an error occurs while reading the data handler

Copyright © The Apache Software Foundation. All Rights Reserved.