org.apache.tools.ant.taskdefs

Class Definer

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 classDefiner.Format
Enumerated type for format attribute
static classDefiner.OnError
Enumerated type for onError attribute
Method Summary
protected voidaddDefinition(ClassLoader al, String name, String classname)
Add a definition using the attributes of Definer
voidexecute()
Run the definition.
StringgetClassname()
Returns the classname of the object we are defining.
FilegetFile()
StringgetName()
StringgetResource()
protected voidloadProperties(ClassLoader al, URL url)
Load type definitions as properties from a URL.
static StringmakeResourceFromURI(String uri)
This is where the logic to map from a URI to an antlib resource is kept.
voidsetAdapter(String adapter)
Set the class name of the adapter class.
protected voidsetAdapterClass(Class adapterClass)
Set the adapter class.
voidsetAdaptTo(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 voidsetAdaptToClass(Class adaptToClass)
Set the class for adaptToClass, to be used by derived classes, used instead of the adaptTo attribute.
voidsetAntlib(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.
voidsetClassname(String classname)
The full class name of the object being defined.
voidsetFile(File file)
Name of the property file to load ant name/classname pairs from.
voidsetFormat(Definer.Format format)
Sets the format of the file or resource
voidsetName(String name)
Name of the definition
voidsetOnError(Definer.OnError onError)
What to do if there is an error in loading the class.
voidsetResource(String res)
Name of the property resource to load ant name/classname pairs from.

Method Detail

addDefinition

protected void addDefinition(ClassLoader al, String name, String classname)
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

execute

public void execute()
Run the definition.

Throws: BuildException if an error occurs

getClassname

public String getClassname()
Returns the classname of the object we are defining. May be null.

Returns: the class name

getFile

public File getFile()

Returns: the file containing definitions

getName

public String getName()

Returns: the name for this definition

getResource

public String getResource()

Returns: the resource containing definitions

loadProperties

protected void loadProperties(ClassLoader al, URL url)
Load type definitions as properties from a URL.

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

makeResourceFromURI

public static String makeResourceFromURI(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

setAdapter

public void setAdapter(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(Class adapterClass)
Set the adapter class.

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

setAdaptTo

public void setAdaptTo(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(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.

setAntlib

public void setAntlib(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.

setClassname

public void setClassname(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

setFile

public void setFile(File file)
Name of the property file to load ant name/classname pairs from.

Parameters: file the file

setFormat

public void setFormat(Definer.Format format)
Sets the format of the file or resource

Parameters: format the enumerated value - xml or properties

setName

public void setName(String name)
Name of the definition

Parameters: name the name of the definition

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

    setResource

    public void setResource(String res)
    Name of the property resource to load ant name/classname pairs from.

    Parameters: res the resource to use