# 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, 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 final String`
`makeJavaIdentifier(String identifier)`
Converts the given identifier to a legal Java identifier
`static final String`
`makeJavaIdentifierForAttribute(String identifier)`
Converts the given identifier to a legal Java identifier to be used for JSP Tag file attribute names.
`static final String`
`makeJavaPackage(String path)`
Converts the given path to a Java package or fully-qualified class name
`static final 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, 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