kinman 02/05/17 17:29:24 Modified: jasper2/src/share/org/apache/jasper/compiler PageInfo.java Validator.java Log: - Collect maximum tag nesting info and place it in PageInfo. Revision Changes Path 1.4 +12 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java Index: PageInfo.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PageInfo.java 6 May 2002 04:33:15 -0000 1.3 +++ PageInfo.java 18 May 2002 00:29:24 -0000 1.4 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v 1.3 2002/05/06 04:33:15 glenn Exp $ - * $Revision: 1.3 $ - * $Date: 2002/05/06 04:33:15 $ + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/PageInfo.java,v 1.4 2002/05/18 00:29:24 kinman Exp $ + * $Revision: 1.4 $ + * $Date: 2002/05/18 00:29:24 $ * * ==================================================================== * @@ -88,6 +88,7 @@ private boolean isErrorPage = false; private String errorPage = null; private String pageEncoding = null; + private int maxTagNesting = 0; PageInfo(BeanRepository beanRepository) { this.beanRepository = beanRepository; @@ -202,5 +203,13 @@ public String getPageEncoding() { return pageEncoding; + } + + public int getMaxTagNesting() { + return maxTagNesting; + } + + public void setMaxTagNesting(int maxTagNesting) { + this.maxTagNesting = maxTagNesting; } } 1.7 +34 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java Index: Validator.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- Validator.java 15 May 2002 20:42:03 -0000 1.6 +++ Validator.java 18 May 2002 00:29:24 -0000 1.7 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v 1.6 2002/05/15 20:42:03 kinman Exp $ - * $Revision: 1.6 $ - * $Date: 2002/05/15 20:42:03 $ + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Validator.java,v 1.7 2002/05/18 00:29:24 kinman Exp $ + * $Revision: 1.7 $ + * $Date: 2002/05/18 00:29:24 $ * * ==================================================================== * @@ -581,6 +581,30 @@ } } + /** + * A visitor for collection info on the page + */ + static class CollectVisitor extends Node.Visitor { + + private int maxTagNesting = 0; + private int curTagNesting = 0; + + public void visit(Node.CustomTag n) throws JasperException { + + if (curTagNesting > maxTagNesting) { + maxTagNesting = curTagNesting; + } + + curTagNesting++; + visitBody(n); + curTagNesting--; + } + + public void updatePageInfo(PageInfo pageInfo) { + pageInfo.setMaxTagNesting(maxTagNesting); + } + } + public static void validate(Compiler compiler, Node.Nodes page) throws JasperException { @@ -609,6 +633,13 @@ * (third validation step for custom tags according to JSP.10.5). */ page.visit(new TagExtraInfoVisitor(compiler)); + + /* + * Collect information about the page and update pageInfo object. + */ + CollectVisitor collectVisitor = new CollectVisitor(); + page.visit(collectVisitor); + collectVisitor.updatePageInfo(compiler.getPageInfo()); }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>