bundles/org.apache.jasper.glassfish/src/org/apache/jasper/compiler/JspUtil.java
public static String interpreterCall(boolean isTagFile,
					 String expression,
                                         Class expectedType,
                                         String fnmapvar,
                                         String expectedDeferredType,
                                         String expectedReturnType,
                                         String[] expectedParamTypes
                                         ) 
    {
        /*
         * Determine which context object to use.
         */
	String jspCtxt = null;
	if (isTagFile)
	    jspCtxt = "this.getJspContext()";
	else
	    jspCtxt = "_jspx_page_context";

        if (expectedType == javax.el.ValueExpression.class) {

            if (expectedDeferredType == null) {
                expectedDeferredType = "java.lang.Object";
            }

            return "org.apache.jasper.runtime.PageContextImpl.getValueExpression"
               + "(" + Generator.quote(expression) + ", "
               + "(PageContext)" + jspCtxt + ", "
               + expectedDeferredType + ".class, "
               + fnmapvar + ")"; 

        }

        if (expectedType == javax.el.MethodExpression.class) {

            if (expectedReturnType == null) {
                expectedReturnType = "Void";
            }

            StringBuilder params = new StringBuilder();
            if (expectedParamTypes != null) {
                for (int i = 0; i < expectedParamTypes.length; i++) {
                    if (i > 0) {
                        params.append(", ");
                    }
                    params.append(expectedParamTypes[i] + ".class");
                }
            }

            return "org.apache.jasper.runtime.PageContextImpl.getMethodExpression"
               + "(" + Generator.quote(expression) + ", "
               + "(PageContext)" + jspCtxt + ", "
               + fnmapvar + ", "
               + expectedReturnType + ".class, "
               + "new Class[] {" + params.toString() + "})";
        }

	/*
         * Determine whether to use the expected type's textual name
	 * or, if it's a primitive, the name of its correspondent boxed
	 * type.
         */
	String targetType = expectedType.getName();
	String primitiveConverterMethod = null;
	if (expectedType.isPrimitive()) {
	    if (expectedType.equals(Boolean.TYPE)) {
		targetType = Boolean.class.getName();
		primitiveConverterMethod = "booleanValue";
	    } else if (expectedType.equals(Byte.TYPE)) {
		targetType = Byte.class.getName();
		primitiveConverterMethod = "byteValue";
	    } else if (expectedType.equals(Character.TYPE)) {
		targetType = Character.class.getName();
		primitiveConverterMethod = "charValue";
	    } else if (expectedType.equals(Short.TYPE)) {
		targetType = Short.class.getName();
		primitiveConverterMethod = "shortValue";
	    } else if (expectedType.equals(Integer.TYPE)) {
		targetType = Integer.class.getName();
		primitiveConverterMethod = "intValue";
	    } else if (expectedType.equals(Long.TYPE)) {
		targetType = Long.class.getName();
		primitiveConverterMethod = "longValue";
	    } else if (expectedType.equals(Float.TYPE)) {
		targetType = Float.class.getName();
		primitiveConverterMethod = "floatValue";
	    } else if (expectedType.equals(Double.TYPE)) { 
		targetType = Double.class.getName();
		primitiveConverterMethod = "doubleValue";
	    }
	}
 
	targetType = toJavaSourceType(targetType);

	StringBuilder call = new StringBuilder(
             "(" + targetType + ") "
               + "org.apache.jasper.runtime.PageContextImpl.evaluateExpression"
               + "(" + Generator.quote(expression) + ", "
               +       targetType + ".class, "
	       +       "(PageContext)" + jspCtxt 
               +       ", " + fnmapvar
               + ")");
 
	/*
         * Add the primitive converter method if we need to.
         */
	if (primitiveConverterMethod != null) {
	    call.insert(0, "(");
	    call.append(")." + primitiveConverterMethod + "()");
	}
 
	return call.toString();
    }
