## org.apache.tools.ant.taskdefs
Class Definer

    java.lang.Object
      org.apache.tools.ant.ProjectComponent
          org.apache.tools.ant.Task
              org.apache.tools.ant.taskdefs.AntlibDefinition
                  org.apache.tools.ant.taskdefs.DefBase
                      org.apache.tools.ant.taskdefs.Definer

All Implemented Interfaces:
  java.lang.Cloneable

Direct Known Subclasses:
  Typedef

    public abstract class Definer

extends DefBase

Base class for Taskdef and Typedef - handles all the attributes for Typedef. The uri and class handling is handled by DefBase

Since:
  Ant 1.4

Nested Class Summary
`static class` `Definer.Format` Enumerated type for format attribute
`static class` `Definer.OnError` Enumerated type for onError attribute

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
`Definer()`

Method Summary
`protected void` `addDefinition(java.lang.ClassLoader al, java.lang.String name, java.lang.String classname)` Add a definition using the attributes of Definer
`void` `execute()` Run the definition.
`java.lang.String` `getClassname()` Returns the classname of the object we are defining.
`java.io.File` `getFile()`
`java.lang.String` `getName()`
`java.lang.String` `getResource()`
`protected void` `loadProperties(java.lang.ClassLoader al, java.net.URL url)` Load type definitions as properties from a URL.
`static java.lang.String` `makeResourceFromURI(java.lang.String uri)` This is where the logic to map from a URI to an antlib resource is kept.
`void` `setAdapter(java.lang.String adapter)` Set the class name of the adapter class.
`protected void` `setAdapterClass(java.lang.Class adapterClass)` Set the adapter class.
`void` `setAdaptTo(java.lang.String adaptTo)` Set the classname of the class that the definition must be compatible with, either directly or by use of the adapter class.
`protected void` `setAdaptToClass(java.lang.Class adaptToClass)` Set the class for adaptToClass, to be used by derived classes, used instead of the adaptTo attribute.
`void` `setAntlib(java.lang.String antlib)` Antlib attribute, sets resource and uri.
`void` `setClassname(java.lang.String classname)` The full class name of the object being defined.
`void` `setFile(java.io.File file)` Name of the property file to load ant name/classname pairs from.
`void` `setFormat(Definer.Format format)` Sets the format of the file or resource
`void` `setName(java.lang.String name)` Name of the definition
`void` `setOnError(Definer.OnError onError)` What to do if there is an error in loading the class.
`void` `setResource(java.lang.String res)` Name of the property resource to load ant name/classname pairs from.

Methods inherited from class org.apache.tools.ant.taskdefs.DefBase
`createClasspath, createLoader, getClasspath, getClasspathId, getLoaderId, hasCpDelegate, init, isReverseLoader, setClasspath, setClasspathRef, setLoaderRef, setReverseLoader`

Methods inherited from class org.apache.tools.ant.taskdefs.AntlibDefinition
`getAntlibClassLoader, getURI, setAntlibClassLoader, setURI`

Methods inherited from class org.apache.tools.ant.Task
`bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, 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 Detail

### Definer

    public Definer()

Method Detail

### setOnError

    public void setOnError(Definer.OnError onError)

  What to do if there is an error in loading the class.
  - error - throw build exception
  - report - output at warning level
  - ignore - output at debug level

  Parameters:
    `onError` - an `OnError` value

### setFormat

    public void setFormat(Definer.Format format)

  Sets the format of the file or resource

  Parameters:
    `format` - the enumerated value - xml or properties

### getName

    public java.lang.String getName()

  Returns:
    the name for this definition

### getFile

    public java.io.File getFile()

  Returns:
    the file containing definitions

### getResource

    public java.lang.String getResource()

  Returns:
    the resource containing definitions

### execute

    public void execute()
                 throws BuildException

  Run the definition.

  Overrides:
    `execute` in class `Task`
  Throws:
    `BuildException` - if an error occurs

### makeResourceFromURI

    public static java.lang.String makeResourceFromURI(java.lang.String uri)

  This is where the logic to map from a URI to an antlib resource is kept.

  Parameters:
    `uri` - the xml namespace uri that to convert.
  Returns:
    the name of a resource. It may not exist

### loadProperties

    protected void loadProperties(java.lang.ClassLoader al,
                                  java.net.URL url)

  Load type definitions as properties from a URL.

  Parameters:
    `al` - the classloader to use
    `url` - the url to get the definitions from

### setFile

    public void setFile(java.io.File file)

  Name of the property file to load ant name/classname pairs from.

  Parameters:
    `file` - the file

### setResource

    public void setResource(java.lang.String res)

  Name of the property resource to load ant name/classname pairs from.

  Parameters:
    `res` - the resource to use

### setAntlib

    public void setAntlib(java.lang.String antlib)

  Antlib attribute, sets resource and uri. uri is set the antlib value and, resource is set to the antlib.xml resource in the classpath. For example antlib="antlib:org.acme.bland.cola" corresponds to uri="antlib:org.acme.bland.cola" resource="org/acme/bland/cola/antlib.xml". ASF Bugzilla Bug 31999

  Parameters:
    `antlib` - the value to set.

### setName

    public void setName(java.lang.String name)

  Name of the definition

  Parameters:
    `name` - the name of the definition

### getClassname

    public java.lang.String getClassname()

  Returns the classname of the object we are defining. May be `null`.

  Returns:
    the class name

### setClassname

    public void setClassname(java.lang.String classname)

  The full class name of the object being defined. Required, unless file or resource have been specified.

  Parameters:
    `classname` - the name of the class

### setAdapter

    public void setAdapter(java.lang.String adapter)

  Set the class name of the adapter class. An adapter class is used to proxy the definition class. It is used if the definition class is not assignable to the adaptto class, or if the adaptto class is not present.

  Parameters:
    `adapter` - the name of the adapter class

### setAdapterClass

    protected void setAdapterClass(java.lang.Class adapterClass)

  Set the adapter class.

  Parameters:
    `adapterClass` - the class to use to adapt the definition class

### setAdaptTo

    public void setAdaptTo(java.lang.String adaptTo)

  Set the classname of the class that the definition must be compatible with, either directly or by use of the adapter class.

  Parameters:
    `adaptTo` - the name of the adaptto class

### setAdaptToClass

    protected void setAdaptToClass(java.lang.Class adaptToClass)

  Set the class for adaptToClass, to be used by derived classes, used instead of the adaptTo attribute.

  Parameters:
    `adaptToClass` - the class for adapto.

### addDefinition

    protected void addDefinition(java.lang.ClassLoader al,
                                 java.lang.String name,
                                 java.lang.String classname)
                          throws BuildException

  Add a definition using the attributes of Definer

  Parameters:
    `al` - the ClassLoader to use
    `name` - the name of the definition
    `classname` - the classname of the definition
  Throws:
    `BuildException` - if an error occurs