Interface Interpolator

All Superinterfaces:
BasicInterpolator
All Known Implementing Classes:
MultiDelimiterStringSearchInterpolator, RegexBasedInterpolator, StringSearchInterpolator

public interface Interpolator extends BasicInterpolator
Interpolator interface. Based on existing RegexBasedInterpolator interface.
Author:
cstamas
  • Method Details

    • addValueSource

      void addValueSource(ValueSource valueSource)
      Add a new ValueSource to the stack used to resolve expressions in this interpolator instance.
      Parameters:
      valueSource - ValueSource.
    • removeValuesSource

      void removeValuesSource(ValueSource valueSource)
      Remove the specified ValueSource from the stack used to resolve expressions in this interpolator instance.
      Parameters:
      valueSource - ValueSource.
    • addPostProcessor

      void addPostProcessor(InterpolationPostProcessor postProcessor)
      Add a new post-processor to handle final processing after recursively-interpolated value is determined.
      Parameters:
      postProcessor - InterpolationPostProcessor.
    • removePostProcessor

      void removePostProcessor(InterpolationPostProcessor postProcessor)
      Remove the given post-processor.
      Parameters:
      postProcessor - InterpolationPostProcessor.
    • interpolate

      String interpolate(String input, String thisPrefixPattern) throws InterpolationException
      See interpolate(String, String, RecursionInterceptor).

      This method triggers the use of a SimpleRecursionInterceptor instance for protection against expression cycles.

      Parameters:
      input - The input string to interpolate
      thisPrefixPattern - An optional pattern that should be trimmed from the start of any expressions found in the input.
      Returns:
      interpolated string.
      Throws:
      InterpolationException - in case of an error.
    • interpolate

      String interpolate(String input, String thisPrefixPattern, RecursionInterceptor recursionInterceptor) throws InterpolationException
      Attempt to resolve all expressions in the given input string, using the given pattern to first trim an optional prefix from each expression. The supplied recursion interceptor will provide protection from expression cycles, ensuring that the input can be resolved or an exception is thrown. return an empty String if input is null
      Parameters:
      input - The input string to interpolate
      thisPrefixPattern - An optional pattern that should be trimmed from the start of any expressions found in the input.
      recursionInterceptor - Used to protect the interpolation process from expression cycles, and throw an exception if one is detected.
      Returns:
      interpolated string.
      Throws:
      InterpolationException - in case of an error.
    • getFeedback

      List getFeedback()
      Return any feedback messages and errors that were generated - but suppressed - during the interpolation process. Since unresolvable expressions will be left in the source string as-is, this feedback is optional, and will only be useful for debugging interpolation problems.
      Returns:
      a List that may be interspersed with String and Throwable instances.
    • clearFeedback

      void clearFeedback()
      Clear the feedback messages from previous interpolate(..) calls.
    • isCacheAnswers

      boolean isCacheAnswers()
      Returns:
      state of the cacheAnswers
    • setCacheAnswers

      void setCacheAnswers(boolean cacheAnswers)
      Parameters:
      cacheAnswers - true/false.
    • clearAnswers

      void clearAnswers()