You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2002/05/18 02:29:24 UTC
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler PageInfo.java Validator.java
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: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>