org.apache.tools.ant.taskdefs
Class Definer

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.AntlibDefinition
              extended by org.apache.tools.ant.taskdefs.DefBase
                  extended by org.apache.tools.ant.taskdefs.Definer
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
Componentdef, 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.
protected  void setRestrict(boolean restrict)
          The restrict attribute.
 
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

setRestrict

protected void setRestrict(boolean restrict)
The restrict attribute. If this is true, only use this definition in add(X).

Parameters:
restrict - the value to set.

setOnError

public void setOnError(Definer.OnError onError)
What to do if there is an error in loading the class.

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 adaptor.

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