org.apache.tools.ant.property
Class ParseProperties

java.lang.Object
  extended by org.apache.tools.ant.property.ParseProperties
All Implemented Interfaces:
ParseNextProperty

public class ParseProperties
extends java.lang.Object
implements ParseNextProperty

Parse properties using a collection of expanders.

Since:
Ant 1.8.0

Constructor Summary
ParseProperties(Project project, java.util.Collection<PropertyExpander> expanders, GetProperty getProperty)
          Constructor with a getProperty.
 
Method Summary
 boolean containsProperties(java.lang.String value)
          Learn whether a String contains replaceable properties.
 Project getProject()
          Get the project.
 java.lang.Object parseNextProperty(java.lang.String value, java.text.ParsePosition pos)
          Return any property that can be parsed from the specified position in the specified String.
 java.lang.Object parseProperties(java.lang.String value)
          Decode properties from a String representation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParseProperties

public ParseProperties(Project project,
                       java.util.Collection<PropertyExpander> expanders,
                       GetProperty getProperty)
Constructor with a getProperty.

Parameters:
project - the current Ant project.
expanders - a sequence of expanders
getProperty - property resolver.
Method Detail

getProject

public Project getProject()
Get the project.

Specified by:
getProject in interface ParseNextProperty
Returns:
the current Ant project.

parseProperties

public java.lang.Object parseProperties(java.lang.String value)
Decode properties from a String representation.

If the entire contents of value resolves to a single property, the looked up property value is returned. Otherwise a String is returned that concatenates the non-property parts of value and the expanded values of the properties that have been found.

Parameters:
value - The string to be scanned for property references. May be null, in which case this method returns immediately with no effect.
Returns:
the original string with the properties replaced, or null if the original string is null.

containsProperties

public boolean containsProperties(java.lang.String value)
Learn whether a String contains replaceable properties.

Uses the configured PropertyExpanders and scans through the string. Returns true as soon as any expander finds a property.

Parameters:
value - the String to check.
Returns:
true if value contains property notation.

parseNextProperty

public java.lang.Object parseNextProperty(java.lang.String value,
                                          java.text.ParsePosition pos)
Return any property that can be parsed from the specified position in the specified String.

Uses the configured PropertyExpanders and GetProperty instance .

Specified by:
parseNextProperty in interface ParseNextProperty
Parameters:
value - String to parse
pos - ParsePosition
Returns:
Object or null if no property is at the current location. If a property reference has been found but the property doesn't expand to a value, the property's name is returned.