Class JspUtil
java.lang.Object
org.apache.sling.scripting.jsp.jasper.compiler.JspUtil
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
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Convert a String value to 'boolean'.static void
checkAttributes
(String typeOfTag, org.apache.sling.scripting.jsp.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.sling.scripting.jsp.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
escapeQueryString
(String unescString) static char[]
escapeQuotes
(char[] chars) static String
Escape the 5 entities defined by XML.static String
Compute the canonical name from a Class instance.static String
static String
getExprInXml
(String expression) Takes a potential expression and converts it into XML formstatic InputStream
getInputStream
(String fname, JarFile jarFile, JspCompilationContext ctxt, ErrorDispatcher err) static String
getTagHandlerClassName
(String path, 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, boolean XmlEscape) Produces a String representing a call to the EL interpreter.static boolean
isExpression
(String token, boolean isXml) Checks if the token is a runtime expression.static final String
makeXmlJavaIdentifier
(String name) Converts the given Xml name to a legal Java identifier.static String
Deprecated.static char[]
removeQuotes
(char[] chars) static String
Replaces any occurrences of the character replace with the string with.static void
Deprecated.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 "[[[", where et, the element type can be one of ZBCDFIJS or L ; It is converted into forms that can be understood by javac. static String
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'static void
validateExpressions
(org.apache.sling.scripting.jsp.jasper.compiler.Mark where, String expressions, Class expectedType, javax.el.FunctionMapper functionMapper, ErrorDispatcher err) Deprecated.now delegated to the org.apache.el Package
-
Field Details
-
CHUNKSIZE
public static final int CHUNKSIZE- See Also:
-
-
Constructor Details
-
JspUtil
public JspUtil()
-
-
Method Details
-
removeQuotes
public static char[] removeQuotes(char[] chars) -
escapeQuotes
public static char[] escapeQuotes(char[] chars) -
isExpression
Checks if the token is a runtime expression. In standard JSP syntax, a runtime expression starts with '<%' and ends with '%>'. When the JSP document is in XML syntax, a runtime expression starts with '%=' and ends with '%'.- Parameters:
token
- The token to be checked return whether the token is a runtime expression or not.
-
getExpr
- Returns:
- the "expression" part of a runtime expression, taking the delimiters out.
-
getExprInXml
Takes a potential expression and converts it into XML form -
checkScope
public static void checkScope(String scope, org.apache.sling.scripting.jsp.jasper.compiler.Node n, ErrorDispatcher err) throws JasperException Checks to see if the given scope is valid.- Parameters:
scope
- The scope to be checkedn
- The Node containing the 'scope' attribute whose value is to be checkederr
- 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.sling.scripting.jsp.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.- Throws:
JasperException
-
escapeQueryString
-
escapeXml
Escape the 5 entities defined by XML. -
replace
Replaces any occurrences of the character replace with the string with. -
booleanValue
Convert a String value to 'boolean'. Besides the standard conversions done by Boolean.valueOf(s).booleanValue(), 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
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").
- Throws:
ClassNotFoundException
-
interpreterCall
public static String interpreterCall(boolean isTagFile, String expression, Class expectedType, String fnmapvar, boolean XmlEscape) Produces a String representing a call to the EL interpreter.- Parameters:
expression
- a String containing zero or more "${}" expressionsexpectedType
- the expected type of the interpreted resultfnmapvar
- Variable pointing to a function map.XmlEscape
- True if the result should do XML escaping- Returns:
- a String representing a call to the EL interpreter.
-
validateExpressions
@Deprecated public static void validateExpressions(org.apache.sling.scripting.jsp.jasper.compiler.Mark where, String expressions, Class expectedType, javax.el.FunctionMapper functionMapper, ErrorDispatcher err) throws JasperException Deprecated.now delegated to the org.apache.el PackageValidates the syntax of all ${} expressions within the given string.- Parameters:
where
- the approximate location of the expressions in the JSP pageexpressions
- a string containing zero or more "${}" expressionserr
- an error dispatcher to use- Throws:
JasperException
-
resetTemporaryVariableName
Deprecated.Resets the temporary variable name. (not thread-safe) -
nextTemporaryVariableName
Deprecated.Generates a new temporary variable name. (not thread-safe) -
coerceToPrimitiveBoolean
-
coerceToBoolean
-
coerceToPrimitiveByte
-
coerceToByte
-
coerceToChar
-
coerceToCharacter
-
coerceToPrimitiveDouble
-
coerceToDouble
-
coerceToPrimitiveFloat
-
coerceToFloat
-
coerceToInt
-
coerceToInteger
-
coerceToPrimitiveShort
-
coerceToShort
-
coerceToPrimitiveLong
-
coerceToLong
-
getInputStream
public static InputStream getInputStream(String fname, JarFile jarFile, JspCompilationContext ctxt, ErrorDispatcher err) throws JasperException, IOException - Throws:
JasperException
IOException
-
getTagHandlerClassName
public static String getTagHandlerClassName(String path, 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 patherr
- Error dispatcher- Returns:
- Fully-qualified class name of the tag handler corresponding to the given tag file path
- Throws:
JasperException
-
makeXmlJavaIdentifier
Converts the given Xml name to a legal Java identifier. This is slightly more efficient than makeJavaIdentifier in that we only need to worry about '.', '-', and ':' in the string. We also assume that the resultant string is further concatenated with some prefix string so that we don't have to worry about it being a Java key word.- Parameters:
name
- Identifier to convert- Returns:
- Legal Java identifier corresponding to the given identifier
-
toJavaSourceTypeFromTld
Handles taking input from TLDs 'java.lang.Object' -> 'java.lang.Object.class' 'int' -> 'int.class' 'void' -> 'Void.TYPE' 'int[]' -> 'int[].class'- Parameters:
type
-- Returns:
-
toJavaSourceType
Class.getName() return arrays in the form "[[[", where et, the element type can be one of ZBCDFIJS or L ; It is converted into forms that can be understood by javac. -
getCanonicalName
Compute the canonical name from a Class instance. Note that a simple replacment of '$' with '.' of a binary name would not work, as '$' is a legal Java Identifier character.- Parameters:
c
- A instance of java.lang.Class- Returns:
- The canonical name of c.
-