Class ParseProperties

All Implemented Interfaces:

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

    • ParseProperties

      public ParseProperties(Project project, Collection<PropertyExpander> expanders, GetProperty getProperty)
      Constructor with a getProperty.
      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
      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.

      value - The string to be scanned for property references. May be null, in which case this method returns immediately with no effect.
      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.

      value - the String to check.
      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
      value - String to parse
      pos - ParsePosition
      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.