Class AbstractStringBasedModelInterpolator
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator
-
- All Implemented Interfaces:
ModelInterpolator,org.codehaus.plexus.logging.LogEnabled,org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
- Direct Known Subclasses:
RegexBasedModelInterpolator,StringSearchModelInterpolator
public abstract class AbstractStringBasedModelInterpolator extends org.codehaus.plexus.logging.AbstractLogEnabled implements ModelInterpolator, org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
Use a regular expression search to find and resolve expressions within the POM.- Version:
- $Id: AbstractStringBasedModelInterpolator.java 767323 2009-04-21 22:53:31Z jdcasey $
- Author:
- jdcasey Created on Feb 3, 2005
-
-
Field Summary
-
Fields inherited from interface org.apache.maven.project.interpolation.ModelInterpolator
BUILD_TIMESTAMP_FORMAT_PROPERTY, DEFAULT_BUILD_TIMESTAMP_FORMAT, ROLE
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractStringBasedModelInterpolator()protectedAbstractStringBasedModelInterpolator(PathTranslator pathTranslator)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected abstract org.codehaus.plexus.interpolation.InterpolatorcreateInterpolator()protected List<org.codehaus.plexus.interpolation.InterpolationPostProcessor>createPostProcessors(Model model, File projectDir, ProjectBuilderConfiguration config)protected List<org.codehaus.plexus.interpolation.ValueSource>createValueSources(Model model, File projectDir, ProjectBuilderConfiguration config)protected org.codehaus.plexus.interpolation.InterpolatorgetInterpolator()protected org.codehaus.plexus.interpolation.RecursionInterceptorgetRecursionInterceptor()voidinitialize()Stringinterpolate(String src, Model model, File projectDir, ProjectBuilderConfiguration config, boolean debug)Interpolates all expressions in the src parameter.Modelinterpolate(Model model, File projectDir, ProjectBuilderConfiguration config, boolean debugEnabled)Modelinterpolate(Model model, Map<String,?> context)Modelinterpolate(Model model, Map<String,?> context, boolean strict)Deprecated.protected StringinterpolateInternal(String src, List<org.codehaus.plexus.interpolation.ValueSource> valueSources, List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> postProcessors, boolean debug)protected voidsetRecursionInterceptor(org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor)
-
-
-
Constructor Detail
-
AbstractStringBasedModelInterpolator
protected AbstractStringBasedModelInterpolator(PathTranslator pathTranslator)
-
AbstractStringBasedModelInterpolator
protected AbstractStringBasedModelInterpolator()
- Throws:
IOException- This exception is not thrown any more, and needs to be removed.
-
-
Method Detail
-
interpolate
public Model interpolate(Model model, Map<String,?> context) throws ModelInterpolationException
- Specified by:
interpolatein interfaceModelInterpolator- Throws:
ModelInterpolationException
-
interpolate
public Model interpolate(Model model, Map<String,?> context, boolean strict) throws ModelInterpolationException
Deprecated.Serialize the inbound Model instance to a StringWriter, perform the regex replacement to resolve POM expressions, then re-parse into the resolved Model instance.
NOTE: This will result in a different instance of Model being returned!!!- Specified by:
interpolatein interfaceModelInterpolator- Parameters:
model- The inbound Model instance, to serialize and reference for expression resolutioncontext- The other context map to be used during resolution- Returns:
- The resolved instance of the inbound Model. This is a different instance!
- Throws:
ModelInterpolationException
-
interpolate
public Model interpolate(Model model, File projectDir, ProjectBuilderConfiguration config, boolean debugEnabled) throws ModelInterpolationException
- Specified by:
interpolatein interfaceModelInterpolator- Throws:
ModelInterpolationException
-
interpolate
public String interpolate(String src, Model model, File projectDir, ProjectBuilderConfiguration config, boolean debug) throws ModelInterpolationException
Interpolates all expressions in the src parameter.The algorithm used for each expression is:
- If it starts with either "pom." or "project.", the expression is evaluated against the model.
- If the value is null, get the value from the context.
- If the value is null, but the context contains the expression, don't replace the expression string with the value, and continue to find other expressions.
- If the value is null, get it from the model properties.
- Specified by:
interpolatein interfaceModelInterpolator- Parameters:
overrideContext-outputDebugMessages-- Throws:
ModelInterpolationException
-
createValueSources
protected List<org.codehaus.plexus.interpolation.ValueSource> createValueSources(Model model, File projectDir, ProjectBuilderConfiguration config)
-
createPostProcessors
protected List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> createPostProcessors(Model model, File projectDir, ProjectBuilderConfiguration config)
-
interpolateInternal
protected String interpolateInternal(String src, List<org.codehaus.plexus.interpolation.ValueSource> valueSources, List<org.codehaus.plexus.interpolation.InterpolationPostProcessor> postProcessors, boolean debug) throws ModelInterpolationException
- Throws:
ModelInterpolationException
-
getRecursionInterceptor
protected org.codehaus.plexus.interpolation.RecursionInterceptor getRecursionInterceptor()
-
setRecursionInterceptor
protected void setRecursionInterceptor(org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor)
-
createInterpolator
protected abstract org.codehaus.plexus.interpolation.Interpolator createInterpolator()
-
initialize
public void initialize() throws org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException- Specified by:
initializein interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable- Throws:
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
-
getInterpolator
protected final org.codehaus.plexus.interpolation.Interpolator getInterpolator()
-
-