Class Variable

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
net.sf.antcontrib.property.Variable
All Implemented Interfaces:
Cloneable

public class Variable extends org.apache.tools.ant.Task
Similar to Property, but this property is mutable. In fact, much of the code in this class is copy and paste from Property. In general, the standard Ant property should be used, but occasionally it is useful to use a mutable property.

This used to be a nice little task that took advantage of what is probably a flaw in the Ant Project API -- setting a "user" property programatically causes the project to overwrite a previously set property. Now this task has become more violent and employs a technique known as "object rape" to directly access the Project's private property hashtable.

Developed for use with Antelope, migrated to ant-contrib Oct 2003.

Since:
Ant 1.5
Version:
$Revision: 1.6 $
Author:
Dale Anson, danson@germane-software.com
  • Field Summary

    Fields inherited from class org.apache.tools.ant.Task

    target, taskName, taskType, wrapper

    Fields inherited from class org.apache.tools.ant.ProjectComponent

    description, location, project
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    iterate through a set of properties, resolve them, then assign them
    void
    Execute this task.
    void
    setFile(File file)
    Set the name of a file to read properties from.
    void
    Set the name of the property.
    void
    setUnset(boolean b)
    Determines whether the property should be removed from the project.
    void
    Set the value of the property.

    Methods inherited from class org.apache.tools.ant.Task

    bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType

    Methods inherited from class org.apache.tools.ant.ProjectComponent

    clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Variable

      public Variable()
  • Method Details

    • setName

      public void setName(String name)
      Set the name of the property. Required unless 'file' is used.
      Parameters:
      name - the name of the property.
    • setValue

      public void setValue(String value)
      Set the value of the property. Optional, defaults to "".
      Parameters:
      value - the value of the property.
    • setFile

      public void setFile(File file)
      Set the name of a file to read properties from. Optional.
      Parameters:
      file - the file to read properties from.
    • setUnset

      public void setUnset(boolean b)
      Determines whether the property should be removed from the project. Default is false. Once removed, conditions that check for property existence will find this property does not exist.
      Parameters:
      b - set to true to remove the property from the project.
    • execute

      public void execute() throws org.apache.tools.ant.BuildException
      Execute this task.
      Overrides:
      execute in class org.apache.tools.ant.Task
      Throws:
      org.apache.tools.ant.BuildException - Description of the Exception
    • addProperties

      protected void addProperties(Properties props)
      iterate through a set of properties, resolve them, then assign them
      Parameters:
      props - The feature to be added to the Properties attribute