Package 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
`JspUtil()`

### Method Summary

All Methods Static Methods Concrete 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` `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 packageName, 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 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 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>;.
`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.

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

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

#### booleanValue

    public static boolean booleanValue​(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 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").

Parameters:
  `type` - The class name, array or primitive type
  `loader` - 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 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 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 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 packageName,
                                                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
  `packageName` - The package name
  `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 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.

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

#### isJavaKeyword

    public static boolean isJavaKeyword​(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 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` - The type from the TLD
Returns:
  the Java 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.

Parameters:
  `type` - the type to convert
Returns:
  the equivalent type in Java sources