JspUtil (Apache Tomcat 10.1.2 API Documentation)

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
    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
    Modifier and Type | Method | Description
    --- | --- | ---
    `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