Class StringSearchInterpolator

java.lang.Object
org.codehaus.plexus.interpolation.StringSearchInterpolator
All Implemented Interfaces:
BasicInterpolator, Interpolator

public class StringSearchInterpolator extends Object implements Interpolator
  • Field Details

  • Constructor Details

    • StringSearchInterpolator

      public StringSearchInterpolator()
    • StringSearchInterpolator

      public StringSearchInterpolator(String startExpr, String endExpr)
  • Method Details

    • addValueSource

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

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

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

      public void removePostProcessor(InterpolationPostProcessor postProcessor)
      Remove the given post-processor.
      Specified by:
      removePostProcessor in interface Interpolator
      Parameters:
      postProcessor - InterpolationPostProcessor.
    • interpolate

      public String interpolate(String input, String thisPrefixPattern) throws InterpolationException
      Description copied from interface: Interpolator
      See Interpolator.interpolate(String, String, RecursionInterceptor).

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

      Specified by:
      interpolate in interface Interpolator
      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

      public String interpolate(String input, String thisPrefixPattern, RecursionInterceptor recursionInterceptor) throws InterpolationException
      Description copied from interface: Interpolator
      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
      Specified by:
      interpolate in interface Interpolator
      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.
    • interpolate

      public String interpolate(String input) throws InterpolationException
      Description copied from interface: BasicInterpolator
      See Interpolator.interpolate(String, String, org.codehaus.plexus.interpolation.RecursionInterceptor).

      This method triggers the use of a SimpleRecursionInterceptor instance for protection against expression cycles. It also leaves empty the expression prefix which would otherwise be trimmed from expressions. The result is that any detected expression will be resolved as-is.

      Specified by:
      interpolate in interface BasicInterpolator
      Parameters:
      input - The input string to interpolate
      Returns:
      the interpolated string.
      Throws:
      InterpolationException - in case of an error.
    • interpolate

      public String interpolate(String input, RecursionInterceptor recursionInterceptor) throws InterpolationException
      Entry point for recursive resolution of an expression and all of its nested expressions. TODO: Ensure unresolvable expressions don't trigger infinite recursion.
      Specified by:
      interpolate in interface BasicInterpolator
      Parameters:
      input - The input string to interpolate
      recursionInterceptor - Used to protect the interpolation process from expression cycles, and throw an exception if one is detected.
      Returns:
      the interpolated string.
      Throws:
      InterpolationException - in case of an error.
    • getFeedback

      public 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.
      Specified by:
      getFeedback in interface Interpolator
      Returns:
      a List that may be interspersed with String and Throwable instances.
    • clearFeedback

      public void clearFeedback()
      Clear the feedback messages from previous interpolate(..) calls.
      Specified by:
      clearFeedback in interface Interpolator
    • isCacheAnswers

      public boolean isCacheAnswers()
      Specified by:
      isCacheAnswers in interface Interpolator
      Returns:
      state of the cacheAnswers
    • setCacheAnswers

      public void setCacheAnswers(boolean cacheAnswers)
      Specified by:
      setCacheAnswers in interface Interpolator
      Parameters:
      cacheAnswers - true/false.
    • clearAnswers

      public void clearAnswers()
      Specified by:
      clearAnswers in interface Interpolator
    • getEscapeString

      public String getEscapeString()
    • setEscapeString

      public void setEscapeString(String escapeString)
    • getExistingAnswer

      protected Object getExistingAnswer(String key)
      For testing purposes only. Not part of the public API.
      Parameters:
      key - the key of a possible existing answer.
      Returns:
      the associated interpolated object, or null if there is none.