Class Apply

  • All Implemented Interfaces:
    ProjectionTransformer

    public final class Apply
    extends ConfigurableProjectionTransformer<T>
    Recursively applies transforms of other projections.

    Note: this transform is special cased and not created using a normal factory. This is because this transformer needs to recursively transform models based on projections, and no other transform needs this functionality. We could *maybe* address this later if we really care that much.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  Apply.ApplyCallback  
      static class  Apply.Config
      apply configuration.
    • Constructor Summary

      Constructors 
      Constructor Description
      Apply​(Apply.ApplyCallback applyCallback)
      Sets the function used to apply projections.
    • Method Summary

      Modifier and Type Method Description
      java.lang.Class<Apply.Config> getConfigType()
      Gets the configuration class type.
      java.lang.String getName()
      Gets the name of the transformer.
      Model transform​(TransformContext context)
      Transforms the given model using the provided TransformContext.
      protected Model transformWithConfig​(TransformContext context, Apply.Config config)
      Executes the transform using the deserialized configuration object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Apply

        public Apply​(Apply.ApplyCallback applyCallback)
        Sets the function used to apply projections.
        Parameters:
        applyCallback - Takes the projection name, model, and returns the updated model.
    • Method Detail

      • getConfigType

        public java.lang.Class<Apply.Config> getConfigType()
        Description copied from class: ConfigurableProjectionTransformer
        Gets the configuration class type.

        The referenced configType class must be a public POJO with a public, zero-arg constructor, getters, and setters. If the POJO has a public static fromNode method, it will be invoked and is expected to deserialize the Node. If the POJO has a public static builder method, it will be invoked, setters will be called on the builder POJO, and finally the result of calling the build method is used as the configuration type. Finally, the deserializer will attempt to create the type and call setters on the instantiated object that correspond to property names (either named "set" + property name, or just property name).

        Specified by:
        getConfigType in class ConfigurableProjectionTransformer<Apply.Config>
        Returns:
        Returns the configuration class (a POJO with setters/getters).
      • getName

        public java.lang.String getName()
        Description copied from interface: ProjectionTransformer
        Gets the name of the transformer.
        Returns:
        Returns the name (e.g., "traits").