package org.codehaus.plexus.interpolation;

import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
import org.codehaus.plexus.interpolation.fixed.InterpolationState;

import java.util.List;

A value source that allows a fixed interpolator to be injected into a regular interpolator. This value source encapsulates state, so even though the fixed interpolator can be used as a singleton, a single FixedInterpolatorValueSource can only belong to one interpolator any given time.
/** * A value source that allows a fixed interpolator to be injected into * a regular interpolator. This value source encapsulates state, so even though * the fixed interpolator can be used as a singleton, a single FixedInterpolatorValueSource * can only belong to one interpolator any given time. */
public class FixedInterpolatorValueSource implements ValueSource { private final FixedStringSearchInterpolator fixedStringSearchInterpolator; private final InterpolationState errorCollector = new InterpolationState(); public FixedInterpolatorValueSource( FixedStringSearchInterpolator fixedStringSearchInterpolator ) { this.fixedStringSearchInterpolator = fixedStringSearchInterpolator; } public Object getValue( String expression ) { return fixedStringSearchInterpolator.getValue( expression, errorCollector ); } public List getFeedback() { return errorCollector.asList(); } public void clearFeedback() { errorCollector.clear(); } }