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 * Converter between dfferent versions of tlds. 21 * @author Fabrizio Giustina 22 * @version $Id: TaglibConvertPlugin.java,v 1.5 2005/08/23 12:29:52 fgiust Exp $ 23 */ 24 public class TaglibConvertPlugin extends TaglibPlugin 25 { 26 27 /*** 28 * output version for the converted tld. 29 */ 30 private String outputVersion; 31 32 /*** 33 * input version for the converted tld. 34 */ 35 private String inputVersion; 36 37 /*** 38 * Sets the output version for the converted tld. 39 * @param version output version for the converted tld 40 */ 41 public void setOutputVersion(String version) 42 { 43 this.outputVersion = version; 44 } 45 46 /*** 47 * Sets the input version for the converted tld. 48 * @param version input version for the converted tld 49 */ 50 public void setInputVersion(String version) 51 { 52 this.inputVersion = version; 53 } 54 55 /*** 56 * @see net.sf.maventaglib.TaglibPlugin#execute() 57 */ 58 public void execute() throws Exception 59 { 60 61 if (this.inputVersion == null) 62 { 63 throw new IllegalArgumentException("Input version not set."); 64 } 65 if (this.outputVersion == null) 66 { 67 throw new IllegalArgumentException("Output version not set."); 68 } 69 70 String stylesheet = null; 71 72 if ("1.2".equals(this.inputVersion) && "1.1".equals(this.outputVersion)) 73 { 74 stylesheet = "/tld1_2-tld1_1.xsl"; 75 } 76 else if ("1.1".equals(this.inputVersion) && "1.2".equals(this.outputVersion)) 77 { 78 stylesheet = "/tld1_1-tld1_2.xsl"; 79 } 80 else if ("1.2".equals(this.inputVersion) && "2.0".equals(this.outputVersion)) 81 { 82 stylesheet = "/tld1_2-tld2_0.xsl"; 83 } 84 else 85 { 86 throw new IllegalArgumentException("Conversion from version " 87 + this.inputVersion 88 + " to " 89 + this.outputVersion 90 + " not supported"); 91 } 92 93 File inputFile = new File(srcDir + "/" + tldSrc); 94 File outputFile = new File(outputDir + "/" + tldOut); 95 96 echo("Generating " + tldOut + " [" + this.outputVersion + "] from " + tldSrc + " [" + this.inputVersion + "]"); 97 applyXslt(inputFile, stylesheet, outputFile); 98 } 99 100 }