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

# Class ProjectComponent

java.lang.Object
org.apache.tools.ant.ProjectComponent

All Implemented Interfaces:
  `Cloneable`

Direct Known Subclasses:
  `AbstractScriptComponent, BaseIfAttribute, CanCreateSymbolicLink, Commandline.Argument, Concat.TextElement, ConditionBase, DataType, FailureRecorder, FileTokenizer, HasMethod, Http, IsFalse, IsLastModified, IsReachable, IsReference, IsSet, IsTrue, Javadoc.ExtensionInfo, LineTokenizer, Matches, Message, ParserSupports, Permissions, Provider, ResourceExists, Service, Socket, StringTokenizer, Task, TokenFilter.ChainableReaderFilter, TokenFilter.ContainsString, TokenFilter.DeleteCharacters, TypeFound, XMLFragment, XSLTProcess.Factory.Attribute`

public abstract class ProjectComponent extends Object implements Cloneable
Base class for components of a project, including tasks and data types. Provides common facilities.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ProjectComponent()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### project

    @Deprecated protected Project project
    Deprecated.
    since 1.6.x. You should not be directly accessing this variable directly. You should access project object via the getProject() or setProject() accessor/mutators.
    Project object of this component.

  - ### location

    @Deprecated protected Location location
    Deprecated.
    since 1.6.x. You should not be accessing this variable directly. Please use the `getLocation()` method.
    Location within the build file of this task definition.

  - ### description

    @Deprecated protected String description
    Deprecated.
    since 1.6.x. You should not be accessing this variable directly.
    Description of this component, if any.

- ## Constructor Details

  - ### ProjectComponent

    public ProjectComponent()
    Sole constructor.

- ## Method Details

  - ### setProject

    public void setProject(Project project)
    Sets the project object of this component. This method is used by Project when a component is added to it so that the component has access to the functions of the project. It should not be used for any other purpose.
    Parameters:
      `project` - Project in whose scope this component belongs. Must not be `null`.

  - ### getProject

    public Project getProject()
    Returns the project to which this component belongs.
    Returns:
      the components's project.

  - ### getLocation

    public Location getLocation()
    Returns the file/location where this task was defined.
    Returns:
      the file/location where this task was defined. Should not return `null`. Location.UNKNOWN_LOCATION is used for unknown locations.
    See Also:
      - `Location.UNKNOWN_LOCATION`

  - ### setLocation

    public void setLocation(Location location)
    Sets the file/location where this task was defined.
    Parameters:
      `location` - The file/location where this task was defined. Should not be `null`--use Location.UNKNOWN_LOCATION if the location isn't known.
    See Also:
      - `Location.UNKNOWN_LOCATION`

  - ### setDescription

    public void setDescription(String desc)
    Sets a description of the current action. This may be used for logging purposes.
    Parameters:
      `desc` - Description of the current action. May be `null`, indicating that no description is available.

  - ### getDescription

    public String getDescription()
    Returns the description of the current action.
    Returns:
      the description of the current action, or `null` if no description is available.

  - ### log

    public void log(String msg)
    Logs a message with the default (INFO) priority.
    Parameters:
      `msg` - The message to be logged. Should not be `null`.

  - ### log

    public void log(String msg, int msgLevel)
    Logs a message with the given priority.
    Parameters:
      `msg` - The message to be logged. Should not be `null`.
      `msgLevel` - the message priority at which this message is to be logged.

  - ### clone

    public Object clone() throws CloneNotSupportedException
    Overrides:
      `clone` in class `Object`
    Returns:
      a shallow copy of this projectcomponent.
    Throws:
      `CloneNotSupportedException` - does not happen, but is declared to allow subclasses to do so.
    Since:
      Ant 1.7