Package 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:
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
Nested Classes Modifier and Type Class Description static class
Definer.Format
Enumerated type for format attributestatic class
Definer.OnError
Enumerated type for onError attribute -
Field Summary
-
Constructor Summary
Constructors Constructor Description Definer()
-
Method Summary
Modifier and Type Method Description protected void
addDefinition(java.lang.ClassLoader al, java.lang.String name, java.lang.String classname)
Add a definition using the attributes of Definervoid
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 resourcevoid
setName(java.lang.String name)
Name of the definitionvoid
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
-
Constructor Details
-
Definer
public Definer()
-
-
Method Details
-
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
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
- anOnError
value
-
setFormat
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
Run the definition.- Overrides:
execute
in classTask
- 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 useurl
- 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 benull
.- 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 BuildExceptionAdd a definition using the attributes of Definer- Parameters:
al
- the ClassLoader to usename
- the name of the definitionclassname
- the classname of the definition- Throws:
BuildException
- if an error occurs
-