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

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `CHUNKSIZE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JspUtil()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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