Package org.apache.jasper.compiler

## Class JspUtil

- java.lang.Object
- - org.apache.jasper.compiler.JspUtil

    public class JspUtil
    extends java.lang.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

Nested Classes
`static class` `JspUtil.ValidAttribute`

### Field Summary

Fields
`static int` `CHUNKSIZE`

### Constructor Summary

Constructors
`JspUtil()`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static boolean` `booleanValue​(java.lang.String s)` Convert a String value to 'boolean'.
`static void` `checkAttributes​(java.lang.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​(java.lang.String scope, org.apache.jasper.compiler.Node n, ErrorDispatcher err)` Checks to see if the given scope is valid.
`static java.lang.String` `coerceToBoolean​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToByte​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToChar​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToCharacter​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToDouble​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToFloat​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToInt​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToInteger​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToLong​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveBoolean​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveByte​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveDouble​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveFloat​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveLong​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToPrimitiveShort​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `coerceToShort​(java.lang.String s, boolean isNamedAttribute)`
`static java.lang.String` `escapeXml​(java.lang.String s)` Deprecated. This method will be removed in Tomcat 9
`static java.lang.String` `getExprInXml​(java.lang.String expression)` Takes a potential expression and converts it into XML form.
`static org.xml.sax.InputSource` `getInputSource​(java.lang.String fname, Jar jar, JspCompilationContext ctxt)`
`static java.io.InputStream` `getInputStream​(java.lang.String fname, Jar jar, JspCompilationContext ctxt)`
`static java.lang.String` `getTagHandlerClassName​(java.lang.String path, java.lang.String urn, ErrorDispatcher err)` Gets the fully-qualified class name of the tag handler corresponding to the given tag file path.
`static java.lang.String` `interpreterCall​(boolean isTagFile, java.lang.String expression, java.lang.Class<?> expectedType, java.lang.String fnmapvar)` Produces a String representing a call to the EL interpreter.
`static boolean` `isJavaKeyword​(java.lang.String key)` Test whether the argument is a Java keyword.
`static java.lang.String` `makeJavaIdentifier​(java.lang.String identifier)` Converts the given identifier to a legal Java identifier
`static java.lang.String` `makeJavaIdentifierForAttribute​(java.lang.String identifier)` Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.
`static java.lang.String` `makeJavaPackage​(java.lang.String path)` Converts the given path to a Java package or fully-qualified class name
`static java.lang.String` `mangleChar​(char ch)` Mangle the specified character to create a legal Java class name.
`static java.lang.Class<?>` `toClass​(java.lang.String type, java.lang.ClassLoader loader)` Returns the `Class` object associated with the class or interface with the given string name.
`static java.lang.String` `toJavaSourceType​(java.lang.String type)` Class.getName() return arrays in the form "[[[<et>", where et, the element type can be one of ZBCDFIJS or L<classname>;.
`static java.lang.String` `toJavaSourceTypeFromTld​(java.lang.String type)` Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CHUNKSIZE

    public static final int CHUNKSIZE

See Also:
  Constant Field Values

### Constructor Detail

#### JspUtil

    public JspUtil()

### Method Detail

#### getExprInXml

    public static java.lang.String getExprInXml​(java.lang.String expression)

Takes a potential expression and converts it into XML form.

Parameters:
  `expression` - The expression to convert
Returns:
  XML view

#### checkScope

    public static void checkScope​(java.lang.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 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"

#### checkAttributes

    public static void checkAttributes​(java.lang.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 type
  `n` - The corresponding node
  `validAttributes` - The array with the valid attributes
  `err` - Dispatcher for errors
Throws:
  `JasperException` - An error occurred

#### escapeXml

    @Deprecated
    public static java.lang.String escapeXml​(java.lang.String s)

Deprecated.
This method will be removed in Tomcat 9
Escape the 5 entities defined by XML.

Parameters:
  `s` - String to escape
Returns:
  XML escaped string

#### booleanValue

    public static boolean booleanValue​(java.lang.String s)

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

    public static java.lang.Class<?> toClass​(java.lang.String type,
                                             java.lang.ClassLoader loader)
                                      throws java.lang.ClassNotFoundException

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").

Parameters:
  `type` - The class name, array or primitive type
  `loader` - The class loader
Returns:
  the loaded class
Throws:
  `java.lang.ClassNotFoundException` - Loading class failed

#### interpreterCall

    public static java.lang.String interpreterCall​(boolean isTagFile,
                                                   java.lang.String expression,
                                                   java.lang.Class<?> expectedType,
                                                   java.lang.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 JSP
  `expression` - a String containing zero or more "${}" expressions
  `expectedType` - the expected type of the interpreted result
  `fnmapvar` - Variable pointing to a function map.
Returns:
  a String representing a call to the EL interpreter.

#### coerceToPrimitiveBoolean

    public static java.lang.String coerceToPrimitiveBoolean​(java.lang.String s,
                                                            boolean isNamedAttribute)

#### coerceToBoolean

    public static java.lang.String coerceToBoolean​(java.lang.String s,
                                                   boolean isNamedAttribute)

#### coerceToPrimitiveByte

    public static java.lang.String coerceToPrimitiveByte​(java.lang.String s,
                                                         boolean isNamedAttribute)

#### coerceToByte

    public static java.lang.String coerceToByte​(java.lang.String s,
                                                boolean isNamedAttribute)

#### coerceToChar

    public static java.lang.String coerceToChar​(java.lang.String s,
                                                boolean isNamedAttribute)

#### coerceToCharacter

    public static java.lang.String coerceToCharacter​(java.lang.String s,
                                                     boolean isNamedAttribute)

#### coerceToPrimitiveDouble

    public static java.lang.String coerceToPrimitiveDouble​(java.lang.String s,
                                                           boolean isNamedAttribute)

#### coerceToDouble

    public static java.lang.String coerceToDouble​(java.lang.String s,
                                                  boolean isNamedAttribute)

#### coerceToPrimitiveFloat

    public static java.lang.String coerceToPrimitiveFloat​(java.lang.String s,
                                                          boolean isNamedAttribute)

#### coerceToFloat

    public static java.lang.String coerceToFloat​(java.lang.String s,
                                                 boolean isNamedAttribute)

#### coerceToInt

    public static java.lang.String coerceToInt​(java.lang.String s,
                                               boolean isNamedAttribute)

#### coerceToInteger

    public static java.lang.String coerceToInteger​(java.lang.String s,
                                                   boolean isNamedAttribute)

#### coerceToPrimitiveShort

    public static java.lang.String coerceToPrimitiveShort​(java.lang.String s,
                                                          boolean isNamedAttribute)

#### coerceToShort

    public static java.lang.String coerceToShort​(java.lang.String s,
                                                 boolean isNamedAttribute)

#### coerceToPrimitiveLong

    public static java.lang.String coerceToPrimitiveLong​(java.lang.String s,
                                                         boolean isNamedAttribute)

#### coerceToLong

    public static java.lang.String coerceToLong​(java.lang.String s,
                                                boolean isNamedAttribute)

#### getInputStream

    public static java.io.InputStream getInputStream​(java.lang.String fname,
                                                     Jar jar,
                                                     JspCompilationContext ctxt)
                                              throws java.io.IOException

Throws:
  `java.io.IOException`

#### getInputSource

    public static org.xml.sax.InputSource getInputSource​(java.lang.String fname,
                                                         Jar jar,
                                                         JspCompilationContext ctxt)
                                                  throws java.io.IOException

Throws:
  `java.io.IOException`

#### getTagHandlerClassName

    public static java.lang.String getTagHandlerClassName​(java.lang.String path,
                                                          java.lang.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 path
  `urn` - The tag identifier
  `err` - 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

    public static final java.lang.String makeJavaPackage​(java.lang.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

#### makeJavaIdentifier

    public static final java.lang.String makeJavaIdentifier​(java.lang.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

#### makeJavaIdentifierForAttribute

    public static final java.lang.String makeJavaIdentifierForAttribute​(java.lang.String identifier)

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

    public static final java.lang.String mangleChar​(char ch)

Mangle the specified character to create a legal Java class name.

Parameters:
  `ch` - The character
Returns:
  the replacement character as a string

#### isJavaKeyword

    public static boolean isJavaKeyword​(java.lang.String key)

Test whether the argument is a Java keyword.

Parameters:
  `key` - The name
Returns:
  `true` if the name is a java identifier

#### toJavaSourceTypeFromTld

    public static java.lang.String toJavaSourceTypeFromTld​(java.lang.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` - The type from the TLD
Returns:
  the Java type

#### toJavaSourceType

    public static java.lang.String toJavaSourceType​(java.lang.String type)

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