org.apache.maven.project.interpolation
Class AbstractStringBasedModelInterpolator
java.lang.Object
org.codehaus.plexus.logging.AbstractLogEnabled
org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator
- All Implemented Interfaces:
- org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable, org.codehaus.plexus.logging.LogEnabled, ModelInterpolator
- 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 745955 2009-02-19 18:39:09Z jdcasey $
- Author:
- jdcasey Created on Feb 3, 2005
Method Summary |
protected abstract org.codehaus.plexus.interpolation.Interpolator |
createInterpolator()
|
protected List |
createPostProcessors(Model model,
File projectDir,
ProjectBuilderConfiguration config)
|
protected List |
createValueSources(Model model,
File projectDir,
ProjectBuilderConfiguration config)
|
protected org.codehaus.plexus.interpolation.Interpolator |
getInterpolator()
|
protected org.codehaus.plexus.interpolation.RecursionInterceptor |
getRecursionInterceptor()
|
void |
initialize()
|
Model |
interpolate(Model model,
File projectDir,
ProjectBuilderConfiguration config,
boolean debugEnabled)
|
Model |
interpolate(Model model,
Map context)
|
Model |
interpolate(Model model,
Map context,
boolean strict)
Deprecated. Use ModelInterpolator.interpolate(Model, File, ProjectBuilderConfiguration, boolean) instead. |
String |
interpolate(String src,
Model model,
File projectDir,
ProjectBuilderConfiguration config,
boolean debug)
Interpolates all expressions in the src parameter.
|
protected String |
interpolateInternal(String src,
List valueSources,
List postProcessors,
boolean debug)
|
protected void |
setRecursionInterceptor(org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor)
|
Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled |
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractStringBasedModelInterpolator
protected AbstractStringBasedModelInterpolator(PathTranslator pathTranslator)
AbstractStringBasedModelInterpolator
protected AbstractStringBasedModelInterpolator()
- Throws:
IOException
- This exception is not thrown any more, and needs to be removed.
interpolate
public Model interpolate(Model model,
Map context)
throws ModelInterpolationException
- Specified by:
interpolate
in interface ModelInterpolator
- Throws:
ModelInterpolationException
interpolate
public Model interpolate(Model model,
Map context,
boolean strict)
throws ModelInterpolationException
- Deprecated. Use
ModelInterpolator.interpolate(Model, File, ProjectBuilderConfiguration, boolean)
instead.
- 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:
interpolate
in interface ModelInterpolator
- 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:
interpolate
in interface ModelInterpolator
- 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:
interpolate
in interface ModelInterpolator
- Throws:
ModelInterpolationException
createValueSources
protected List createValueSources(Model model,
File projectDir,
ProjectBuilderConfiguration config)
createPostProcessors
protected List createPostProcessors(Model model,
File projectDir,
ProjectBuilderConfiguration config)
interpolateInternal
protected String interpolateInternal(String src,
List valueSources,
List 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:
initialize
in interface org.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()
Copyright © 2001-2009 The Apache Software Foundation. All Rights Reserved.