# Package org.codehaus.plexus.interpolation

Interface Summary
BasicInterpolator: Knows how to do basic interpolation services.
FeedbackEnabledValueSource: Deprecated Rolled into `ValueSource` now.
InterpolationPostProcessor: Used to allow full recursion of value interpolation before applying some rule to the result.
Interpolator: Interpolator interface.
QueryEnabledValueSource: Tracks the most recent expression processed by this value source implementation.
RecursionInterceptor: Logs expressions before resolution is attempted, and clears them after resolution is complete (or, fails all strategies).
ValueSource: Supplies one strategy for resolving a value for an interpolation expression.

Class Summary
AbstractDelegatingValueSource
AbstractFunctionValueSourceWrapper: `ValueSource` abstract implementation that wraps another value source.
AbstractValueSource
EnvarBasedValueSource: `ValueSource` which resolves expressions against the environment variables available from the underlying operating system (and possibly, the shell environment that created the present Java process).
FixedInterpolatorValueSource: A value source that allows a fixed interpolator to be injected into a regular interpolator.
InterpolatorFilterReader: A FilterReader implementation, that works with Interpolator interface instead of it's own interpolation implementation.
MapBasedValueSource: Wraps a Map, and looks up the whole expression as a single key, returning the value mapped to it.
ObjectBasedValueSource: Wraps an object, providing reflective access to the object graph of which the supplied object is the root.
PrefixAwareRecursionInterceptor: `RecursionInterceptor` implementation that provides support for expressions with multiple synonyms, such as project.build.directory == pom.build.directory == build.directory in Maven's POM.
PrefixedObjectValueSource: Wraps an arbitrary object with an `ObjectBasedValueSource` instance, then wraps that source with a `PrefixedValueSourceWrapper` instance, to which this class delegates all of its calls.
PrefixedPropertiesValueSource: Legacy support.
PrefixedValueSourceWrapper: `ValueSource` implementation which simply wraps another value source, and trims any of a set of possible expression prefixes before delegating the modified expression to be resolved by the real value source.
PropertiesBasedValueSource: `ValueSource` implementation that wraps a `Properties` instance, and does a simple lookup of the entire expression string as the parameter for `Properties.getProperty(String)`, returning the result as the resolved value.
RegexBasedInterpolator: Expansion of the original RegexBasedInterpolator, found in plexus-utils, this interpolator provides options for setting custom prefix/suffix regex parts, and includes a `RecursionInterceptor` parameter in its interpolate(..) call, to allow the detection of cyclical expression references.
SimpleRecursionInterceptor: Simplest implementation of a `RecursionInterceptor`, which checks whether the existing interpolation effort is already attempting to resolve an exact expression, but has not finished.
SingleResponseValueSource: If the expression matches, simply return the response object.
StringSearchInterpolator

Exception Summary
InterpolationCycleException
InterpolationException: Signals an unrecoverable error in the process of interpolating a string, such as the detection of an expression cycle.