## org.apache.tools.ant.property
Class LocalProperties

    java.lang.Object
      java.lang.ThreadLocal<T>
          java.lang.InheritableThreadLocal<LocalPropertyStack>
              org.apache.tools.ant.property.LocalProperties

All Implemented Interfaces:
  PropertyHelper.Delegate, PropertyHelper.PropertyEvaluator, PropertyHelper.PropertySetter

    public class LocalProperties

extends java.lang.InheritableThreadLocal<LocalPropertyStack>
implements PropertyHelper.PropertyEvaluator, PropertyHelper.PropertySetter

Thread local class containing local properties.

Since:
  Ant 1.8.0

Method Summary
`void` `addLocal(java.lang.String property)` Add a local property to the current scope.
`void` `copy()` Copy the stack for a parallel thread.
`void` `enterScope()` enter the scope
`java.lang.Object` `evaluate(java.lang.String property, PropertyHelper helper)` Evaluate a property.
`void` `exitScope()` exit the scope
`static LocalProperties` `get(Project project)` Get a localproperties for the given project.
`protected LocalPropertyStack` `initialValue()` Get the initial value.
`boolean` `set(java.lang.String property, java.lang.Object value, PropertyHelper propertyHelper)` Set a property.
`boolean` `setNew(java.lang.String property, java.lang.Object value, PropertyHelper propertyHelper)` Set a *new" property.

Methods inherited from class java.lang.InheritableThreadLocal
`childValue`

Methods inherited from class java.lang.ThreadLocal
`get, remove, set`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### get

    public static LocalProperties get(Project project)

  Get a localproperties for the given project.

  Parameters:
    `project` - the project to retrieve the localproperties for.
  Returns:
    the localproperties.

### initialValue

    protected LocalPropertyStack initialValue()

  Get the initial value.

  Overrides:
    `initialValue` in class `java.lang.ThreadLocal<LocalPropertyStack>`
  Returns:
    a new localproperties stack.

### addLocal

    public void addLocal(java.lang.String property)

  Add a local property to the current scope.

  Parameters:
    `property` - the property name to add.

### enterScope

    public void enterScope()

  enter the scope

### exitScope

    public void exitScope()

  exit the scope

### copy

    public void copy()

  Copy the stack for a parallel thread. To be called from the parallel thread itself.

### evaluate

    public java.lang.Object evaluate(java.lang.String property,
                                     PropertyHelper helper)

  Evaluate a property.

  Specified by:
    `evaluate` in interface `PropertyHelper.PropertyEvaluator`
  Parameters:
    `property` - the property's String "identifier".
    `helper` - the invoking PropertyHelper.
  Returns:
    Object value.

### setNew

    public boolean setNew(java.lang.String property,
                          java.lang.Object value,
                          PropertyHelper propertyHelper)

  Set a *new" property.

  Specified by:
    `setNew` in interface `PropertyHelper.PropertySetter`
  Parameters:
    `property` - the property's String "identifier".
    `value` - the value to set.
    `propertyHelper` - the invoking PropertyHelper.
  Returns:
    true if this entity 'owns' the property.

### set

    public boolean set(java.lang.String property,
                       java.lang.Object value,
                       PropertyHelper propertyHelper)

  Set a property.

  Specified by:
    `set` in interface `PropertyHelper.PropertySetter`
  Parameters:
    `property` - the property's String "identifier".
    `value` - the value to set.
    `propertyHelper` - the invoking PropertyHelper.
  Returns:
    true if this entity 'owns' the property.