Author: markt Date: Sat Jun 16 07:35:18 2007 New Revision: 547927 URL: http://svn.apache.org/viewvc?view=rev&rev=547927 Log: Tabs -> 8 spaces.
Modified: tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/ELFunctionMapper.java Modified: tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/ELFunctionMapper.java URL: http://svn.apache.org/viewvc/tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/ELFunctionMapper.java?view=diff&rev=547927&r1=547926&r2=547927 ============================================================================== --- tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/ELFunctionMapper.java (original) +++ tomcat/jasper/tc5.5.x/src/share/org/apache/jasper/compiler/ELFunctionMapper.java Sat Jun 16 07:35:18 2007 @@ -42,22 +42,22 @@ * @param page The current compilation unit. */ public static void map(Compiler compiler, Node.Nodes page) - throws JasperException { + throws JasperException { - currFunc = 0; - ELFunctionMapper map = new ELFunctionMapper(); - map.ds = new StringBuffer(); - map.ss = new StringBuffer(); - - page.visit(map.new ELFunctionVisitor()); - - // Append the declarations to the root node - String ds = map.ds.toString(); - if (ds.length() > 0) { - Node root = page.getRoot(); - new Node.Declaration(map.ss.toString(), null, root); - new Node.Declaration("static {\n" + ds + "}\n", null, root); - } + currFunc = 0; + ELFunctionMapper map = new ELFunctionMapper(); + map.ds = new StringBuffer(); + map.ss = new StringBuffer(); + + page.visit(map.new ELFunctionVisitor()); + + // Append the declarations to the root node + String ds = map.ds.toString(); + if (ds.length() > 0) { + Node root = page.getRoot(); + new Node.Declaration(map.ss.toString(), null, root); + new Node.Declaration("static {\n" + ds + "}\n", null, root); + } } /** @@ -65,182 +65,182 @@ * for functions, and if found functions mappers are created. */ class ELFunctionVisitor extends Node.Visitor { - - /** - * Use a global name map to facilitate reuse of function maps. - * The key used is prefix:function:uri. - */ - private HashMap gMap = new HashMap(); - - public void visit(Node.ParamAction n) throws JasperException { - doMap(n.getValue()); - visitBody(n); - } - - public void visit(Node.IncludeAction n) throws JasperException { - doMap(n.getPage()); - visitBody(n); - } - - public void visit(Node.ForwardAction n) throws JasperException { - doMap(n.getPage()); - visitBody(n); - } + + /** + * Use a global name map to facilitate reuse of function maps. + * The key used is prefix:function:uri. + */ + private HashMap gMap = new HashMap(); + + public void visit(Node.ParamAction n) throws JasperException { + doMap(n.getValue()); + visitBody(n); + } + + public void visit(Node.IncludeAction n) throws JasperException { + doMap(n.getPage()); + visitBody(n); + } + + public void visit(Node.ForwardAction n) throws JasperException { + doMap(n.getPage()); + visitBody(n); + } public void visit(Node.SetProperty n) throws JasperException { - doMap(n.getValue()); - visitBody(n); - } + doMap(n.getValue()); + visitBody(n); + } public void visit(Node.UseBean n) throws JasperException { - doMap(n.getBeanName()); - visitBody(n); - } + doMap(n.getBeanName()); + visitBody(n); + } public void visit(Node.PlugIn n) throws JasperException { - doMap(n.getHeight()); - doMap(n.getWidth()); - visitBody(n); - } + doMap(n.getHeight()); + doMap(n.getWidth()); + visitBody(n); + } public void visit(Node.JspElement n) throws JasperException { - Node.JspAttribute[] attrs = n.getJspAttributes(); - for (int i = 0; attrs != null && i < attrs.length; i++) { - doMap(attrs[i]); - } - doMap(n.getNameAttribute()); - visitBody(n); - } + Node.JspAttribute[] attrs = n.getJspAttributes(); + for (int i = 0; attrs != null && i < attrs.length; i++) { + doMap(attrs[i]); + } + doMap(n.getNameAttribute()); + visitBody(n); + } public void visit(Node.UninterpretedTag n) throws JasperException { - Node.JspAttribute[] attrs = n.getJspAttributes(); - for (int i = 0; attrs != null && i < attrs.length; i++) { - doMap(attrs[i]); - } - visitBody(n); - } + Node.JspAttribute[] attrs = n.getJspAttributes(); + for (int i = 0; attrs != null && i < attrs.length; i++) { + doMap(attrs[i]); + } + visitBody(n); + } public void visit(Node.CustomTag n) throws JasperException { - Node.JspAttribute[] attrs = n.getJspAttributes(); - for (int i = 0; attrs != null && i < attrs.length; i++) { - doMap(attrs[i]); - } - visitBody(n); - } + Node.JspAttribute[] attrs = n.getJspAttributes(); + for (int i = 0; attrs != null && i < attrs.length; i++) { + doMap(attrs[i]); + } + visitBody(n); + } public void visit(Node.ELExpression n) throws JasperException { - doMap(n.getEL()); - } + doMap(n.getEL()); + } - private void doMap(Node.JspAttribute attr) - throws JasperException { - if (attr != null) { - doMap(attr.getEL()); - } - } + private void doMap(Node.JspAttribute attr) + throws JasperException { + if (attr != null) { + doMap(attr.getEL()); + } + } /** * Creates function mappers, if needed, from ELNodes */ - private void doMap(ELNode.Nodes el) - throws JasperException { + private void doMap(ELNode.Nodes el) + throws JasperException { // Only care about functions in ELNode's - class Fvisitor extends ELNode.Visitor { - ArrayList funcs = new ArrayList(); - HashMap keyMap = new HashMap(); - public void visit(ELNode.Function n) throws JasperException { - String key = n.getPrefix() + ":" + n.getName(); - if (! keyMap.containsKey(key)) { - keyMap.put(key,""); - funcs.add(n); - } - } - } - - if (el == null) { - return; - } - - // First locate all unique functions in this EL - Fvisitor fv = new Fvisitor(); - el.visit(fv); - ArrayList functions = fv.funcs; - - if (functions.size() == 0) { - return; - } - - // Reuse a previous map if possible - String decName = matchMap(functions); - if (decName != null) { - el.setMapName(decName); - return; - } - - // Generate declaration for the map statically - decName = getMapName(); - ss.append("static private org.apache.jasper.runtime.ProtectedFunctionMapper " + decName + ";\n"); - - ds.append(" " + decName + "= "); - ds.append("org.apache.jasper.runtime.ProtectedFunctionMapper"); - - // Special case if there is only one function in the map - String funcMethod = null; - if (functions.size() == 1) { - funcMethod = ".getMapForFunction"; - } else { - ds.append(".getInstance();\n"); - funcMethod = " " + decName + ".mapFunction"; - } + class Fvisitor extends ELNode.Visitor { + ArrayList funcs = new ArrayList(); + HashMap keyMap = new HashMap(); + public void visit(ELNode.Function n) throws JasperException { + String key = n.getPrefix() + ":" + n.getName(); + if (! keyMap.containsKey(key)) { + keyMap.put(key,""); + funcs.add(n); + } + } + } + + if (el == null) { + return; + } + + // First locate all unique functions in this EL + Fvisitor fv = new Fvisitor(); + el.visit(fv); + ArrayList functions = fv.funcs; + + if (functions.size() == 0) { + return; + } + + // Reuse a previous map if possible + String decName = matchMap(functions); + if (decName != null) { + el.setMapName(decName); + return; + } + + // Generate declaration for the map statically + decName = getMapName(); + ss.append("static private org.apache.jasper.runtime.ProtectedFunctionMapper " + decName + ";\n"); + + ds.append(" " + decName + "= "); + ds.append("org.apache.jasper.runtime.ProtectedFunctionMapper"); + + // Special case if there is only one function in the map + String funcMethod = null; + if (functions.size() == 1) { + funcMethod = ".getMapForFunction"; + } else { + ds.append(".getInstance();\n"); + funcMethod = " " + decName + ".mapFunction"; + } // Setup arguments for either getMapForFunction or mapFunction - for (int i = 0; i < functions.size(); i++) { - ELNode.Function f = (ELNode.Function)functions.get(i); - FunctionInfo funcInfo = f.getFunctionInfo(); - String key = f.getPrefix()+ ":" + f.getName(); - ds.append(funcMethod + "(\"" + key + "\", " + - funcInfo.getFunctionClass() + ".class, " + - '\"' + f.getMethodName() + "\", " + - "new Class[] {"); - String params[] = f.getParameters(); - for (int k = 0; k < params.length; k++) { - if (k != 0) { - ds.append(", "); - } - int iArray = params[k].indexOf('['); - if (iArray < 0) { - ds.append(params[k] + ".class"); - } - else { - String baseType = params[k].substring(0, iArray); - ds.append("java.lang.reflect.Array.newInstance("); - ds.append(baseType); - ds.append(".class,"); - - // Count the number of array dimension - int aCount = 0; - for (int jj = iArray; jj < params[k].length(); jj++ ) { - if (params[k].charAt(jj) == '[') { - aCount++; - } - } - if (aCount == 1) { - ds.append("0).getClass()"); - } else { - ds.append("new int[" + aCount + "]).getClass()"); - } - } - } - ds.append("});\n"); - // Put the current name in the global function map - gMap.put(f.getPrefix() + ':' + f.getName() + ':' + f.getUri(), - decName); - } - el.setMapName(decName); - } + for (int i = 0; i < functions.size(); i++) { + ELNode.Function f = (ELNode.Function)functions.get(i); + FunctionInfo funcInfo = f.getFunctionInfo(); + String key = f.getPrefix()+ ":" + f.getName(); + ds.append(funcMethod + "(\"" + key + "\", " + + funcInfo.getFunctionClass() + ".class, " + + '\"' + f.getMethodName() + "\", " + + "new Class[] {"); + String params[] = f.getParameters(); + for (int k = 0; k < params.length; k++) { + if (k != 0) { + ds.append(", "); + } + int iArray = params[k].indexOf('['); + if (iArray < 0) { + ds.append(params[k] + ".class"); + } + else { + String baseType = params[k].substring(0, iArray); + ds.append("java.lang.reflect.Array.newInstance("); + ds.append(baseType); + ds.append(".class,"); + + // Count the number of array dimension + int aCount = 0; + for (int jj = iArray; jj < params[k].length(); jj++ ) { + if (params[k].charAt(jj) == '[') { + aCount++; + } + } + if (aCount == 1) { + ds.append("0).getClass()"); + } else { + ds.append("new int[" + aCount + "]).getClass()"); + } + } + } + ds.append("});\n"); + // Put the current name in the global function map + gMap.put(f.getPrefix() + ':' + f.getName() + ':' + f.getUri(), + decName); + } + el.setMapName(decName); + } /** * Find the name of the function mapper for an EL. Reuse a @@ -250,32 +250,32 @@ * @return A previous generated function mapper name that can be used * by this EL; null if none found. */ - private String matchMap(ArrayList functions) { + private String matchMap(ArrayList functions) { - String mapName = null; - for (int i = 0; i < functions.size(); i++) { - ELNode.Function f = (ELNode.Function)functions.get(i); - String temName = (String) gMap.get(f.getPrefix() + ':' + - f.getName() + ':' + f.getUri()); - if (temName == null) { - return null; - } - if (mapName == null) { - mapName = temName; - } else if (!temName.equals(mapName)) { - // If not all in the previous match, then no match. - return null; - } - } - return mapName; - } + String mapName = null; + for (int i = 0; i < functions.size(); i++) { + ELNode.Function f = (ELNode.Function)functions.get(i); + String temName = (String) gMap.get(f.getPrefix() + ':' + + f.getName() + ':' + f.getUri()); + if (temName == null) { + return null; + } + if (mapName == null) { + mapName = temName; + } else if (!temName.equals(mapName)) { + // If not all in the previous match, then no match. + return null; + } + } + return mapName; + } /* * @return An unique name for a function mapper. */ - private String getMapName() { - return "_jspx_fnmap_" + currFunc++; - } + private String getMapName() { + return "_jspx_fnmap_" + currFunc++; + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]