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 19 /*** 20 * Generates a tag reference xdoc that can be integrated in a maven generated site. 21 * @author Fabrizio Giustina 22 * @version $Id: TaglibTagreferencePlugin.java,v 1.5 2005/08/23 12:29:52 fgiust Exp $ 23 */ 24 public class TaglibTagreferencePlugin extends TaglibPlugin 25 { 26 27 /*** 28 * Tag reference ouput file. 29 */ 30 protected String tagreference; 31 32 /*** 33 * Sets the output file name for the tag reference xdoc. 34 * @param file output file name for the tag reference xdoc 35 */ 36 public void setTagreference(String file) 37 { 38 this.tagreference = file; 39 } 40 41 /*** 42 * @see net.sf.maventaglib.TaglibPlugin#execute() 43 */ 44 public void execute() throws Exception 45 { 46 File srcDirFile = new File(srcDir); 47 if (!srcDirFile.isDirectory()) 48 { 49 throw new IllegalArgumentException("Not a directory: " + srcDirFile.getAbsolutePath()); 50 } 51 52 File[] files = srcDirFile.listFiles(); 53 for (int i = 0; i < files.length; i++) 54 { 55 File current = files[i]; 56 if (!current.isDirectory() && current.getName().toLowerCase().endsWith(".tld")) 57 { 58 String fileName = current.getName(); 59 String fullName = this.tagreference + "-" + fileName.substring(0, fileName.indexOf(".tld")) + ".xml"; 60 61 echo("Generating tag reference doc from " + fileName + ", saving as " + fullName); 62 File output = new File(fullName); 63 applyXslt(current, "/taglibdoc.xsl", output); 64 } 65 } 66 67 } 68 }