org.apache.jasper.compiler

## Class JspUtil

- java.lang.Object
- - org.apache.jasper.compiler.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

Nested Classes
`static class` `JspUtil.ValidAttribute`

### Field Summary

Fields
`static int` `CHUNKSIZE`

### Constructor Summary

Constructors
Constructor and Description
`JspUtil()`

### Method Summary

Methods
`static boolean` `booleanValue(String s)` 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` `escapeXml(String s)` Escape the 5 entities defined by XML.
`static String` `getExprInXml(String expression)` Takes a potential expression and converts it into XML form
`static InputStream` `getInputStream(String fname, JarFile jarFile, JspCompilationContext ctxt, ErrorDispatcher err)`
`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, boolean XmlEscape)` Produces a String representing a call to the EL interpreter.
`static boolean` `isJavaIdentifier(String key)`
`static boolean` `isJavaKeyword(String key)` Test whether the argument is a Java keyword
`static String` `makeJavaIdentifier(String identifier)` Converts the given identifier to a legal Java identifier
`static String` `makeJavaIdentifierForAttribute(String identifier)` Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.
`static String` `makeJavaPackage(String path)` Converts the given path to a Java package or fully-qualified class name
`static String` `mangleChar(char ch)` Mangle the specified character to create a legal Java class name.
`static String` `replace(String name, char replace, String with)` Replaces any occurrences of the character `replace` with the string `with`.
`static Class<?>` `toClass(String type, ClassLoader loader)` Returns the `Class` 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>; It is converted into forms that can be understood by javac.
`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'

### 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 String getExprInXml(String expression)

Takes a potential expression and converts it into XML form

#### 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 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(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.

Throws:
  `JasperException`

#### escapeXml

    public static String escapeXml(String s)

Escape the 5 entities defined by XML.

#### replace

    public static String replace(String name,
                 char replace,
                 String with)

Replaces any occurrences of the character `replace` with the string `with`.

#### 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

#### toClass

    public static Class<?> toClass(String type,
                   ClassLoader loader)
                            throws 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").

Throws:
  `ClassNotFoundException`

#### 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.

#### coerceToPrimitiveBoolean

    public static String coerceToPrimitiveBoolean(String s,
                                  boolean isNamedAttribute)

#### coerceToBoolean

    public static String coerceToBoolean(String s,
                         boolean isNamedAttribute)

#### coerceToPrimitiveByte

    public static String coerceToPrimitiveByte(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)

#### coerceToPrimitiveDouble

    public static String coerceToPrimitiveDouble(String s,
                                 boolean isNamedAttribute)

#### coerceToDouble

    public static String coerceToDouble(String s,
                        boolean isNamedAttribute)

#### coerceToPrimitiveFloat

    public static String coerceToPrimitiveFloat(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)

#### coerceToPrimitiveShort

    public static String coerceToPrimitiveShort(String s,
                                boolean isNamedAttribute)

#### coerceToShort

    public static String coerceToShort(String s,
                       boolean isNamedAttribute)

#### coerceToPrimitiveLong

    public static String coerceToPrimitiveLong(String s,
                               boolean isNamedAttribute)

#### coerceToLong

    public static String coerceToLong(String s,
                      boolean isNamedAttribute)

#### getInputStream

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

Throws:
  `JasperException`
  `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 path
  `err` - Error dispatcher
Returns:
  Fully-qualified class name of the tag handler corresponding to the given tag file path
Throws:
  `JasperException`

#### 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

#### 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

#### makeJavaIdentifierForAttribute

    public static final String makeJavaIdentifierForAttribute(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 String mangleChar(char ch)

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

#### isJavaKeyword

    public static boolean isJavaKeyword(String key)

Test whether the argument is a Java keyword

#### isJavaIdentifier

    public static boolean isJavaIdentifier(String key)

#### 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` -

#### toJavaSourceType

    public 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>; It is converted into forms that can be understood by javac.