Class TransformAndCheckFunction<T>

java.lang.Object
net.shibboleth.utilities.java.support.logic.TransformAndCheckFunction<T>
Type Parameters:
T - type of input accepted by this function
All Implemented Interfaces:
Function<T,​Optional<? extends T>>

@ThreadSafe
public class TransformAndCheckFunction<T>
extends Object
implements Function<T,​Optional<? extends T>>
A Function that receives an input, runs it through a pre-processor and checks the result against a constraint. If the constraint matches that value is returned, wrapped in an Optional. If the constraint is not met and failOnConstraintViolation is false then Optional.empty() is returned. If the constraint is not met and failOnConstraintViolation is true then an IllegalArgumentException is thrown.
  • Field Details

    • preprocessor

      private final Function<T,​? extends T> preprocessor
      A function applied to input prior to being constraint checked and accepted.
    • constraint

      private final Predicate<T> constraint
      A constraint which must be met in order for an input to be valid.
    • failOnConstraintViolation

      private final boolean failOnConstraintViolation
      Whether input that does not meet the constraint should cause an error or just be silently dropped.
  • Constructor Details

    • TransformAndCheckFunction

      public TransformAndCheckFunction​(@Nonnull Function<T,​? extends T> inputPreprocessor, @Nonnull Predicate<T> inputConstraint, boolean failOnInputConstraintViolation)
      Constructor.
      Parameters:
      inputPreprocessor - function applied to input prior to being constraint checked and accepted
      inputConstraint - constraint which must be met in order for an input to be valid
      failOnInputConstraintViolation - whether input that does not meet the constraint should cause an error or just be ignored
  • Method Details