org.apache.jasper.compiler

Class JspUtil

public class JspUtil extends Object

This class has all the utility method(s). Ideally should move all the bean containers here.

Author: Mandar Raje. Rajiv Mordani. Danno Ferrin Pierre Delisle Shawn Bayern Mark Roth

Nested Class Summary
static classJspUtil.ValidAttribute
Field Summary
static intCHUNKSIZE
Method Summary
static booleanbooleanValue(String s)
Convert a String value to 'boolean'.
static voidcheckAttributes(String typeOfTag, Node n, JspUtil.ValidAttribute[] validAttributes, ErrorDispatcher err)
Checks if all mandatory attributes are present and if all attributes present have valid names.
static voidcheckScope(String scope, Node n, ErrorDispatcher err)
Checks to see if the given scope is valid.
static StringcoerceToBoolean(String s, boolean isNamedAttribute)
static StringcoerceToByte(String s, boolean isNamedAttribute)
static StringcoerceToChar(String s, boolean isNamedAttribute)
static StringcoerceToCharacter(String s, boolean isNamedAttribute)
static StringcoerceToDouble(String s, boolean isNamedAttribute)
static StringcoerceToFloat(String s, boolean isNamedAttribute)
static StringcoerceToInt(String s, boolean isNamedAttribute)
static StringcoerceToInteger(String s, boolean isNamedAttribute)
static StringcoerceToLong(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveBoolean(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveByte(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveDouble(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveFloat(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveLong(String s, boolean isNamedAttribute)
static StringcoerceToPrimitiveShort(String s, boolean isNamedAttribute)
static StringcoerceToShort(String s, boolean isNamedAttribute)
static StringescapeQueryString(String unescString)
static char[]escapeQuotes(char[] chars)
static StringescapeXml(String s)
Escape the 5 entities defined by XML.
static StringgetCanonicalName(Class c)
Compute the canonical name from a Class instance.
static StringgetExpr(String expression, boolean isXml)
static StringgetExprInXml(String expression)
Takes a potential expression and converts it into XML form
static InputStreamgetInputStream(String fname, JarFile jarFile, JspCompilationContext ctxt, ErrorDispatcher err)
static StringgetTagHandlerClassName(String path, ErrorDispatcher err)
Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.
static StringgetTagHandlerClassName(String path, String urn, ErrorDispatcher err)
Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.
static StringinterpreterCall(boolean isTagFile, String expression, Class expectedType, String fnmapvar, boolean XmlEscape)
Produces a String representing a call to the EL interpreter.
static booleanisExpression(String token, boolean isXml)
Checks if the token is a runtime expression.
static booleanisJavaKeyword(String key)
Test whether the argument is a Java keyword
static StringmakeJavaIdentifier(String identifier)
Converts the given identifier to a legal Java identifier
static StringmakeJavaPackage(String path)
Converts the given path to a Java package or fully-qualified class name
static StringmakeXmlJavaIdentifier(String name)
Converts the given Xml name to a legal Java identifier.
static StringmangleChar(char ch)
Mangle the specified character to create a legal Java class name.
static StringnextTemporaryVariableName()
Generates a new temporary variable name. (not thread-safe)
static char[]removeQuotes(char[] chars)
static Stringreplace(String name, char replace, String with)
Replaces any occurrences of the character replace with the string with.
static voidresetTemporaryVariableName()
Resets the temporary variable name. (not thread-safe)
static ClasstoClass(String type, ClassLoader loader)
Returns the Class object associated with the class or interface with the given string name.
static StringtoJavaSourceType(String type)
Class.getName() return arrays in the form "[[[", where et, the element type can be one of ZBCDFIJS or L; It is converted into forms that can be understood by javac.
static StringtoJavaSourceTypeFromTld(String type)
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'
static voidvalidateExpressions(Mark where, String expressions, Class expectedType, FunctionMapper functionMapper, ErrorDispatcher err)
Validates the syntax of all ${} expressions within the given string.

Field Detail

CHUNKSIZE

public static final int CHUNKSIZE

Method Detail

booleanValue

public static boolean booleanValue(String s)
Convert a String value to 'boolean'. Besides the standard conversions done by Boolean.valueOf(s).booleanValue(), the value "yes" (ignore case) is also converted to 'true'. If 's' is null, then 'false' is returned.

Parameters: s the string to be converted

Returns: the boolean value associated with the string s

checkAttributes

public static void checkAttributes(String typeOfTag, Node n, JspUtil.ValidAttribute[] validAttributes, ErrorDispatcher err)
Checks if all mandatory attributes are present and if all attributes present have valid names. Checks attributes specified as XML-style attributes as well as attributes specified using the jsp:attribute standard action.

checkScope

public static void checkScope(String scope, Node n, ErrorDispatcher err)
Checks to see if the given scope is valid.

Parameters: scope The scope to be checked n The Node containing the 'scope' attribute whose value is to be checked err error dispatcher

Throws: JasperException if scope is not null and different from "page", "request", "session", and "application"

coerceToBoolean

public static String coerceToBoolean(String s, boolean isNamedAttribute)

coerceToByte

public static String coerceToByte(String s, boolean isNamedAttribute)

coerceToChar

public static String coerceToChar(String s, boolean isNamedAttribute)

coerceToCharacter

public static String coerceToCharacter(String s, boolean isNamedAttribute)

coerceToDouble

public static String coerceToDouble(String s, boolean isNamedAttribute)

coerceToFloat

public static String coerceToFloat(String s, boolean isNamedAttribute)

coerceToInt

public static String coerceToInt(String s, boolean isNamedAttribute)

coerceToInteger

public static String coerceToInteger(String s, boolean isNamedAttribute)

coerceToLong

public static String coerceToLong(String s, boolean isNamedAttribute)

coerceToPrimitiveBoolean

public static String coerceToPrimitiveBoolean(String s, boolean isNamedAttribute)

coerceToPrimitiveByte

public static String coerceToPrimitiveByte(String s, boolean isNamedAttribute)

coerceToPrimitiveDouble

public static String coerceToPrimitiveDouble(String s, boolean isNamedAttribute)

coerceToPrimitiveFloat

public static String coerceToPrimitiveFloat(String s, boolean isNamedAttribute)

coerceToPrimitiveLong

public static String coerceToPrimitiveLong(String s, boolean isNamedAttribute)

coerceToPrimitiveShort

public static String coerceToPrimitiveShort(String s, boolean isNamedAttribute)

coerceToShort

public static String coerceToShort(String s, boolean isNamedAttribute)

escapeQueryString

public static String escapeQueryString(String unescString)

escapeQuotes

public static char[] escapeQuotes(char[] chars)

escapeXml

public static String escapeXml(String s)
Escape the 5 entities defined by XML.

getCanonicalName

public static String getCanonicalName(Class c)
Compute the canonical name from a Class instance. Note that a simple replacment of '$' with '.' of a binary name would not work, as '$' is a legal Java Identifier character.

Parameters: c A instance of java.lang.Class

Returns: The canonical name of c.

getExpr

public static String getExpr(String expression, boolean isXml)

Returns: the "expression" part of a runtime expression, taking the delimiters out.

getExprInXml

public static String getExprInXml(String expression)
Takes a potential expression and converts it into XML form

getInputStream

public static InputStream getInputStream(String fname, JarFile jarFile, JspCompilationContext ctxt, ErrorDispatcher err)

getTagHandlerClassName

public static String getTagHandlerClassName(String path, ErrorDispatcher err)

Deprecated: Use JspUtil See https://issues.apache.org/bugzilla/show_bug.cgi?id=46471

Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.

Parameters: path Tag file path err Error dispatcher

Returns: Fully-qualified class name of the tag handler corresponding to the given tag file path

getTagHandlerClassName

public static String getTagHandlerClassName(String path, String urn, ErrorDispatcher err)
Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.

Parameters: path Tag file path err Error dispatcher

Returns: Fully-qualified class name of the tag handler corresponding to the given tag file path

interpreterCall

public static String interpreterCall(boolean isTagFile, String expression, Class expectedType, String fnmapvar, boolean XmlEscape)
Produces a String representing a call to the EL interpreter.

Parameters: expression a String containing zero or more "${}" expressions expectedType the expected type of the interpreted result fnmapvar Variable pointing to a function map. XmlEscape True if the result should do XML escaping

Returns: a String representing a call to the EL interpreter.

isExpression

public static boolean isExpression(String token, boolean isXml)
Checks if the token is a runtime expression. In standard JSP syntax, a runtime expression starts with '<%' and ends with '%>'. When the JSP document is in XML syntax, a runtime expression starts with '%=' and ends with '%'.

Parameters: token The token to be checked return whether the token is a runtime expression or not.

isJavaKeyword

public static boolean isJavaKeyword(String key)
Test whether the argument is a Java keyword

makeJavaIdentifier

public static final String makeJavaIdentifier(String identifier)
Converts the given identifier to a legal Java identifier

Parameters: identifier Identifier to convert

Returns: Legal Java identifier corresponding to the given identifier

makeJavaPackage

public static final String makeJavaPackage(String path)
Converts the given path to a Java package or fully-qualified class name

Parameters: path Path to convert

Returns: Java package corresponding to the given path

makeXmlJavaIdentifier

public static final String makeXmlJavaIdentifier(String name)
Converts the given Xml name to a legal Java identifier. This is slightly more efficient than makeJavaIdentifier in that we only need to worry about '.', '-', and ':' in the string. We also assume that the resultant string is further concatenated with some prefix string so that we don't have to worry about it being a Java key word.

Parameters: name Identifier to convert

Returns: Legal Java identifier corresponding to the given identifier

mangleChar

public static final String mangleChar(char ch)
Mangle the specified character to create a legal Java class name.

nextTemporaryVariableName

public static String nextTemporaryVariableName()

Deprecated:

Generates a new temporary variable name. (not thread-safe)

removeQuotes

public static char[] removeQuotes(char[] chars)

replace

public static String replace(String name, char replace, String with)
Replaces any occurrences of the character replace with the string with.

resetTemporaryVariableName

public static void resetTemporaryVariableName()

Deprecated:

Resets the temporary variable name. (not thread-safe)

toClass

public static Class toClass(String type, ClassLoader loader)
Returns the Class object associated with the class or interface with the given string name.

The Class object is determined by passing the given string name to the Class.forName() method, unless the given string name represents a primitive type, in which case it is converted to a Class object by appending ".class" to it (e.g., "int.class").

toJavaSourceType

public static String toJavaSourceType(String type)
Class.getName() return arrays in the form "[[[", where et, the element type can be one of ZBCDFIJS or L; It is converted into forms that can be understood by javac.

toJavaSourceTypeFromTld

public static String toJavaSourceTypeFromTld(String type)
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'

Parameters: type

Returns:

validateExpressions

public static void validateExpressions(Mark where, String expressions, Class expectedType, FunctionMapper functionMapper, ErrorDispatcher err)

Deprecated: now delegated to the org.apache.el Package

Validates the syntax of all ${} expressions within the given string.

Parameters: where the approximate location of the expressions in the JSP page expressions a string containing zero or more "${}" expressions err an error dispatcher to use

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.