Class ConfigurableProjectionTransformer<T>

    • Constructor Detail

      • ConfigurableProjectionTransformer

        public ConfigurableProjectionTransformer()
    • Method Detail

      • getConfigType

        public abstract java.lang.Class<T> getConfigType()
        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).

        Returns:
        Returns the configuration class (a POJO with setters/getters).
      • getAdditionalProjections

        public java.util.List<java.lang.String> getAdditionalProjections​(TransformContext context)
        Description copied from interface: ProjectionTransformer
        Allows the composition of projections by returning additional projections to run after the current one.
        Specified by:
        getAdditionalProjections in interface ProjectionTransformer
        Parameters:
        context - Transformation context.
        Returns:
        a collection of named projections to run.
      • transformWithConfig

        protected abstract Model transformWithConfig​(TransformContext context,
                                                     T config)
        Executes the transform using the deserialized configuration object.
        Parameters:
        context - Transform context.
        config - Deserialized configuration object.
        Returns:
        Returns the transformed model.
      • getAdditionalProjectionsFunction

        protected java.util.Optional<java.util.function.BiFunction<TransformContext,​T,​java.util.List<java.lang.String>>> getAdditionalProjectionsFunction()
        Returns:
        an Optional of either a BiFunction that returns the additional projections to run after this one, or empty to indicate this projection will never compose other ones.