public static String interpreterCall(boolean isTagFile,
					 String expression,
                                         Class expectedType,
                                         String fnmapvar,
                                         String expectedDeferredType,
                                         String expectedReturnType,
                                         String[] expectedParamTypes
                                         ) 
    {
        /*
         * Determine which context object to use.
         */
	String jspCtxt = null;
	if (isTagFile)
	    jspCtxt = "this.getJspContext()";
	else
	    jspCtxt = "_jspx_page_context";

        if (expectedType == javax.el.ValueExpression.class) {

            if (expectedDeferredType == null) {
                expectedDeferredType = "java.lang.Object";
            }

            return "org.apache.jasper.runtime.PageContextImpl.getValueExpression"
               + "(" + Generator.quote(expression) + ", "
               + "(PageContext)" + jspCtxt + ", "
               + expectedDeferredType + ".class, "
               + fnmapvar + ")"; 

        }

        if (expectedType == javax.el.MethodExpression.class) {

            if (expectedReturnType == null) {
                expectedReturnType = "Void";
            }

            StringBuilder params = new StringBuilder();
            if (expectedParamTypes != null) {
                for (int i = 0; i < expectedParamTypes.length; i++) {
                    if (i > 0) {
                        params.append(", ");
                    }
                    params.append(expectedParamTypes[i] + ".class");
                }
            }

            return "org.apache.jasper.runtime.PageContextImpl.getMethodExpression"
               + "(" + Generator.quote(expression) + ", "
               + "(PageContext)" + jspCtxt + ", "
               + fnmapvar + ", "
               + expectedReturnType + ".class, "
               + "new Class[] {" + params.toString() + "})";
        }

	/*
         * Determine whether to use the expected type's textual name
	 * or, if it's a primitive, the name of its correspondent boxed
	 * type.
         */
	String targetType = expectedType.getName();
	String primitiveConverterMethod = null;
	if (expectedType.isPrimitive()) {
	    if (expectedType.equals(Boolean.TYPE)) {
		targetType = Boolean.class.getName();
		primitiveConverterMethod = "booleanValue";
	    } else if (expectedType.equals(Byte.TYPE)) {
		targetType = Byte.class.getName();
		primitiveConverterMethod = "byteValue";
	    } else if (expectedType.equals(Character.TYPE)) {
		targetType = Character.class.getName();
		primitiveConverterMethod = "charValue";
	    } else if (expectedType.equals(Short.TYPE)) {
		targetType = Short.class.getName();
		primitiveConverterMethod = "shortValue";
	    } else if (expectedType.equals(Integer.TYPE)) {
		targetType = Integer.class.getName();
		primitiveConverterMethod = "intValue";
	    } else if (expectedType.equals(Long.TYPE)) {
		targetType = Long.class.getName();
		primitiveConverterMethod = "longValue";
	    } else if (expectedType.equals(Float.TYPE)) {
		targetType = Float.class.getName();
		primitiveConverterMethod = "floatValue";
	    } else if (expectedType.equals(Double.TYPE)) { 
		targetType = Double.class.getName();
		primitiveConverterMethod = "doubleValue";
	    }
	}
 
	targetType = toJavaSourceType(targetType);

	StringBuilder call = new StringBuilder(
             "(" + targetType + ") "
               + "org.apache.jasper.runtime.PageContextImpl.evaluateExpression"
               + "(" + Generator.quote(expression) + ", "
               +       targetType + ".class, "
	       +       "(PageContext)" + jspCtxt 
               +       ", " + fnmapvar
               + ")");
 
	/*
         * Add the primitive converter method if we need to.
         */
	if (primitiveConverterMethod != null) {
	    call.insert(0, "(");
	    call.append(")." + primitiveConverterMethod + "()");
	}
 
	return call.toString();
    }
