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]