org.codehaus.plexus.interpolation

## Interface Interpolator

All Superinterfaces:
  BasicInterpolator

All Known Implementing Classes:
  MultiDelimiterStringSearchInterpolator, RegexBasedInterpolator, StringSearchInterpolator

    public interface Interpolator
    extends BasicInterpolator

Interpolator interface. Based on existing RegexBasedInterpolator interface.

Version:
  $Id$
Author:
  cstamas

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addPostProcessor(InterpolationPostProcessor postProcessor)` Add a new post-processor to handle final processing after recursively-interpolated value is determined.
`void` `addValueSource(ValueSource valueSource)` Add a new `ValueSource` to the stack used to resolve expressions in this interpolator instance.
`void` `clearAnswers()`
`void` `clearFeedback()` Clear the feedback messages from previous interpolate(..) calls.
`List` `getFeedback()` Return any feedback messages and errors that were generated - but suppressed - during the interpolation process.
`String` `interpolate(String input, String thisPrefixPattern)` See `interpolate(String, String, RecursionInterceptor)`.
`String` `interpolate(String input, String thisPrefixPattern, RecursionInterceptor recursionInterceptor)` Attempt to resolve all expressions in the given input string, using the given pattern to first trim an optional prefix from each expression.
`boolean` `isCacheAnswers()`
`void` `removePostProcessor(InterpolationPostProcessor postProcessor)` Remove the given post-processor.
`void` `removeValuesSource(ValueSource valueSource)` Remove the specified `ValueSource` from the stack used to resolve expressions in this interpolator instance.
`void` `setCacheAnswers(boolean cacheAnswers)`

### Methods inherited from interface org.codehaus.plexus.interpolation.BasicInterpolator

`interpolate, interpolate`

### Method Detail

#### addValueSource

    void addValueSource(ValueSource valueSource)

Add a new `ValueSource` to the stack used to resolve expressions in this interpolator instance.

#### removeValuesSource

    void removeValuesSource(ValueSource valueSource)

Remove the specified `ValueSource` from the stack used to resolve expressions in this interpolator instance.

#### addPostProcessor

    void addPostProcessor(InterpolationPostProcessor postProcessor)

Add a new post-processor to handle final processing after recursively-interpolated value is determined.

#### removePostProcessor

    void removePostProcessor(InterpolationPostProcessor postProcessor)

Remove the given post-processor.

#### 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.
Throws:
  `InterpolationException`

#### 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.
Throws:
  `InterpolationException`

#### 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()

#### setCacheAnswers

    void setCacheAnswers(boolean cacheAnswers)

#### clearAnswers

    void clearAnswers()