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.
  • Field Details

    • CHUNKSIZE

      public static final int CHUNKSIZE
      Default chunk size for reading files.
      See Also:
  • 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)
      Generates code to coerce a string to a primitive boolean value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToBoolean

      public static String coerceToBoolean(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Boolean object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToPrimitiveByte

      public static String coerceToPrimitiveByte(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive byte value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToByte

      public static String coerceToByte(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Byte object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToChar

      public static String coerceToChar(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive char value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToCharacter

      public static String coerceToCharacter(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Character object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToPrimitiveDouble

      public static String coerceToPrimitiveDouble(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive double value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToDouble

      public static String coerceToDouble(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Double object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToPrimitiveFloat

      public static String coerceToPrimitiveFloat(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive float value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToFloat

      public static String coerceToFloat(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Float object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToInt

      public static String coerceToInt(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive int value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToInteger

      public static String coerceToInteger(String s, boolean isNamedAttribute)
      Generates code to coerce a string to an Integer object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToPrimitiveShort

      public static String coerceToPrimitiveShort(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive short value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToShort

      public static String coerceToShort(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Short object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToPrimitiveLong

      public static String coerceToPrimitiveLong(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a primitive long value.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • coerceToLong

      public static String coerceToLong(String s, boolean isNamedAttribute)
      Generates code to coerce a string to a Long object.
      Parameters:
      s - The string expression
      isNamedAttribute - Whether the value comes from a named attribute
      Returns:
      the generated coercion code
    • getInputStream

      public static BufferedInputStream getInputStream(String fname, Jar jar, JspCompilationContext ctxt) throws IOException
      Gets an input stream for the given file name.
      Parameters:
      fname - The file name
      jar - The JAR, or null
      ctxt - The compilation context
      Returns:
      the input stream
      Throws:
      IOException - if an I/O error occurs
    • getInputSource

      public static InputSource getInputSource(String fname, Jar jar, JspCompilationContext ctxt) throws IOException
      Gets an input source for the given file name.
      Parameters:
      fname - The file name
      jar - The JAR, or null
      ctxt - The compilation context
      Returns:
      the input source
      Throws:
      IOException - if an I/O error occurs
    • 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