Class ParseProperties

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

public class ParseProperties extends Object implements ParseNextProperty
Parse properties using a collection of expanders.
Since:
Ant 1.8.0
  • Constructor Details

    • ParseProperties

      public ParseProperties(Project project, Collection<PropertyExpander> expanders, GetProperty getProperty)
      Constructor with a getProperty.
      Parameters:
      project - the current Ant project.
      expanders - a sequence of expanders
      getProperty - property resolver.
  • Method Details

    • getProject

      public Project getProject()
      Get the project.
      Specified by:
      getProject in interface ParseNextProperty
      Returns:
      the current Ant project.
    • parseProperties

      public Object parseProperties(String value)
      Decode properties from a String representation.
      • This implementation starts parsing the value parameter (unsurprisingly) at the beginning and asks each PropertyExpander whether there is a property reference at that point. PropertyExpanders return the name of a property they may find and may advance the parse position.
      • If the PropertyExpander returns null the method continues with the next PropertyExpander, otherwise it tries to look up the property's value using the configured GetProperty instance.
      • Once all PropertyExpanders have been consulted, the parse position is advanced by one character and the process repeated until value is exhausted.

      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(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 Object parseNextProperty(String value, 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.