Reference (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.types, class: Reference

# Class Reference

java.lang.Object
org.apache.tools.ant.types.Reference

Direct Known Subclasses:
  `Ant.Reference`

public class Reference extends Object
Class to hold a reference to another object in the project.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Reference()`
  Deprecated.
  since 1.7.
  `Reference(String id)`
  Deprecated.
  since 1.7.
  `Reference(Project p, String id)`
  Create a reference to a named ID in a particular project.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Project`
  `getProject()`
  Get the associated project, if any; may be null.
  `<T> T`
  `getReferencedObject()`
  Resolve the reference, looking in the associated project.
  `<T> T`
  `getReferencedObject(Project fallback)`
  Resolve the reference, using the associated project if it set, otherwise use the passed in project.
  `String`
  `getRefId()`
  Get the reference id of this reference.
  `void`
  `setProject(Project p)`
  Set the associated project.
  `void`
  `setRefId(String id)`
  Set the reference id.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Reference

    @Deprecated public Reference()
    Deprecated.
    since 1.7. Please use `Reference(Project,String)` instead.
    Create a reference.

  - ### Reference

    @Deprecated public Reference(String id)
    Deprecated.
    since 1.7. Please use `Reference(Project,String)` instead.
    Create a reference to a named ID.
    Parameters:
      `id` - the name of this reference

  - ### Reference

    public Reference(Project p, String id)
    Create a reference to a named ID in a particular project.
    Parameters:
      `p` - the project this reference is associated with
      `id` - the name of this reference
    Since:
      Ant 1.6.3

- ## Method Details

  - ### setRefId

    public void setRefId(String id)
    Set the reference id. Should not normally be necessary; use `Reference(Project, String)`.
    Parameters:
      `id` - the reference id to use

  - ### getRefId

    public String getRefId()
    Get the reference id of this reference.
    Returns:
      the reference id

  - ### setProject

    public void setProject(Project p)
    Set the associated project. Should not normally be necessary; use `Reference(Project,String)`.
    Parameters:
      `p` - the project to use
    Since:
      Ant 1.6.3

  - ### getProject

    public Project getProject()
    Get the associated project, if any; may be null.
    Returns:
      the associated project
    Since:
      Ant 1.6.3

  - ### getReferencedObject

    public <T> T getReferencedObject(Project fallback) throws BuildException
    Resolve the reference, using the associated project if it set, otherwise use the passed in project.
    Type Parameters:
      `T` - desired object type
    Parameters:
      `fallback` - the fallback project to use if the project attribute of reference is not set.
    Returns:
      the dereferenced object.
    Throws:
      `BuildException` - if the reference cannot be dereferenced.

  - ### getReferencedObject

    public <T> T getReferencedObject() throws BuildException
    Resolve the reference, looking in the associated project.
    Type Parameters:
      `T` - desired object type
    Returns:
      the dereferenced object.
    Throws:
      `BuildException` - if the project is null or the reference cannot be dereferenced
    Since:
      Ant 1.6.3
    See Also:
      - `Project.getReference(String)`