Package org.apache.tools.ant
Class AntTypeDefinition
java.lang.Object
org.apache.tools.ant.AntTypeDefinition
- Direct Known Subclasses:
- PreSetDef.PreSetDefinition
This 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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidcheckClass(Project project) Checks if the attributes are correct.Create an instance of the definition.Get the classloader for this definition.Get the classname of the definition.Class<?> getExposedClass(Project project) Get the exposed class for this definition.getName()Return the definition's name.Class<?> getTypeClass(Project project) Get the definition class.<T> TinnerCreateAndSet(Class<T> newclass, Project project) Inner implementation of thecreateAndSet(Project, Class)logic, with no exception catching.Class<?> Try and load a class, with no attempt to catch any fault.booleanGet the restrict attribute.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.voidSet 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.voidSet 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.
- 
Constructor Details- 
AntTypeDefinitionpublic AntTypeDefinition()
 
- 
- 
Method Details- 
setRestrictpublic void setRestrict(boolean restrict) Set the restrict attribute.- Parameters:
- restrict- the value to set.
 
- 
isRestrictpublic boolean isRestrict()Get the restrict attribute.- Returns:
- the restrict attribute.
 
- 
setNameSet the definition's name.- Parameters:
- name- the name of the definition.
 
- 
getName
- 
setClassSet the class of the definition. As a side-effect may set the classloader and classname.- Parameters:
- clazz- the class of this definition.
 
- 
setClassNameSet the classname of the definition.- Parameters:
- className- the classname of this definition.
 
- 
getClassNameGet the classname of the definition.- Returns:
- the name of the class of this definition.
 
- 
setAdapterClassSet the adapter class for this definition. This class is used to adapt the definitions class if required.- Parameters:
- adapterClass- the adapterClass.
 
- 
setAdaptToClassSet the assignable class for this definition.- Parameters:
- adaptToClass- the assignable class.
 
- 
setClassLoaderSet the classloader to use to create an instance of the definition.- Parameters:
- classLoader- the ClassLoader.
 
- 
getClassLoaderGet the classloader for this definition.- Returns:
- the classloader for this definition.
 
- 
getExposedClassGet 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
- 
innerGetTypeClassTry 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.
 
- 
create
- 
checkClassChecks 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.
 
- 
innerCreateAndSetpublic <T> T innerCreateAndSet(Class<T> newclass, Project project) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException Inner implementation of thecreateAndSet(Project, Class)logic, with no exception catching.- Type Parameters:
- T- return type of the method
- Parameters:
- newclass- class to create
- project- the project to use
- Returns:
- a newly constructed and bound instance.
- Throws:
- NoSuchMethodException- no good constructor.
- InstantiationException- cannot initialize the object.
- IllegalAccessException- cannot access the object.
- InvocationTargetException- error in invocation.
 
- 
sameDefinitionEquality 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.
 
- 
similarDefinitionSimilar 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.
 
 
-