Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.apache.jasper.compiler;
 
 
 class Dumper {
 
     static class DumpVisitor extends Node.Visitor {
 	private int indent = 0;
 
 	private String getAttributes(Attributes attrs) {
 	    if (attrs == null)
 		return "";
 
 	    StringBuilder buf = new StringBuilder();
 	    for (int i=0; i < attrs.getLength(); i++) {
 		buf.append(" " + attrs.getQName(i) + "=\""
 			   + attrs.getValue(i) + "\"");
 	    }
 	    return buf.toString();
 	}
 
 	private void printString(String str) {
 	    printIndent();
 	    ..print(str);
 	}
 
 	private void printString(String prefixchar[] charsString suffix) {
 	    String str = null;
 	    if (chars != null) {
 		str = new String(chars);
 	    }
 	    printString(prefixstrsuffix);
 	}
 	     
 	private void printString(String prefixString strString suffix) {
 	    printIndent();
 	    if (str != null) {
 		..print(prefix + str + suffix);
 	    } else {
 		..print(prefix + suffix);
 	    }
 	}
 
 	private void printAttributes(String prefixAttributes attrs,
 				     String suffix) {
 	    printString(prefixgetAttributes(attrs), suffix);
 	}
 
 	private void dumpBody(Node nthrows JasperException {
 	    Node.Nodes page = n.getBody();
 	    if (page != null) {
 //		indent++;
 		page.visit(this);
 //		indent--;
 	    }
         }
 
         public void visit(Node.PageDirective nthrows JasperException {
 	    printAttributes("<%@ page"n.getAttributes(), "%>");
         }
 
         public void visit(Node.TaglibDirective nthrows JasperException {
 	    printAttributes("<%@ taglib"n.getAttributes(), "%>");
         }
 
         public void visit(Node.IncludeDirective nthrows JasperException {
 	    printAttributes("<%@ include"n.getAttributes(), "%>");
 	    dumpBody(n);
         }
 
         public void visit(Node.Comment nthrows JasperException {
 	    printString("<%--"n.getText(), "--%>");
         }
 
         public void visit(Node.Declaration nthrows JasperException {
 	    printString("<%!"n.getText(), "%>");
         }
 
         public void visit(Node.Expression nthrows JasperException {
 	    printString("<%="n.getText(), "%>");
         }
        public void visit(Node.Scriptlet nthrows JasperException {
	    printString("<%"n.getText(), "%>");
        }
        public void visit(Node.IncludeAction nthrows JasperException {
	    printAttributes("<jsp:include"n.getAttributes(), ">");
	    dumpBody(n);
            printString("</jsp:include>");
        }
        public void visit(Node.ForwardAction nthrows JasperException {
	    printAttributes("<jsp:forward"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:forward>");
        }
        public void visit(Node.GetProperty nthrows JasperException {
	    printAttributes("<jsp:getProperty"n.getAttributes(), "/>");
        }
        public void visit(Node.SetProperty nthrows JasperException {
	    printAttributes("<jsp:setProperty"n.getAttributes(), ">");
            dumpBody(n);
            printString("</jsp:setProperty>");
        }
        public void visit(Node.UseBean nthrows JasperException {
	    printAttributes("<jsp:useBean"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:useBean>");
        }
        public void visit(Node.PlugIn nthrows JasperException {
	    printAttributes("<jsp:plugin"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:plugin>");
	}
        
        public void visit(Node.ParamsAction nthrows JasperException {
	    printAttributes("<jsp:params"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:params>");
        }
        
        public void visit(Node.ParamAction nthrows JasperException {
	    printAttributes("<jsp:param"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:param>");
        }
        
        public void visit(Node.NamedAttribute nthrows JasperException {
	    printAttributes("<jsp:attribute"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:attribute>");
        }
        public void visit(Node.JspBody nthrows JasperException {
	    printAttributes("<jsp:body"n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</jsp:body>");
        }
        
        public void visit(Node.ELExpression nthrows JasperException {
	    printString"${" + new Stringn.getText() ) + "}" );
        }
        public void visit(Node.CustomTag nthrows JasperException {
	    printAttributes("<" + n.getQName(), n.getAttributes(), ">");
	    dumpBody(n);
	    printString("</" + n.getQName() + ">");
        }
	public void visit(Node.UninterpretedTag nthrows JasperException {
	    String tag = n.getQName();
	    printAttributes("<"+tagn.getAttributes(), ">");
	    dumpBody(n);
	    printString("</" + tag + ">");
        }
	public void visit(Node.TemplateText nthrows JasperException {
	    printString(new String(n.getText()));
	}
	private void printIndent() {
	    for (int i=0; i < i++) {
		..print("  ");
	    }
	}
    }
    public static void dump(Node n) {
	try {
	    n.accept(new DumpVisitor());	
catch (JasperException e) {
	    e.printStackTrace();
	}
    }
    public static void dump(Node.Nodes page) {
	try {
	    page.visit(new DumpVisitor());
catch (JasperException e) {
	    e.printStackTrace();
	}
    }
New to GrepCode? Check out our FAQ X