Package org.apache.tools.ant
Class AntTypeDefinition
- java.lang.Object
-
- org.apache.tools.ant.AntTypeDefinition
-
- Direct Known Subclasses:
PreSetDef.PreSetDefinition
public class AntTypeDefinition extends java.lang.ObjectThis class contains all the information on a particular ant type, the classname, adapter and the class it should be assignable from. This type replaces the task/datatype split of pre ant 1.6.
-
-
Constructor Summary
Constructors Constructor Description AntTypeDefinition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckClass(Project project)Checks if the attributes are correct.java.lang.Objectcreate(Project project)Create an instance of the definition.java.lang.ClassLoadergetClassLoader()Get the classloader for this definition.java.lang.StringgetClassName()Get the classname of the definition.java.lang.Class<?>getExposedClass(Project project)Get the exposed class for this definition.java.lang.StringgetName()Return the definition's name.java.lang.Class<?>getTypeClass(Project project)Get the definition class.<T> TinnerCreateAndSet(java.lang.Class<T> newclass, Project project)Inner implementation of thecreateAndSet(Project, Class)logic, with no exception catching.java.lang.Class<?>innerGetTypeClass()Try and load a class, with no attempt to catch any fault.booleanisRestrict()Get the restrict attribute.booleansameDefinition(AntTypeDefinition other, Project project)Equality method for this definition (assumes the names are the same).voidsetAdapterClass(java.lang.Class<?> adapterClass)Set the adapter class for this definition.voidsetAdaptToClass(java.lang.Class<?> adaptToClass)Set the assignable class for this definition.voidsetClass(java.lang.Class<?> clazz)Set the class of the definition.voidsetClassLoader(java.lang.ClassLoader classLoader)Set the classloader to use to create an instance of the definition.voidsetClassName(java.lang.String className)Set the classname of the definition.voidsetName(java.lang.String name)Set the definition's name.voidsetRestrict(boolean restrict)Set the restrict attribute.booleansimilarDefinition(AntTypeDefinition other, Project project)Similar definition; used to compare two definitions defined twice with the same name and the same types.
-
-
-
Method Detail
-
setRestrict
public void setRestrict(boolean restrict)
Set the restrict attribute.- Parameters:
restrict- the value to set.
-
isRestrict
public boolean isRestrict()
Get the restrict attribute.- Returns:
- the restrict attribute.
-
setName
public void setName(java.lang.String name)
Set the definition's name.- Parameters:
name- the name of the definition.
-
getName
public java.lang.String getName()
Return the definition's name.- Returns:
- the name of the definition.
-
setClass
public void setClass(java.lang.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.
-
setClassName
public void setClassName(java.lang.String className)
Set the classname of the definition.- Parameters:
className- the classname of this definition.
-
getClassName
public java.lang.String getClassName()
Get the classname of the definition.- Returns:
- the name of the class of this definition.
-
setAdapterClass
public void setAdapterClass(java.lang.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(java.lang.Class<?> adaptToClass)
Set the assignable class for this definition.- Parameters:
adaptToClass- the assignable class.
-
setClassLoader
public void setClassLoader(java.lang.ClassLoader classLoader)
Set the classloader to use to create an instance of the definition.- Parameters:
classLoader- the ClassLoader.
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Get the classloader for this definition.- Returns:
- the classloader for this definition.
-
getExposedClass
public java.lang.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 - may return null if unable to load the class
-
getTypeClass
public java.lang.Class<?> getTypeClass(Project project)
Get the definition class.- Parameters:
project- the current project.- Returns:
- the type of the definition.
-
innerGetTypeClass
public java.lang.Class<?> innerGetTypeClass() throws java.lang.ClassNotFoundExceptionTry and load a class, with no attempt to catch any fault.- Returns:
- the class that implements this component
- Throws:
java.lang.ClassNotFoundException- if the class cannot be found.java.lang.NoClassDefFoundError- if the there is an error finding the class.
-
create
public java.lang.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.
-
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 adapter
- if the type can be used with the adapter class
- Parameters:
project- the current project.
-
innerCreateAndSet
public <T> T innerCreateAndSet(java.lang.Class<T> newclass, Project project) throws java.lang.NoSuchMethodException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetExceptionInner implementation of thecreateAndSet(Project, Class)logic, with no exception catching.- Type Parameters:
T- return type of the method- Parameters:
newclass- class to createproject- the project to use- Returns:
- a newly constructed and bound instance.
- Throws:
java.lang.NoSuchMethodException- no good constructor.java.lang.InstantiationException- cannot initialize the object.java.lang.IllegalAccessException- cannot access the object.java.lang.reflect.InvocationTargetException- error in invocation.
-
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.
-
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.
-
-