org.apache.tools.ant.property

Class ParseProperties

  • java.lang.Object
    • 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      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

      • parseProperties

        public java.lang.Object parseProperties(java.lang.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(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.