001: /*
002: * The Apache Software License, Version 1.1
003: *
004: * Copyright (c) 1999 The Apache Software Foundation. All rights
005: * reserved.
006: *
007: * Redistribution and use in source and binary forms, with or without
008: * modification, are permitted provided that the following conditions
009: * are met:
010: *
011: * 1. Redistributions of source code must retain the above copyright
012: * notice, this list of conditions and the following disclaimer.
013: *
014: * 2. Redistributions in binary form must reproduce the above copyright
015: * notice, this list of conditions and the following disclaimer in
016: * the documentation and/or other materials provided with the
017: * distribution.
018: *
019: * 3. The end-user documentation included with the redistribution, if
020: * any, must include the following acknowlegement:
021: * "This product includes software developed by the
022: * Apache Software Foundation (http://www.apache.org/)."
023: * Alternately, this acknowlegement may appear in the software itself,
024: * if and wherever such third-party acknowlegements normally appear.
025: *
026: * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
027: * Foundation" must not be used to endorse or promote products derived
028: * from this software without prior written permission. For written
029: * permission, please contact apache@apache.org.
030: *
031: * 5. Products derived from this software may not be called "Apache"
032: * nor may "Apache" appear in their names without prior written
033: * permission of the Apache Group.
034: *
035: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
036: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
037: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
038: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
039: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
040: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
041: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
042: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
043: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
044: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
045: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
046: * SUCH DAMAGE.
047: * ====================================================================
048: *
049: * This software consists of voluntary contributions made by many
050: * individuals on behalf of the Apache Software Foundation. For more
051: * information on the Apache Software Foundation, please see
052: * <http://www.apache.org/>.
053: *
054: */
055:
056: package com.sun.portal.providers.jsp.jasper3.jasper.compiler;
057:
058: import java.util.Hashtable;
059: import java.util.Vector;
060: import java.util.Enumeration;
061: import java.util.StringTokenizer;
062: import java.io.IOException;
063: import java.io.FileNotFoundException;
064: import java.io.File;
065: import java.io.ObjectOutputStream;
066: import java.io.FileOutputStream;
067: import java.net.URL;
068: import java.net.MalformedURLException;
069:
070: import javax.servlet.jsp.tagext.TagInfo;
071: import javax.servlet.jsp.tagext.TagLibraryInfo;
072:
073: import com.sun.portal.providers.jsp.jasper3.jasper.JasperException;
074: import com.sun.portal.providers.jsp.jasper3.jasper.Constants;
075: import com.sun.portal.providers.jsp.jasper3.jasper.JspCompilationContext;
076:
077: /**
078: * Generates original "Jakarta"-style comments
079: *
080: * @author Mandar Raje [patch submitted by Yury Kamen]
081: */
082: public class JakartaCommentGenerator implements CommentGenerator {
083:
084: /**
085: * Generates "start-of the JSP-embedded code block" comment
086: *
087: * @param out The ServletWriter
088: * @param start Start position of the block
089: * @param stop End position of the block
090: * @exception JasperException
091: */
092: public void generateStartComment(Generator generator,
093: ServletWriter out, Mark start, Mark stop)
094: throws JasperException {
095: String html = "";
096: if (generator instanceof CharDataGenerator) {
097: html = "// HTML ";
098: }
099: if (start != null && stop != null) {
100: if (start.fileid == stop.fileid) {
101: String fileName = out.quoteString(start.getFile());
102: out.println(html + "// begin [file=" + fileName
103: + ";from=" + start.toShortString() + ";to="
104: + stop.toShortString() + "]");
105: } else {
106: out.println(html + "// begin [from=" + start + ";to="
107: + stop + "]");
108: }
109: } else {
110: out.println(html + "// begin");
111: }
112:
113: out.pushIndent();
114: }
115:
116: /**
117: * Generates "end-of the JSP-embedded code block" comment
118: *
119: * @param out The ServletWriter
120: * @param start Start position of the block
121: * @param stop End position of the block
122: * @exception JasperException
123: */
124: public void generateEndComment(Generator generator,
125: ServletWriter out, Mark start, Mark stop)
126: throws JasperException {
127: out.popIndent();
128: out.println("// end");
129: }
130: }
131: // String fileName = "null";
132: // if(start != null) {
133: // fileName = out.quoteString(start.getFile());
134: // }
135: // String startString = "null";
136: // if(null != start) {
137: // startString = start.toShortString();
138: // }
139:
140: // String stopString = "null";
141: // if(null != stop) {
142: // stopString = stop.toShortString();
143: // }
144: // out.println("// begin [file="+fileName+";from="+startString+";to="+stopString+"]");
|