org.apache.tools.ant

## Class ProjectComponent

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

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    AbstractScriptComponent, BaseIfAttribute, Commandline.Argument, Concat.TextElement, ConditionBase, DataType, FailureRecorder, FileTokenizer, HasMethod, Http, IsFalse, IsLastModified, IsReachable, IsReference, IsSet, IsTrue, Javadoc.ExtensionInfo, LineTokenizer, Matches, Message, ParserSupports, Provider, ResourceExists, Service, Socket, StringTokenizer, Task, TokenFilter.ChainableReaderFilter, TokenFilter.ContainsString, TokenFilter.DeleteCharacters, TypeFound, XMLFragment

      public abstract class ProjectComponent
      extends java.lang.Object
      implements java.lang.Cloneable

  Base class for components of a project, including tasks and data types. Provides common facilities.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `description` Deprecated. since 1.6.x. You should not be accessing this variable directly.
    `protected Location` | `location` Deprecated. since 1.6.x. You should not be accessing this variable directly. Please use the `getLocation()` method.
    `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.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProjectComponent()` Sole constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()`
    `java.lang.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(java.lang.String msg)` Logs a message with the default (INFO) priority.
    `void` | `log(java.lang.String msg, int msgLevel)` Logs a message with the given priority.
    `void` | `setDescription(java.lang.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 java.lang.Object

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

- - ### Field Detail

    - #### project

          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

          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

          protected java.lang.String description

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

  - ### Constructor Detail

    - #### ProjectComponent

          public ProjectComponent()

      Sole constructor.

  - ### Method Detail

    - #### 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(java.lang.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 java.lang.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(java.lang.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(java.lang.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 java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

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