# 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
  Modifier and Type
  Class
  Description
  `static class`
  `JspUtil.ValidAttribute`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CHUNKSIZE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JspUtil()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `booleanValue(String s)`
  Convert a String value to 'boolean'.
  `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.
  `static void`
  `checkScope(String scope, 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 Details

  - ### CHUNKSIZE

    public static final int CHUNKSIZE
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### JspUtil

    public JspUtil()

- ## Method Details

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