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>