org.apache.tools.ant

Class AntTypeDefinition

public class AntTypeDefinition extends Object

This class contains all the information on a particular ant type, the classname, adaptor and the class it should be assignable from. This type replaces the task/datatype split of pre ant 1.6.
Method Summary
voidcheckClass(Project project)
Checks if the attributes are correct.
Objectcreate(Project project)
Create an instance of the definition.
ClassLoadergetClassLoader()
Get the classloader for this definition.
StringgetClassName()
Get the classname of the definition.
ClassgetExposedClass(Project project)
Get the exposed class for this definition.
StringgetName()
Return the definition's name.
ClassgetTypeClass(Project project)
Get the definition class.
ObjectinnerCreateAndSet(Class newclass, Project project)
Inner implementation of the AntTypeDefinition logic, with no exception catching
ClassinnerGetTypeClass()
Try and load a class, with no attempt to catch any fault.
booleansameDefinition(AntTypeDefinition other, Project project)
Equality method for this definition (assumes the names are the same).
voidsetAdapterClass(Class adapterClass)
Set the adapter class for this definition.
voidsetAdaptToClass(Class adaptToClass)
Set the assignable class for this definition.
voidsetClass(Class clazz)
Set the class of the definition.
voidsetClassLoader(ClassLoader classLoader)
Set the classloader to use to create an instance of the definition.
voidsetClassName(String className)
Set the classname of the definition.
voidsetName(String name)
Set the definition's name.
booleansimilarDefinition(AntTypeDefinition other, Project project)
Similar definition; used to compare two definitions defined twice with the same name and the same types.

Method Detail

checkClass

public void checkClass(Project project)
Checks if the attributes are correct.
  • if the class can be created.
  • if an adapter class can be created
  • if the type is assignable from adapto
  • if the type can be used with the adapter class
  • Parameters: project the current project.

    create

    public Object create(Project project)
    Create an instance of the definition. The instance may be wrapped in a proxy class.

    Parameters: project the current project.

    Returns: the created object.

    getClassLoader

    public ClassLoader getClassLoader()
    Get the classloader for this definition.

    Returns: the classloader for this definition.

    getClassName

    public String getClassName()
    Get the classname of the definition.

    Returns: the name of the class of this definition.

    getExposedClass

    public Class getExposedClass(Project project)
    Get the exposed class for this definition. This will be a proxy class (adapted class) if there is an adapter class and the definition class is not assignable from the assignable class.

    Parameters: project the current project.

    Returns: the exposed class.

    getName

    public String getName()
    Return the definition's name.

    Returns: the name of the definition.

    getTypeClass

    public Class getTypeClass(Project project)
    Get the definition class.

    Parameters: project the current project.

    Returns: the type of the definition.

    innerCreateAndSet

    public Object innerCreateAndSet(Class newclass, Project project)
    Inner implementation of the AntTypeDefinition logic, with no exception catching

    Parameters: newclass class to create project the project to use

    Returns: a newly constructed and bound instance.

    Throws: NoSuchMethodException no good construtor. InstantiationException cannot initialize the object. IllegalAccessException cannot access the object. InvocationTargetException error in invocation.

    innerGetTypeClass

    public Class innerGetTypeClass()
    Try and load a class, with no attempt to catch any fault.

    Returns: the class that implements this component

    Throws: ClassNotFoundException if the class cannot be found. NoClassDefFoundError if the there is an error finding the class.

    sameDefinition

    public boolean sameDefinition(AntTypeDefinition other, Project project)
    Equality method for this definition (assumes the names are the same).

    Parameters: other another definition. project the project the definition.

    Returns: true if the definitions are the same.

    setAdapterClass

    public void setAdapterClass(Class adapterClass)
    Set the adapter class for this definition. This class is used to adapt the definitions class if required.

    Parameters: adapterClass the adapterClass.

    setAdaptToClass

    public void setAdaptToClass(Class adaptToClass)
    Set the assignable class for this definition.

    Parameters: adaptToClass the assignable class.

    setClass

    public void setClass(Class clazz)
    Set the class of the definition. As a side-effect may set the classloader and classname.

    Parameters: clazz the class of this definition.

    setClassLoader

    public void setClassLoader(ClassLoader classLoader)
    Set the classloader to use to create an instance of the definition.

    Parameters: classLoader the ClassLoader.

    setClassName

    public void setClassName(String className)
    Set the classname of the definition.

    Parameters: className the classname of this definition.

    setName

    public void setName(String name)
    Set the definition's name.

    Parameters: name the name of the definition.

    similarDefinition

    public boolean similarDefinition(AntTypeDefinition other, Project project)
    Similar definition; used to compare two definitions defined twice with the same name and the same types. The classloader may be different but have the same path so #sameDefinition cannot be used.

    Parameters: other the definition to compare to. project the current project.

    Returns: true if the definitions are the same.