Class 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
  • Constructor Details

  • 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

      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
    • setFormat

      public void setFormat​(Definer.Format format)
      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

      public void execute() throws BuildException
      Run the definition.
      Overrides:
      execute in class Task
      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 use
      url - 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 be null.
      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 BuildException
      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