Class ACTask

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class ACTask
    extends org.apache.tools.ant.Task
    Annotation compiler ant task.

    This task reads annotation classes and generate strongly-typed writers.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ACTask.Classes
      Nested <classes> elements.
      static class  ACTask.Endorse
      Nested <endorse> elements.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private org.apache.tools.ant.types.Path classpath
      Used to load additional user-specified classes.
      private JCodeModel codeModel
      Generated interfaces go into this codeModel.
      private java.util.List<java.net.URL> endorsedJars  
      private java.io.File output
      Output directory
      private java.util.List<ACTask.Classes> patterns  
      private JPackage pkg
      The writers will be generated into this package.
      private java.util.Map<java.lang.Class,​JDefinedClass> queue
      Map from annotation classes to their writers.
      private java.lang.ClassLoader userLoader
      Used during the build to load annotation classes.
      • Fields inherited from class org.apache.tools.ant.Task

        target, taskName, taskType, wrapper
      • Fields inherited from class org.apache.tools.ant.ProjectComponent

        description, location, project
    • Constructor Summary

      Constructors 
      Constructor Description
      ACTask()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addConfiguredClasses​(ACTask.Classes c)
      List of classes to be handled
      void addConfiguredEndorse​(ACTask.Endorse e)
      List of endorsed jars
      org.apache.tools.ant.types.Path createClasspath()
      Nested <classpath> element.
      void execute()  
      private static java.lang.String getShortName​(java.lang.String className)
      Gets the short name from a fully-qualified name.
      private void process​(java.lang.String name, long timestamp)
      Process a file.
      private void processDir​(java.io.File dir, java.lang.String prefix)
      Visits a directory and looks for classes that match the specified pattern.
      private void processJar​(java.io.File jarfile)
      Visits a jar fil and looks for classes that match the specified pattern.
      private void queue​(java.lang.String className, long timestamp)
      Queues a file for generation.
      void setClasspath​(org.apache.tools.ant.types.Path cp)
      Nested <classpath> element.
      void setClasspathRef​(org.apache.tools.ant.types.Reference r)  
      void setDestdir​(java.io.File output)  
      void setPackage​(java.lang.String pkgName)  
      void setProject​(org.apache.tools.ant.Project project)  
      • Methods inherited from class org.apache.tools.ant.Task

        bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, 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
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • classpath

        private final org.apache.tools.ant.types.Path classpath
        Used to load additional user-specified classes.
      • endorsedJars

        private final java.util.List<java.net.URL> endorsedJars
      • userLoader

        private java.lang.ClassLoader userLoader
        Used during the build to load annotation classes.
      • codeModel

        private JCodeModel codeModel
        Generated interfaces go into this codeModel.
      • pkg

        private JPackage pkg
        The writers will be generated into this package.
      • output

        private java.io.File output
        Output directory
      • queue

        private final java.util.Map<java.lang.Class,​JDefinedClass> queue
        Map from annotation classes to their writers.
    • Constructor Detail

      • ACTask

        public ACTask()
    • Method Detail

      • setProject

        public void setProject​(org.apache.tools.ant.Project project)
        Overrides:
        setProject in class org.apache.tools.ant.ProjectComponent
      • setPackage

        public void setPackage​(java.lang.String pkgName)
      • setClasspath

        public void setClasspath​(org.apache.tools.ant.types.Path cp)
        Nested <classpath> element.
      • createClasspath

        public org.apache.tools.ant.types.Path createClasspath()
        Nested <classpath> element.
      • setClasspathRef

        public void setClasspathRef​(org.apache.tools.ant.types.Reference r)
      • setDestdir

        public void setDestdir​(java.io.File output)
      • addConfiguredClasses

        public void addConfiguredClasses​(ACTask.Classes c)
        List of classes to be handled
      • addConfiguredEndorse

        public void addConfiguredEndorse​(ACTask.Endorse e)
        List of endorsed jars
      • execute

        public void execute()
                     throws org.apache.tools.ant.BuildException
        Overrides:
        execute in class org.apache.tools.ant.Task
        Throws:
        org.apache.tools.ant.BuildException
      • processJar

        private void processJar​(java.io.File jarfile)
        Visits a jar fil and looks for classes that match the specified pattern.
      • processDir

        private void processDir​(java.io.File dir,
                                java.lang.String prefix)
        Visits a directory and looks for classes that match the specified pattern.
        Parameters:
        prefix - the package name prefix like "" or "foo/bar/"
      • process

        private void process​(java.lang.String name,
                             long timestamp)
        Process a file.
        Parameters:
        name - such as "javax/xml/bind/Abc.class"
      • queue

        private void queue​(java.lang.String className,
                           long timestamp)
        Queues a file for generation.
      • getShortName

        private static java.lang.String getShortName​(java.lang.String className)
        Gets the short name from a fully-qualified name.