Package org.apache.jasper.compiler
Class JspUtil
java.lang.Object
org.apache.jasper.compiler.JspUtil
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
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Convert a String value to 'boolean'.static void
checkAttributes
(String typeOfTag, org.apache.jasper.compiler.Node n, JspUtil.ValidAttribute[] validAttributes, ErrorDispatcher err) Checks if all mandatory attributes are present and if all attributes present have valid names.static void
checkScope
(String scope, org.apache.jasper.compiler.Node n, ErrorDispatcher err) Checks to see if the given scope is valid.static String
coerceToBoolean
(String s, boolean isNamedAttribute) static String
coerceToByte
(String s, boolean isNamedAttribute) static String
coerceToChar
(String s, boolean isNamedAttribute) static String
coerceToCharacter
(String s, boolean isNamedAttribute) static String
coerceToDouble
(String s, boolean isNamedAttribute) static String
coerceToFloat
(String s, boolean isNamedAttribute) static String
coerceToInt
(String s, boolean isNamedAttribute) static String
coerceToInteger
(String s, boolean isNamedAttribute) static String
coerceToLong
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveBoolean
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveByte
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveDouble
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveFloat
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveLong
(String s, boolean isNamedAttribute) static String
coerceToPrimitiveShort
(String s, boolean isNamedAttribute) static String
coerceToShort
(String s, boolean isNamedAttribute) static String
getExprInXml
(String expression) Takes a potential expression and converts it into XML form.static InputSource
getInputSource
(String fname, Jar jar, JspCompilationContext ctxt) static BufferedInputStream
getInputStream
(String fname, Jar jar, JspCompilationContext ctxt) 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.static String
interpreterCall
(boolean isTagFile, String expression, Class<?> expectedType, String fnmapvar) Produces a String representing a call to the EL interpreter.static boolean
isJavaKeyword
(String key) Test whether the argument is a Java keyword.static final String
makeJavaIdentifier
(String identifier) Converts the given identifier to a legal Java identifierstatic final String
makeJavaIdentifierForAttribute
(String identifier) Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.static final String
makeJavaPackage
(String path) Converts the given path to a Java package or fully-qualified class namestatic final String
mangleChar
(char ch) Mangle the specified character to create a legal Java class name.static Class<?>
toClass
(String type, ClassLoader loader) Returns theClass
object associated with the class or interface with the given string name.static String
toJavaSourceType
(String type) Class.getName() return arrays in the form "[[[<et>", where et, the element type can be one of ZBCDFIJS or L<classname>;.static String
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'
-
Field Details
-
CHUNKSIZE
public static final int CHUNKSIZE- See Also:
-
-
Constructor Details
-
JspUtil
public JspUtil()
-
-
Method Details
-
getExprInXml
Takes a potential expression and converts it into XML form.- Parameters:
expression
- The expression to convert- Returns:
- XML view
-
checkScope
public static void checkScope(String scope, org.apache.jasper.compiler.Node n, ErrorDispatcher err) throws JasperException Checks to see if the given scope is valid.- Parameters:
scope
- The scope to be checkedn
- The Node containing the 'scope' attribute whose value is to be checkederr
- error dispatcher- Throws:
JasperException
- if scope is not null and different from "page", "request", "session", and "application"
-
checkAttributes
public static void checkAttributes(String typeOfTag, org.apache.jasper.compiler.Node n, JspUtil.ValidAttribute[] validAttributes, ErrorDispatcher err) throws JasperException 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.- Parameters:
typeOfTag
- The tag typen
- The corresponding nodevalidAttributes
- The array with the valid attributeserr
- Dispatcher for errors- Throws:
JasperException
- An error occurred
-
booleanValue
Convert a String value to 'boolean'. Besides the standard conversions done by Boolean.parseBoolean(s), 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
-
toClass
Returns theClass
object associated with the class or interface with the given string name.The
Class
object is determined by passing the given string name to theClass.forName()
method, unless the given string name represents a primitive type, in which case it is converted to aClass
object by appending ".class" to it (e.g., "int.class").- Parameters:
type
- The class name, array or primitive typeloader
- The class loader- Returns:
- the loaded class
- Throws:
ClassNotFoundException
- Loading class failed
-
interpreterCall
public static String interpreterCall(boolean isTagFile, String expression, Class<?> expectedType, String fnmapvar) Produces a String representing a call to the EL interpreter.- Parameters:
isTagFile
-true
if the file is a tag file rather than a JSPexpression
- a String containing zero or more "${}" expressionsexpectedType
- the expected type of the interpreted resultfnmapvar
- Variable pointing to a function map.- Returns:
- a String representing a call to the EL interpreter.
-
coerceToPrimitiveBoolean
-
coerceToBoolean
-
coerceToPrimitiveByte
-
coerceToByte
-
coerceToChar
-
coerceToCharacter
-
coerceToPrimitiveDouble
-
coerceToDouble
-
coerceToPrimitiveFloat
-
coerceToFloat
-
coerceToInt
-
coerceToInteger
-
coerceToPrimitiveShort
-
coerceToShort
-
coerceToPrimitiveLong
-
coerceToLong
-
getInputStream
public static BufferedInputStream getInputStream(String fname, Jar jar, JspCompilationContext ctxt) throws IOException - Throws:
IOException
-
getInputSource
public static InputSource getInputSource(String fname, Jar jar, JspCompilationContext ctxt) throws IOException - Throws:
IOException
-
getTagHandlerClassName
public static String getTagHandlerClassName(String path, String urn, ErrorDispatcher err) throws JasperException Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.- Parameters:
path
- Tag file pathurn
- The tag identifiererr
- Error dispatcher- Returns:
- Fully-qualified class name of the tag handler corresponding to the given tag file path
- Throws:
JasperException
- Failed to generate a class name for the tag
-
makeJavaPackage
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
-
makeJavaIdentifier
Converts the given identifier to a legal Java identifier- Parameters:
identifier
- Identifier to convert- Returns:
- Legal Java identifier corresponding to the given identifier
-
makeJavaIdentifierForAttribute
Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.- Parameters:
identifier
- Identifier to convert- Returns:
- Legal Java identifier corresponding to the given identifier
-
mangleChar
Mangle the specified character to create a legal Java class name.- Parameters:
ch
- The character- Returns:
- the replacement character as a string
-
isJavaKeyword
Test whether the argument is a Java keyword.- Parameters:
key
- The name- Returns:
true
if the name is a java identifier
-
toJavaSourceTypeFromTld
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'- Parameters:
type
- The type from the TLD- Returns:
- the Java type
-
toJavaSourceType
Class.getName() return arrays in the form "[[[<et>", where et, the element type can be one of ZBCDFIJS or L<classname>;. It is converted into forms that can be understood by javac.- Parameters:
type
- the type to convert- Returns:
- the equivalent type in Java sources
-