Class Chainr.ContextualTransformAdapter

java.lang.Object
com.bazaarvoice.jolt.Chainr.ContextualTransformAdapter
All Implemented Interfaces:
ContextualTransform, JoltTransform
Enclosing class:
Chainr

private static class Chainr.ContextualTransformAdapter extends Object implements ContextualTransform
Adapt "normal" Transforms to look like ContextualTransforms, so that Chainr can just maintain a single list of "JoltTransforms" to run.
  • Field Details

    • transform

      private final Transform transform
  • Constructor Details

    • ContextualTransformAdapter

      private ContextualTransformAdapter(Transform transform)
  • Method Details

    • transform

      public Object transform(Object input, Map<String,Object> context)
      Description copied from interface: ContextualTransform
      Execute a transform on some input JSON with optionally provided "context" and return the result. The "context" allows transforms to tweak their behavior based upon criteria outside of the input JSON object. The canonical example for the need to have Transforms consider "context" is a Transform that creates urls based upon input data. Should it generate "http" or "https" urls? Most likely the input JSON data does not provide any guidance. This is what the "context" is for. It allows the consumer of the Transform to specialize itself based on data outside the scope of the input JSON. Without the "context" notion you would instead create a HttpUrlTransform and a HttpsUrlTransform. This creates problems when you want to used them as part of a larger Chainr Transform, as you would need to create two Chainrs that are almost the same. The number of Chainrs needed grows exponentially as you add other context sensitive transforms.
      Specified by:
      transform in interface ContextualTransform
      Parameters:
      input - the JSON object to transform in plain vanilla Jackson Mapinvalid input: '<'String, Object> style
      context - information outside of the input JSON that needs to be taken into account when doing the transform
      Returns:
      the results of the transformation