public static String interpreterCall ( boolean isTagFile , String expression , Class expectedType , String fnmapvar , String expectedDeferredType , String expectedReturnType , String [ ] expectedParamTypes ) { /*
         * Determine which context object to use.
         */ String jspCtxt = null ; if ( isTagFile ) jspCtxt = "this.getJspContext()" ; else jspCtxt = "_jspx_page_context" ; if ( expectedType == javax . el . ValueExpression . class ) { if ( expectedDeferredType == null ) { expectedDeferredType = "java.lang.Object" ; } return "org.apache.jasper.runtime.PageContextImpl.getValueExpression" + "(" + Generator . quote ( expression ) + ", " + "(PageContext)" + jspCtxt + ", " + expectedDeferredType + ".class, " + fnmapvar + ")" ; } if ( expectedType == javax . el . MethodExpression . class ) { if ( expectedReturnType == null ) { expectedReturnType = "Void" ; } StringBuilder params = new StringBuilder ( ) ; if ( expectedParamTypes != null ) { for ( int i = 0 ; i < expectedParamTypes . length ; i ++ ) { if ( i > 0 ) { params . append ( ", " ) ; } params . append ( expectedParamTypes [ i ] + ".class" ) ; } } return "org.apache.jasper.runtime.PageContextImpl.getMethodExpression" + "(" + Generator . quote ( expression ) + ", " + "(PageContext)" + jspCtxt + ", " + fnmapvar + ", " + expectedReturnType + ".class, " + "new Class[] {" + params . toString ( ) + "})" ; } /*
         * Determine whether to use the expected type's textual name
	 * or, if it's a primitive, the name of its correspondent boxed
	 * type.
         */ String targetType = expectedType . getName ( ) ; String primitiveConverterMethod = null ; if ( expectedType . isPrimitive ( ) ) { if ( expectedType . equals ( Boolean . TYPE ) ) { targetType = Boolean . class . getName ( ) ; primitiveConverterMethod = "booleanValue" ; } else if ( expectedType . equals ( Byte . TYPE ) ) { targetType = Byte . class . getName ( ) ; primitiveConverterMethod = "byteValue" ; } else if ( expectedType . equals ( Character . TYPE ) ) { targetType = Character . class . getName ( ) ; primitiveConverterMethod = "charValue" ; } else if ( expectedType . equals ( Short . TYPE ) ) { targetType = Short . class . getName ( ) ; primitiveConverterMethod = "shortValue" ; } else if ( expectedType . equals ( Integer . TYPE ) ) { targetType = Integer . class . getName ( ) ; primitiveConverterMethod = "intValue" ; } else if ( expectedType . equals ( Long . TYPE ) ) { targetType = Long . class . getName ( ) ; primitiveConverterMethod = "longValue" ; } else if ( expectedType . equals ( Float . TYPE ) ) { targetType = Float . class . getName ( ) ; primitiveConverterMethod = "floatValue" ; } else if ( expectedType . equals ( Double . TYPE ) ) { targetType = Double . class . getName ( ) ; primitiveConverterMethod = "doubleValue" ; } } targetType = toJavaSourceType ( targetType ) ; StringBuilder call = new StringBuilder ( "(" + targetType + ") " + "org.apache.jasper.runtime.PageContextImpl.evaluateExpression" + "(" + Generator . quote ( expression ) + ", " + targetType + ".class, " + "(PageContext)" + jspCtxt + ", " + fnmapvar + ")" ) ; /*
         * Add the primitive converter method if we need to.
         */ if ( primitiveConverterMethod != null ) { call . insert ( 0 , "(" ) ; call . append ( ")." + primitiveConverterMethod + "()" ) ; } return call . toString ( ) ; }
Produces a String representing a call to the EL interpreter.
@param expression a String containing zero or more "${}" expressions
@param expectedType the expected type of the interpreted result
@param fnmapvar Variable pointing to a function map.
@return a String representing a call to the EL interpreter.
Produces a String representing a call to the EL interpreter .