Class 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 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.