View Javadoc

1   /***
2    * Copyright 2004 Fabrizio Giustina.
3    *
4    * Licensed under the Artistic License; you may not use this file
5    * except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://maven-taglib.sourceforge.net/license.html
9    *
10   * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
11   * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
12   * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13   */
14  package net.sf.maventaglib;
15  
16  import java.io.File;
17  
18  import javax.xml.transform.TransformerFactoryConfigurationError;
19  
20  import com.sun.tlddoc.TLDDocGenerator;
21  
22  
23  /***
24   * Plugins which generates taglibdoc documentation.
25   * @author Fabrizio Giustina
26   * @version $Id: TaglibTaglibdocPlugin.java,v 1.8 2005/08/23 12:29:52 fgiust Exp $
27   */
28  public class TaglibTaglibdocPlugin extends TaglibPlugin
29  {
30  
31      /***
32       * title for tlddoc generated documentation.
33       */
34      protected String title;
35  
36      /***
37       * TldDoc output dir.
38       */
39      protected String tldDocDir;
40  
41      /***
42       * Sets the title for tlddoc generated docs.
43       * @param docTitle title for tlddoc generated documentation.
44       */
45      public void setTitle(String docTitle)
46      {
47          this.title = docTitle;
48      }
49  
50      /***
51       * Sets the TldDoc output dir.
52       * @param dir output directory for tlddoc documentation
53       */
54      public void setTldDocDir(String dir)
55      {
56          this.tldDocDir = dir;
57      }
58  
59      /***
60       * @see net.sf.maventaglib.TaglibPlugin#execute()
61       */
62      public void execute() throws Exception
63      {
64          File srcDirFile = new File(this.srcDir);
65          File tldOutDir = new File(this.tldDocDir);
66          echo("Generating tlddoc doc from files in " + srcDirFile.getAbsolutePath());
67          TLDDocGenerator generator = new TLDDocGenerator();
68          generator.setOutputDirectory(tldOutDir);
69          generator.setQuiet(true);
70          generator.setWindowTitle(this.title);
71  
72          if (!srcDirFile.isDirectory())
73          {
74              throw new IllegalArgumentException("Not a directory: " + srcDirFile.getAbsolutePath());
75          }
76  
77          File[] files = srcDirFile.listFiles();
78          for (int i = 0; i < files.length; i++)
79          {
80              File current = files[i];
81              if (!current.isDirectory() && current.getName().toLowerCase().endsWith(".tld"))
82              {
83                  generator.addTLD(current);
84              }
85          }
86  
87          try
88          {
89              generator.generate();
90          }
91          catch (TransformerFactoryConfigurationError e)
92          {
93              this.echo("Unable to run tlddodc due to a TransformerFactoryConfigurationError: " + e.getMessage());
94          }
95      }
96  
97  }