You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2023/04/14 11:02:16 UTC
[tomcat] 02/08: Code clean-up - no functional change
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 7b329c113ca964592247cc3f7df362b575937085
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Apr 14 11:31:59 2023 +0100
Code clean-up - no functional change
---
java/jakarta/servlet/jsp/ErrorData.java | 21 +-
java/jakarta/servlet/jsp/HttpJspPage.java | 37 +-
.../jakarta/servlet/jsp/JspApplicationContext.java | 25 +-
java/jakarta/servlet/jsp/JspContext.java | 206 +++++------
java/jakarta/servlet/jsp/JspEngineInfo.java | 17 +-
java/jakarta/servlet/jsp/JspException.java | 42 +--
java/jakarta/servlet/jsp/JspFactory.java | 81 ++---
java/jakarta/servlet/jsp/JspPage.java | 67 ++--
java/jakarta/servlet/jsp/JspTagException.java | 50 ++-
java/jakarta/servlet/jsp/JspWriter.java | 363 ++++++++------------
java/jakarta/servlet/jsp/PageContext.java | 377 ++++++++-------------
java/jakarta/servlet/jsp/SkipPageException.java | 28 +-
java/jakarta/servlet/jsp/el/ELException.java | 16 +-
java/jakarta/servlet/jsp/el/ELParseException.java | 9 +-
java/jakarta/servlet/jsp/el/Expression.java | 35 +-
.../servlet/jsp/el/ExpressionEvaluator.java | 95 +++---
java/jakarta/servlet/jsp/el/FunctionMapper.java | 20 +-
.../servlet/jsp/el/ImplicitObjectELResolver.java | 29 +-
java/jakarta/servlet/jsp/el/ImportELResolver.java | 9 +-
.../jakarta/servlet/jsp/el/NotFoundELResolver.java | 24 +-
.../servlet/jsp/el/ScopedAttributeELResolver.java | 3 +-
java/jakarta/servlet/jsp/el/VariableResolver.java | 25 +-
java/jakarta/servlet/jsp/tagext/BodyContent.java | 46 +--
java/jakarta/servlet/jsp/tagext/BodyTag.java | 145 ++++----
.../jakarta/servlet/jsp/tagext/BodyTagSupport.java | 41 ++-
.../servlet/jsp/tagext/DynamicAttributes.java | 29 +-
java/jakarta/servlet/jsp/tagext/FunctionInfo.java | 7 +-
java/jakarta/servlet/jsp/tagext/IterationTag.java | 118 +++----
java/jakarta/servlet/jsp/tagext/JspFragment.java | 64 ++--
java/jakarta/servlet/jsp/tagext/JspIdConsumer.java | 3 +-
java/jakarta/servlet/jsp/tagext/JspTag.java | 3 +-
java/jakarta/servlet/jsp/tagext/PageData.java | 15 +-
java/jakarta/servlet/jsp/tagext/SimpleTag.java | 132 +++-----
.../servlet/jsp/tagext/SimpleTagSupport.java | 126 +++----
java/jakarta/servlet/jsp/tagext/Tag.java | 254 ++++++--------
java/jakarta/servlet/jsp/tagext/TagAdapter.java | 81 ++---
.../servlet/jsp/tagext/TagAttributeInfo.java | 126 +++----
java/jakarta/servlet/jsp/tagext/TagData.java | 56 ++-
java/jakarta/servlet/jsp/tagext/TagExtraInfo.java | 92 +++--
java/jakarta/servlet/jsp/tagext/TagFileInfo.java | 35 +-
java/jakarta/servlet/jsp/tagext/TagInfo.java | 273 ++++++---------
.../jakarta/servlet/jsp/tagext/TagLibraryInfo.java | 97 +++---
.../servlet/jsp/tagext/TagLibraryValidator.java | 110 +++---
java/jakarta/servlet/jsp/tagext/TagSupport.java | 84 ++---
.../servlet/jsp/tagext/TagVariableInfo.java | 40 +--
.../servlet/jsp/tagext/TryCatchFinally.java | 61 ++--
.../servlet/jsp/tagext/ValidationMessage.java | 35 +-
java/jakarta/servlet/jsp/tagext/VariableInfo.java | 128 +++----
48 files changed, 1531 insertions(+), 2249 deletions(-)
diff --git a/java/jakarta/servlet/jsp/ErrorData.java b/java/jakarta/servlet/jsp/ErrorData.java
index 7ab0f12b67..82e641d338 100644
--- a/java/jakarta/servlet/jsp/ErrorData.java
+++ b/java/jakarta/servlet/jsp/ErrorData.java
@@ -17,12 +17,12 @@
package jakarta.servlet.jsp;
/**
- * Contains information about an error, for error pages. The information
- * contained in this instance is meaningless if not used in the context of an
- * error page. To indicate a JSP is an error page, the page author must set the
+ * Contains information about an error, for error pages. The information contained in this instance is meaningless if
+ * not used in the context of an error page. To indicate a JSP is an error page, the page author must set the
* isErrorPage attribute of the page directive to "true".
*
* @see PageContext#getErrorData
+ *
* @since JSP 2.0
*/
public final class ErrorData {
@@ -35,17 +35,12 @@ public final class ErrorData {
/**
* Creates a new ErrorData object.
*
- * @param throwable
- * The Throwable that is the cause of the error
- * @param statusCode
- * The status code of the error
- * @param uri
- * The request URI
- * @param servletName
- * The name of the servlet invoked
+ * @param throwable The Throwable that is the cause of the error
+ * @param statusCode The status code of the error
+ * @param uri The request URI
+ * @param servletName The name of the servlet invoked
*/
- public ErrorData(Throwable throwable, int statusCode, String uri,
- String servletName) {
+ public ErrorData(Throwable throwable, int statusCode, String uri, String servletName) {
this.throwable = throwable;
this.statusCode = statusCode;
this.uri = uri;
diff --git a/java/jakarta/servlet/jsp/HttpJspPage.java b/java/jakarta/servlet/jsp/HttpJspPage.java
index 2f757f8964..d7e6d6d7b2 100644
--- a/java/jakarta/servlet/jsp/HttpJspPage.java
+++ b/java/jakarta/servlet/jsp/HttpJspPage.java
@@ -23,13 +23,11 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
- * The HttpJspPage interface describes the interaction that a JSP Page
- * Implementation Class must satisfy when using the HTTP protocol.
- *
+ * The HttpJspPage interface describes the interaction that a JSP Page Implementation Class must satisfy when using the
+ * HTTP protocol.
* <p>
- * The behaviour is identical to that of the JspPage, except for the signature
- * of the _jspService method, which is now expressible in the Java type
- * system and included explicitly in the interface.
+ * The behaviour is identical to that of the JspPage, except for the signature of the _jspService method, which is now
+ * expressible in the Java type system and included explicitly in the interface.
*
* @see JspPage
*/
@@ -37,24 +35,19 @@ import jakarta.servlet.http.HttpServletResponse;
public interface HttpJspPage extends JspPage {
/**
- * The _jspService()method corresponds to the body of the JSP page. This
- * method is defined automatically by the JSP container and should never
- * be defined by the JSP page author.
+ * The _jspService()method corresponds to the body of the JSP page. This method is defined automatically by the JSP
+ * container and should never be defined by the JSP page author.
* <p>
- * If a superclass is specified using the extends attribute, that
- * superclass may choose to perform some actions in its service() method
- * before or after calling the _jspService() method. See using the extends
- * attribute in the JSP_Engine chapter of the JSP specification.
+ * If a superclass is specified using the extends attribute, that superclass may choose to perform some actions in
+ * its service() method before or after calling the _jspService() method. See using the extends attribute in the
+ * JSP_Engine chapter of the JSP specification.
*
- * @param request Provides client request information to the JSP.
+ * @param request Provides client request information to the JSP.
* @param response Assists the JSP in sending a response to the client.
- * @throws ServletException Thrown if an error occurred during the
- * processing of the JSP and that the container should take
- * appropriate action to clean up the request.
- * @throws IOException Thrown if an error occurred while writing the
- * response for this page.
+ *
+ * @throws ServletException Thrown if an error occurred during the processing of the JSP and that the container
+ * should take appropriate action to clean up the request.
+ * @throws IOException Thrown if an error occurred while writing the response for this page.
*/
- void _jspService(HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException;
+ void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
}
diff --git a/java/jakarta/servlet/jsp/JspApplicationContext.java b/java/jakarta/servlet/jsp/JspApplicationContext.java
index 47d06006e9..cdec5b90b3 100644
--- a/java/jakarta/servlet/jsp/JspApplicationContext.java
+++ b/java/jakarta/servlet/jsp/JspApplicationContext.java
@@ -30,12 +30,11 @@ import jakarta.el.ExpressionFactory;
public interface JspApplicationContext {
/**
- * Registers an <code>ELContextListener</code> that will be notified
- * whenever a new <code>ELContext</code> is created.
+ * Registers an <code>ELContextListener</code> that will be notified whenever a new <code>ELContext</code> is
+ * created.
* <p>
- * At the very least, any <code>ELContext</code> instantiated will have
- * reference to the <code>JspContext</code> under
- * <code>JspContext.class</code>.
+ * At the very least, any <code>ELContext</code> instantiated will have reference to the <code>JspContext</code>
+ * under <code>JspContext.class</code>.
*
* @param listener The listener to add
*/
@@ -43,8 +42,8 @@ public interface JspApplicationContext {
/**
* <p>
- * Adds an <code>ELResolver</code> to the chain of EL variable and property
- * management within JSP pages and Tag files.
+ * Adds an <code>ELResolver</code> to the chain of EL variable and property management within JSP pages and Tag
+ * files.
* </p>
* <p>
* JSP has a default set of ELResolvers to chain for all EL evaluation:
@@ -59,18 +58,16 @@ public interface JspApplicationContext {
* <li><code>ScopedAttributeELResolver</code></li>
* </ul>
*
- * @param resolver
- * an additional resolver
- * @throws IllegalStateException
- * if called after the application's
- * <code>ServletContextListeners</code> have been initialized.
+ * @param resolver an additional resolver
+ *
+ * @throws IllegalStateException if called after the application's <code>ServletContextListeners</code> have been
+ * initialized.
*/
void addELResolver(ELResolver resolver);
/**
* <p>
- * Returns the JSP container's <code>ExpressionFactory</code> implementation
- * for EL use.
+ * Returns the JSP container's <code>ExpressionFactory</code> implementation for EL use.
* </p>
*
* @return an <code>ExpressionFactory</code> implementation
diff --git a/java/jakarta/servlet/jsp/JspContext.java b/java/jakarta/servlet/jsp/JspContext.java
index 32d13d60ff..c21fc73c23 100644
--- a/java/jakarta/servlet/jsp/JspContext.java
+++ b/java/jakarta/servlet/jsp/JspContext.java
@@ -22,46 +22,33 @@ import jakarta.el.ELContext;
/**
* <p>
- * <code>JspContext</code> serves as the base class for the
- * PageContext class and abstracts all information that is not specific
- * to servlets. This allows for Simple Tag Extensions to be used
- * outside of the context of a request/response Servlet.
+ * <code>JspContext</code> serves as the base class for the PageContext class and abstracts all information that is not
+ * specific to servlets. This allows for Simple Tag Extensions to be used outside of the context of a request/response
+ * Servlet.
* <p>
- * The JspContext provides a number of facilities to the
- * page/component author and page implementor, including:
+ * The JspContext provides a number of facilities to the page/component author and page implementor, including:
* <ul>
* <li>a single API to manage the various scoped namespaces
* <li>a mechanism to obtain the JspWriter for output
- * <li>a mechanism to expose page directive attributes to the
- * scripting environment
+ * <li>a mechanism to expose page directive attributes to the scripting environment
* </ul>
- *
- * <p><B>Methods Intended for Container Generated Code</B>
* <p>
- * The following methods enable the <B>management of nested</B> JspWriter
- * streams to implement Tag Extensions: <code>pushBody()</code> and
- * <code>popBody()</code>
- *
- * <p><B>Methods Intended for JSP authors</B>
+ * <B>Methods Intended for Container Generated Code</B>
* <p>
- * Some methods provide <B>uniform access</B> to the diverse objects
- * representing scopes.
- * The implementation must use the underlying machinery
- * corresponding to that scope, so information can be passed back and
- * forth between the underlying environment (e.g. Servlets) and JSP pages.
- * The methods are:
- * <code>setAttribute()</code>, <code>getAttribute()</code>,
- * <code>findAttribute()</code>, <code>removeAttribute()</code>,
- * <code>getAttributesScope()</code> and
- * <code>getAttributeNamesInScope()</code>.
- *
+ * The following methods enable the <B>management of nested</B> JspWriter streams to implement Tag Extensions:
+ * <code>pushBody()</code> and <code>popBody()</code>
* <p>
- * The following methods provide <B>convenient access</B> to implicit objects:
- * <code>getOut()</code>
- *
+ * <B>Methods Intended for JSP authors</B>
* <p>
- * The following methods provide <B>programmatic access</b> to the
- * Expression Language evaluator:
+ * Some methods provide <B>uniform access</B> to the diverse objects representing scopes. The implementation must use
+ * the underlying machinery corresponding to that scope, so information can be passed back and forth between the
+ * underlying environment (e.g. Servlets) and JSP pages. The methods are: <code>setAttribute()</code>,
+ * <code>getAttribute()</code>, <code>findAttribute()</code>, <code>removeAttribute()</code>,
+ * <code>getAttributesScope()</code> and <code>getAttributeNamesInScope()</code>.
+ * <p>
+ * The following methods provide <B>convenient access</B> to implicit objects: <code>getOut()</code>
+ * <p>
+ * The following methods provide <B>programmatic access</b> to the Expression Language evaluator:
* <code>getExpressionEvaluator()</code>, <code>getVariableResolver()</code>
*
* @since JSP 2.0
@@ -70,55 +57,47 @@ import jakarta.el.ELContext;
public abstract class JspContext {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public JspContext() {
// NOOP by default
}
/**
- * Register the name and value specified with page scope semantics.
- * If the value passed in is <code>null</code>, this has the same
- * effect as calling
- * <code>removeAttribute( name, PageContext.PAGE_SCOPE )</code>.
- *
- * @param name the name of the attribute to set
- * @param value the value to associate with the name, or null if the
- * attribute is to be removed from the page scope.
+ * Register the name and value specified with page scope semantics. If the value passed in is <code>null</code>,
+ * this has the same effect as calling <code>removeAttribute( name, PageContext.PAGE_SCOPE )</code>.
+ *
+ * @param name the name of the attribute to set
+ * @param value the value to associate with the name, or null if the attribute is to be removed from the page scope.
+ *
* @throws NullPointerException if the name is null
*/
public abstract void setAttribute(String name, Object value);
/**
- * Register the name and value specified with appropriate
- * scope semantics. If the value passed in is <code>null</code>,
- * this has the same effect as calling
- * <code>removeAttribute( name, scope )</code>.
- *
- * @param name the name of the attribute to set
- * @param value the object to associate with the name, or null if
- * the attribute is to be removed from the specified scope.
+ * Register the name and value specified with appropriate scope semantics. If the value passed in is
+ * <code>null</code>, this has the same effect as calling <code>removeAttribute( name, scope )</code>.
+ *
+ * @param name the name of the attribute to set
+ * @param value the object to associate with the name, or null if the attribute is to be removed from the specified
+ * scope.
* @param scope the scope with which to associate the name/object
*
- * @throws NullPointerException if the name is null
+ * @throws NullPointerException if the name is null
* @throws IllegalArgumentException if the scope is invalid
- * @throws IllegalStateException if the scope is
- * PageContext.SESSION_SCOPE but the page that was requested
- * does not participate in a session or the session has been
- * invalidated.
+ * @throws IllegalStateException if the scope is PageContext.SESSION_SCOPE but the page that was requested does
+ * not participate in a session or the session has been invalidated.
*/
public abstract void setAttribute(String name, Object value, int scope);
/**
- * Returns the object associated with the name in the page scope or null
- * if not found.
+ * Returns the object associated with the name in the page scope or null if not found.
*
* @param name the name of the attribute to get
- * @return the object associated with the name in the page scope
- * or null if not found.
+ *
+ * @return the object associated with the name in the page scope or null if not found.
*
* @throws NullPointerException if the name is null
*/
@@ -126,58 +105,56 @@ public abstract class JspContext {
public abstract Object getAttribute(String name);
/**
- * Return the object associated with the name in the specified
- * scope or null if not found.
+ * Return the object associated with the name in the specified scope or null if not found.
*
- * @param name the name of the attribute to set
+ * @param name the name of the attribute to set
* @param scope the scope with which to associate the name/object
- * @return the object associated with the name in the specified
- * scope or null if not found.
*
- * @throws NullPointerException if the name is null
+ * @return the object associated with the name in the specified scope or null if not found.
+ *
+ * @throws NullPointerException if the name is null
* @throws IllegalArgumentException if the scope is invalid
- * @throws IllegalStateException if the scope is
- * PageContext.SESSION_SCOPE but the page that was requested
- * does not participate in a session or the session has been
- * invalidated.
+ * @throws IllegalStateException if the scope is PageContext.SESSION_SCOPE but the page that was requested does
+ * not participate in a session or the session has been invalidated.
*/
public abstract Object getAttribute(String name, int scope);
/**
- * Searches for the named attribute in page, request, session (if valid),
- * and application scope(s) in order and returns the value associated or
- * null.
+ * Searches for the named attribute in page, request, session (if valid), and application scope(s) in order and
+ * returns the value associated or null.
*
* @param name the name of the attribute to search for
+ *
* @return the value associated or null
+ *
* @throws NullPointerException if the name is null
*/
public abstract Object findAttribute(String name);
/**
- * Remove the object reference associated with the given name
- * from all scopes. Does nothing if there is no such object.
+ * Remove the object reference associated with the given name from all scopes. Does nothing if there is no such
+ * object.
*
* @param name The name of the object to remove.
+ *
* @throws NullPointerException if the name is null
*/
public abstract void removeAttribute(String name);
/**
- * Remove the object reference associated with the specified name
- * in the given scope. Does nothing if there is no such object.
+ * Remove the object reference associated with the specified name in the given scope. Does nothing if there is no
+ * such object.
*
- * @param name The name of the object to remove.
+ * @param name The name of the object to remove.
* @param scope The scope where to look.
+ *
* @throws IllegalArgumentException if the scope is invalid
- * @throws IllegalStateException if the scope is
- * PageContext.SESSION_SCOPE but the page that was requested
- * does not participate in a session or the session has been
- * invalidated.
- * @throws NullPointerException if the name is null
+ * @throws IllegalStateException if the scope is PageContext.SESSION_SCOPE but the page that was requested does
+ * not participate in a session or the session has been invalidated.
+ * @throws NullPointerException if the name is null
*/
public abstract void removeAttribute(String name, int scope);
@@ -186,7 +163,9 @@ public abstract class JspContext {
* Get the scope where a given attribute is defined.
*
* @param name the name of the attribute to return the scope for
+ *
* @return the scope of the object associated with the name specified or 0
+ *
* @throws NullPointerException if the name is null
*/
@@ -196,13 +175,12 @@ public abstract class JspContext {
* Enumerate all the attributes in a given scope.
*
* @param scope the scope to enumerate all the attributes for
- * @return an enumeration of names (java.lang.String) of all the
- * attributes the specified scope
+ *
+ * @return an enumeration of names (java.lang.String) of all the attributes the specified scope
+ *
* @throws IllegalArgumentException if the scope is invalid
- * @throws IllegalStateException if the scope is
- * PageContext.SESSION_SCOPE but the page that was requested
- * does not participate in a session or the session has been
- * invalidated.
+ * @throws IllegalStateException if the scope is PageContext.SESSION_SCOPE but the page that was requested does
+ * not participate in a session or the session has been invalidated.
*/
public abstract Enumeration<String> getAttributeNamesInScope(int scope);
@@ -215,69 +193,65 @@ public abstract class JspContext {
public abstract JspWriter getOut();
/**
- * Provides programmatic access to the ExpressionEvaluator.
- * The JSP Container must return a valid instance of an
+ * Provides programmatic access to the ExpressionEvaluator. The JSP Container must return a valid instance of an
* ExpressionEvaluator that can parse EL expressions.
*
* @return A valid instance of an ExpressionEvaluator.
+ *
* @since JSP 2.0
- * @deprecated As of JSP 2.1, replaced by
- * JspApplicationContext.getExpressionFactory()
+ *
+ * @deprecated As of JSP 2.1, replaced by JspApplicationContext.getExpressionFactory()
*/
@Deprecated
public abstract jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator();
/**
- * Obtain the ELContext for this JSPContext. Each JSPContext has a dedicated
- * ELContext.
+ * Obtain the ELContext for this JSPContext. Each JSPContext has a dedicated ELContext.
*
* @return the ELContext for this JSPContext
*/
public abstract ELContext getELContext();
/**
- * Returns an instance of a VariableResolver that provides access to the
- * implicit objects specified in the JSP specification using this JspContext
- * as the context object.
+ * Returns an instance of a VariableResolver that provides access to the implicit objects specified in the JSP
+ * specification using this JspContext as the context object.
*
* @return A valid instance of a VariableResolver.
+ *
* @since JSP 2.0
- * @deprecated As of JSP 2.1,
- * replaced by jakarta.el.ELContext.getELResolver()
- * which can be obtained by
- * jspContext.getELContext().getELResolver()
+ *
+ * @deprecated As of JSP 2.1, replaced by jakarta.el.ELContext.getELResolver() which can be obtained by
+ * jspContext.getELContext().getELResolver()
*/
@Deprecated
public abstract jakarta.servlet.jsp.el.VariableResolver getVariableResolver();
/**
- * Return a new JspWriter object that sends output to the
- * provided Writer. Saves the current "out" JspWriter,
- * and updates the value of the "out" attribute in the
- * page scope attribute namespace of the JspContext.
- * <p>The returned JspWriter must implement all methods and
- * behave as though it were unbuffered. More specifically:
+ * Return a new JspWriter object that sends output to the provided Writer. Saves the current "out" JspWriter, and
+ * updates the value of the "out" attribute in the page scope attribute namespace of the JspContext.
+ * <p>
+ * The returned JspWriter must implement all methods and behave as though it were unbuffered. More specifically:
* </p>
* <ul>
- * <li>clear() must throw an IOException</li>
- * <li>clearBuffer() does nothing</li>
- * <li>getBufferSize() always returns 0</li>
- * <li>getRemaining() always returns 0</li>
+ * <li>clear() must throw an IOException</li>
+ * <li>clearBuffer() does nothing</li>
+ * <li>getBufferSize() always returns 0</li>
+ * <li>getRemaining() always returns 0</li>
* </ul>
*
- * @param writer The Writer for the returned JspWriter to send
- * output to.
+ * @param writer The Writer for the returned JspWriter to send output to.
+ *
* @return a new JspWriter that writes to the given Writer.
+ *
* @since JSP 2.0
*/
- public JspWriter pushBody( java.io.Writer writer ) {
+ public JspWriter pushBody(java.io.Writer writer) {
return null; // XXX to implement
}
/**
- * Return the previous JspWriter "out" saved by the matching
- * pushBody(), and update the value of the "out" attribute in
- * the page scope attribute namespace of the JspContext.
+ * Return the previous JspWriter "out" saved by the matching pushBody(), and update the value of the "out" attribute
+ * in the page scope attribute namespace of the JspContext.
*
* @return the saved JspWriter.
*/
diff --git a/java/jakarta/servlet/jsp/JspEngineInfo.java b/java/jakarta/servlet/jsp/JspEngineInfo.java
index 6c2ba3bdb6..3ccb77bb8b 100644
--- a/java/jakarta/servlet/jsp/JspEngineInfo.java
+++ b/java/jakarta/servlet/jsp/JspEngineInfo.java
@@ -17,29 +17,24 @@
package jakarta.servlet.jsp;
/**
- * The JspEngineInfo is an abstract class that provides information on the
- * current JSP engine.
+ * The JspEngineInfo is an abstract class that provides information on the current JSP engine.
*/
public abstract class JspEngineInfo {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public JspEngineInfo() {
// NOOP by default
}
/**
- * Return the version number of the JSP specification that is supported by
- * this JSP engine.
+ * Return the version number of the JSP specification that is supported by this JSP engine.
* <p>
- * Specification version numbers that consists of positive decimal integers
- * separated by periods ".", for example, "2.0" or "1.2.3.4.5.6.7".
- * This allows an extensible number to be used to
- * represent major, minor, micro, etc versions.
- * The version number must begin with a number.
+ * Specification version numbers that consists of positive decimal integers separated by periods ".", for example,
+ * "2.0" or "1.2.3.4.5.6.7". This allows an extensible number to be used to represent major, minor, micro, etc
+ * versions. The version number must begin with a number.
* </p>
*
* @return the specification version, null is returned if it is not known
diff --git a/java/jakarta/servlet/jsp/JspException.java b/java/jakarta/servlet/jsp/JspException.java
index 975a05f821..f061ecc205 100644
--- a/java/jakarta/servlet/jsp/JspException.java
+++ b/java/jakarta/servlet/jsp/JspException.java
@@ -17,8 +17,7 @@
package jakarta.servlet.jsp;
/**
- * A generic exception known to the JSP engine; uncaught
- * JspExceptions will result in an invocation of the errorpage
+ * A generic exception known to the JSP engine; uncaught JspExceptions will result in an invocation of the errorpage
* machinery.
*/
public class JspException extends Exception {
@@ -35,12 +34,10 @@ public class JspException extends Exception {
/**
- * Constructs a new JSP exception with the
- * specified message. The message can be written
- * to the server log and/or displayed for the user.
+ * Constructs a new JSP exception with the specified message. The message can be written to the server log and/or
+ * displayed for the user.
*
- * @param msg a <code>String</code> specifying the text of the exception
- * message
+ * @param msg a <code>String</code> specifying the text of the exception message
*/
public JspException(String msg) {
super(msg);
@@ -48,19 +45,14 @@ public class JspException extends Exception {
/**
- * Constructs a new <code>JSPException</code> with the specified detail
- * message and cause. The cause is saved for later retrieval by the
- * <code>java.lang.Throwable.getCause()</code> and {@link #getRootCause()}
- * methods.
+ * Constructs a new <code>JSPException</code> with the specified detail message and cause. The cause is saved for
+ * later retrieval by the <code>java.lang.Throwable.getCause()</code> and {@link #getRootCause()} methods.
*
* @see java.lang.Exception#Exception(String, Throwable)
*
- * @param message a <code>String</code> containing the text of the
- * exception message
- *
- * @param cause the <code>Throwable</code> exception that
- * interfered with the JSP's normal operation,
- * making this JSP exception necessary
+ * @param message a <code>String</code> containing the text of the exception message
+ * @param cause the <code>Throwable</code> exception that interfered with the JSP's normal operation, making this
+ * JSP exception necessary
*/
public JspException(String message, Throwable cause) {
@@ -69,16 +61,13 @@ public class JspException extends Exception {
/**
- * Constructs a new <code>JSPException</code> with the specified cause.
- * The cause is saved for later retrieval by the
- * <code>java.lang.Throwable.getCause()</code> and {@link #getRootCause()}
- * methods.
+ * Constructs a new <code>JSPException</code> with the specified cause. The cause is saved for later retrieval by
+ * the <code>java.lang.Throwable.getCause()</code> and {@link #getRootCause()} methods.
*
* @see java.lang.Exception#Exception(Throwable)
*
- * @param cause the <code>Throwable</code> exception that
- * interfered with the JSP's normal operation, making
- * the JSP exception necessary
+ * @param cause the <code>Throwable</code> exception that interfered with the JSP's normal operation, making the JSP
+ * exception necessary
*/
public JspException(Throwable cause) {
@@ -89,10 +78,9 @@ public class JspException extends Exception {
/**
* Returns the exception that caused this JSP exception.
*
- * @return the <code>Throwable</code> that caused this JSP exception
+ * @return the <code>Throwable</code> that caused this JSP exception
*
- * @deprecated As of JSP 2.1, replaced by
- * <code>java.lang.Throwable.getCause()</code>
+ * @deprecated As of JSP 2.1, replaced by <code>java.lang.Throwable.getCause()</code>
*/
@Deprecated
public Throwable getRootCause() {
diff --git a/java/jakarta/servlet/jsp/JspFactory.java b/java/jakarta/servlet/jsp/JspFactory.java
index 01db9018bd..4abc2dee40 100644
--- a/java/jakarta/servlet/jsp/JspFactory.java
+++ b/java/jakarta/servlet/jsp/JspFactory.java
@@ -23,19 +23,15 @@ import jakarta.servlet.ServletResponse;
/**
* <p>
- * The JspFactory is an abstract class that defines a number of factory
- * methods available to a JSP page at runtime for the purposes of creating
- * instances of various interfaces and classes used to support the JSP
- * implementation.
+ * The JspFactory is an abstract class that defines a number of factory methods available to a JSP page at runtime for
+ * the purposes of creating instances of various interfaces and classes used to support the JSP implementation.
* <p>
- * A conformant JSP Engine implementation will, during it's initialization
- * instantiate an implementation dependent subclass of this class, and make
- * it globally available for use by JSP implementation classes by registering
- * the instance created with this class via the
- * static <code> setDefaultFactory() </code> method.
+ * A conformant JSP Engine implementation will, during it's initialization instantiate an implementation dependent
+ * subclass of this class, and make it globally available for use by JSP implementation classes by registering the
+ * instance created with this class via the static <code> setDefaultFactory() </code> method.
* <p>
- * The PageContext and the JspEngineInfo classes are the only
- * implementation-dependent classes that can be created from the factory.
+ * The PageContext and the JspEngineInfo classes are the only implementation-dependent classes that can be created from
+ * the factory.
* <p>
* JspFactory objects should not be used by JSP page authors.
*/
@@ -45,8 +41,7 @@ public abstract class JspFactory {
private static volatile JspFactory deflt = null;
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public JspFactory() {
// NOOP by default
@@ -54,11 +49,11 @@ public abstract class JspFactory {
/**
* <p>
- * set the default factory for this implementation. It is illegal for
- * any principal other than the JSP Engine runtime to call this method.
+ * set the default factory for this implementation. It is illegal for any principal other than the JSP Engine
+ * runtime to call this method.
* </p>
*
- * @param deflt The default factory implementation
+ * @param deflt The default factory implementation
*/
public static void setDefaultFactory(JspFactory deflt) {
@@ -77,53 +72,42 @@ public abstract class JspFactory {
/**
* <p>
- * obtains an instance of an implementation dependent
- * jakarta.servlet.jsp.PageContext abstract class for the calling Servlet
- * and currently pending request and response.
+ * obtains an instance of an implementation dependent jakarta.servlet.jsp.PageContext abstract class for the calling
+ * Servlet and currently pending request and response.
* </p>
- *
* <p>
- * This method is typically called early in the processing of the
- * _jspService() method of a JSP implementation class in order to
- * obtain a PageContext object for the request being processed.
+ * This method is typically called early in the processing of the _jspService() method of a JSP implementation class
+ * in order to obtain a PageContext object for the request being processed.
* </p>
* <p>
- * Invoking this method shall result in the PageContext.initialize()
- * method being invoked. The PageContext returned is properly initialized.
+ * Invoking this method shall result in the PageContext.initialize() method being invoked. The PageContext returned
+ * is properly initialized.
* </p>
* <p>
- * All PageContext objects obtained via this method shall be released
- * by invoking releasePageContext().
+ * All PageContext objects obtained via this method shall be released by invoking releasePageContext().
* </p>
*
* @param servlet the requesting servlet
* @param request the current request pending on the servlet
* @param response the current response pending on the servlet
- * @param errorPageURL the URL of the error page for the requesting JSP, or
- * null
+ * @param errorPageURL the URL of the error page for the requesting JSP, or null
* @param needsSession true if the JSP participates in a session
- * @param buffer size of buffer in bytes, {@link JspWriter#NO_BUFFER}
- * if no buffer, {@link JspWriter#DEFAULT_BUFFER}
- * if implementation default.
- * @param autoflush should the buffer autoflush to the output stream on
- * buffer overflow, or throw an IOException?
+ * @param buffer size of buffer in bytes, {@link JspWriter#NO_BUFFER} if no buffer,
+ * {@link JspWriter#DEFAULT_BUFFER} if implementation default.
+ * @param autoflush should the buffer autoflush to the output stream on buffer overflow, or throw an IOException?
*
* @return the page context
*
* @see jakarta.servlet.jsp.PageContext
*/
- public abstract PageContext getPageContext(Servlet servlet,
- ServletRequest request, ServletResponse response,
- String errorPageURL, boolean needsSession, int buffer,
- boolean autoflush);
+ public abstract PageContext getPageContext(Servlet servlet, ServletRequest request, ServletResponse response,
+ String errorPageURL, boolean needsSession, int buffer, boolean autoflush);
/**
* <p>
- * called to release a previously allocated PageContext object.
- * Results in PageContext.release() being invoked.
- * This method should be invoked prior to returning from the _jspService()
- * method of a JSP implementation class.
+ * called to release a previously allocated PageContext object. Results in PageContext.release() being invoked. This
+ * method should be invoked prior to returning from the _jspService() method of a JSP implementation class.
* </p>
*
* @param pc A PageContext previously obtained by getPageContext()
@@ -132,8 +116,7 @@ public abstract class JspFactory {
/**
* <p>
- * called to get implementation-specific information on the current JSP
- * engine.
+ * called to get implementation-specific information on the current JSP engine.
* </p>
*
* @return a JspEngineInfo object describing the current JSP engine
@@ -143,15 +126,15 @@ public abstract class JspFactory {
/**
* <p>
- * Obtain the <code>JspApplicationContext</code> instance that was
- * associated within the passed <code>ServletContext</code> for this web
- * application.
+ * Obtain the <code>JspApplicationContext</code> instance that was associated within the passed
+ * <code>ServletContext</code> for this web application.
* </p>
*
* @param context the current web application's <code>ServletContext</code>
+ *
* @return <code>JspApplicationContext</code> instance
+ *
* @since JSP 2.1
*/
- public abstract JspApplicationContext getJspApplicationContext(
- ServletContext context);
+ public abstract JspApplicationContext getJspApplicationContext(ServletContext context);
}
diff --git a/java/jakarta/servlet/jsp/JspPage.java b/java/jakarta/servlet/jsp/JspPage.java
index 078e22623c..c9bc850af4 100644
--- a/java/jakarta/servlet/jsp/JspPage.java
+++ b/java/jakarta/servlet/jsp/JspPage.java
@@ -19,36 +19,29 @@ package jakarta.servlet.jsp;
import jakarta.servlet.Servlet;
/**
- * The JspPage interface describes the generic interaction that a JSP Page
- * Implementation class must satisfy; pages that use the HTTP protocol
- * are described by the HttpJspPage interface.
- *
- * <p><B>Two plus One Methods</B>
+ * The JspPage interface describes the generic interaction that a JSP Page Implementation class must satisfy; pages that
+ * use the HTTP protocol are described by the HttpJspPage interface.
* <p>
- * The interface defines a protocol with 3 methods; only two of
- * them: jspInit() and jspDestroy() are part of this interface as
- * the signature of the third method: _jspService() depends on
- * the specific protocol used and cannot be expressed in a generic
- * way in Java.
+ * <B>Two plus One Methods</B>
* <p>
- * A class implementing this interface is responsible for invoking
- * the above methods at the appropriate time based on the
- * corresponding Servlet-based method invocations.
+ * The interface defines a protocol with 3 methods; only two of them: jspInit() and jspDestroy() are part of this
+ * interface as the signature of the third method: _jspService() depends on the specific protocol used and cannot be
+ * expressed in a generic way in Java.
* <p>
- * The jspInit() and jspDestroy() methods can be defined by a JSP
- * author, but the _jspService() method is defined automatically
- * by the JSP processor based on the contents of the JSP page.
- *
- * <p><B>_jspService()</B>
+ * A class implementing this interface is responsible for invoking the above methods at the appropriate time based on
+ * the corresponding Servlet-based method invocations.
+ * <p>
+ * The jspInit() and jspDestroy() methods can be defined by a JSP author, but the _jspService() method is defined
+ * automatically by the JSP processor based on the contents of the JSP page.
+ * <p>
+ * <B>_jspService()</B>
* <p>
- * The _jspService()method corresponds to the body of the JSP page. This
- * method is defined automatically by the JSP container and should never
- * be defined by the JSP page author.
+ * The _jspService()method corresponds to the body of the JSP page. This method is defined automatically by the JSP
+ * container and should never be defined by the JSP page author.
* <p>
- * If a superclass is specified using the extends attribute, that
- * superclass may choose to perform some actions in its service() method
- * before or after calling the _jspService() method. See using the extends
- * attribute in the JSP_Engine chapter of the JSP specification.
+ * If a superclass is specified using the extends attribute, that superclass may choose to perform some actions in its
+ * service() method before or after calling the _jspService() method. See using the extends attribute in the JSP_Engine
+ * chapter of the JSP specification.
* <p>
* The specific signature depends on the protocol supported by the JSP page.
*
@@ -63,27 +56,17 @@ import jakarta.servlet.Servlet;
public interface JspPage extends Servlet {
/**
- * The jspInit() method is invoked when the JSP page is initialized. It
- * is the responsibility of the JSP implementation (and of the class
- * mentioned by the extends attribute, if present) that at this point
- * invocations to the getServletConfig() method will return the desired
- * value.
- *
- * A JSP page can override this method by including a definition for it
- * in a declaration element.
- *
- * A JSP page should redefine the init() method from Servlet.
+ * The jspInit() method is invoked when the JSP page is initialized. It is the responsibility of the JSP
+ * implementation (and of the class mentioned by the extends attribute, if present) that at this point invocations
+ * to the getServletConfig() method will return the desired value. A JSP page can override this method by including
+ * a definition for it in a declaration element. A JSP page should redefine the init() method from Servlet.
*/
void jspInit();
/**
- * The jspDestroy() method is invoked when the JSP page is about to be
- * destroyed.
- *
- * A JSP page can override this method by including a definition for it
- * in a declaration element.
- *
- * A JSP page should redefine the destroy() method from Servlet.
+ * The jspDestroy() method is invoked when the JSP page is about to be destroyed. A JSP page can override this
+ * method by including a definition for it in a declaration element. A JSP page should redefine the destroy() method
+ * from Servlet.
*/
void jspDestroy();
diff --git a/java/jakarta/servlet/jsp/JspTagException.java b/java/jakarta/servlet/jsp/JspTagException.java
index e1064db3a9..9507c9ae89 100644
--- a/java/jakarta/servlet/jsp/JspTagException.java
+++ b/java/jakarta/servlet/jsp/JspTagException.java
@@ -17,21 +17,18 @@
package jakarta.servlet.jsp;
/**
- * Exception to be used by a Tag Handler to indicate some unrecoverable error.
- * This error is to be caught by the top level of the JSP page and will result
- * in an error page.
+ * Exception to be used by a Tag Handler to indicate some unrecoverable error. This error is to be caught by the top
+ * level of the JSP page and will result in an error page.
*/
public class JspTagException extends JspException {
private static final long serialVersionUID = 1L;
/**
- * Constructs a new JspTagException with the specified message. The message
- * can be written to the server log and/or displayed for the user.
+ * Constructs a new JspTagException with the specified message. The message can be written to the server log and/or
+ * displayed for the user.
*
- * @param msg
- * a <code>String</code> specifying the text of the exception
- * message
+ * @param msg a <code>String</code> specifying the text of the exception message
*/
public JspTagException(String msg) {
super(msg);
@@ -45,17 +42,13 @@ public class JspTagException extends JspException {
}
/**
- * Constructs a new JspTagException when the JSP Tag needs to throw an
- * exception and include a message about the "root cause" exception that
- * interfered with its normal operation, including a description message.
+ * Constructs a new JspTagException when the JSP Tag needs to throw an exception and include a message about the
+ * "root cause" exception that interfered with its normal operation, including a description message.
+ *
+ * @param message a <code>String</code> containing the text of the exception message
+ * @param rootCause the <code>Throwable</code> exception that interfered with the JSP Tag's normal operation, making
+ * this JSP Tag exception necessary
*
- * @param message
- * a <code>String</code> containing the text of the exception
- * message
- * @param rootCause
- * the <code>Throwable</code> exception that interfered with the
- * JSP Tag's normal operation, making this JSP Tag exception
- * necessary
* @since JSP 2.0
*/
public JspTagException(String message, Throwable rootCause) {
@@ -63,20 +56,17 @@ public class JspTagException extends JspException {
}
/**
- * Constructs a new JSP Tag exception when the JSP Tag needs to throw an
- * exception and include a message about the "root cause" exception that
- * interfered with its normal operation. The exception's message is based on
- * the localized message of the underlying exception.
+ * Constructs a new JSP Tag exception when the JSP Tag needs to throw an exception and include a message about the
+ * "root cause" exception that interfered with its normal operation. The exception's message is based on the
+ * localized message of the underlying exception.
* <p>
- * This method calls the <code>getLocalizedMessage</code> method on the
- * <code>Throwable</code> exception to get a localized exception message.
- * When subclassing <code>JspTagException</code>, this method can be
- * overridden to create an exception message designed for a specific locale.
+ * This method calls the <code>getLocalizedMessage</code> method on the <code>Throwable</code> exception to get a
+ * localized exception message. When subclassing <code>JspTagException</code>, this method can be overridden to
+ * create an exception message designed for a specific locale.
+ *
+ * @param rootCause the <code>Throwable</code> exception that interfered with the JSP Tag's normal operation, making
+ * the JSP Tag exception necessary
*
- * @param rootCause
- * the <code>Throwable</code> exception that interfered with the
- * JSP Tag's normal operation, making the JSP Tag exception
- * necessary
* @since JSP 2.0
*/
public JspTagException(Throwable rootCause) {
diff --git a/java/jakarta/servlet/jsp/JspWriter.java b/java/jakarta/servlet/jsp/JspWriter.java
index c196ace91c..7a0eb2e9ff 100644
--- a/java/jakarta/servlet/jsp/JspWriter.java
+++ b/java/jakarta/servlet/jsp/JspWriter.java
@@ -20,57 +20,42 @@ import java.io.IOException;
/**
* <p>
- * The actions and template data in a JSP page is written using the JspWriter
- * object that is referenced by the implicit variable out which is initialized
- * automatically using methods in the PageContext object.
+ * The actions and template data in a JSP page is written using the JspWriter object that is referenced by the implicit
+ * variable out which is initialized automatically using methods in the PageContext object.
* <p>
- * This abstract class emulates some of the functionality found in the
- * java.io.BufferedWriter and java.io.PrintWriter classes, however it differs in
- * that it throws java.io.IOException from the print methods while PrintWriter
- * does not.
+ * This abstract class emulates some of the functionality found in the java.io.BufferedWriter and java.io.PrintWriter
+ * classes, however it differs in that it throws java.io.IOException from the print methods while PrintWriter does not.
* <p>
* <B>Buffering</B>
* <p>
- * The initial JspWriter object is associated with the PrintWriter object of the
- * ServletResponse in a way that depends on whether the page is or is not
- * buffered. If the page is not buffered, output written to this JspWriter
- * object will be written through to the PrintWriter directly, which will be
- * created if necessary by invoking the getWriter() method on the response
- * object. But if the page is buffered, the PrintWriter object will not be
- * created until the buffer is flushed and operations like setContentType() are
- * legal. Since this flexibility simplifies programming substantially, buffering
- * is the default for JSP pages.
+ * The initial JspWriter object is associated with the PrintWriter object of the ServletResponse in a way that depends
+ * on whether the page is or is not buffered. If the page is not buffered, output written to this JspWriter object will
+ * be written through to the PrintWriter directly, which will be created if necessary by invoking the getWriter() method
+ * on the response object. But if the page is buffered, the PrintWriter object will not be created until the buffer is
+ * flushed and operations like setContentType() are legal. Since this flexibility simplifies programming substantially,
+ * buffering is the default for JSP pages.
* <p>
- * Buffering raises the issue of what to do when the buffer is exceeded. Two
- * approaches can be taken:
+ * Buffering raises the issue of what to do when the buffer is exceeded. Two approaches can be taken:
* <ul>
- * <li>Exceeding the buffer is not a fatal error; when the buffer is exceeded,
- * just flush the output.
- * <li>Exceeding the buffer is a fatal error; when the buffer is exceeded, raise
- * an exception.
+ * <li>Exceeding the buffer is not a fatal error; when the buffer is exceeded, just flush the output.
+ * <li>Exceeding the buffer is a fatal error; when the buffer is exceeded, raise an exception.
* </ul>
* <p>
- * Both approaches are valid, and thus both are supported in the JSP technology.
- * The behavior of a page is controlled by the autoFlush attribute, which
- * defaults to true. In general, JSP pages that need to be sure that correct and
- * complete data has been sent to their client may want to set autoFlush to
- * false, with a typical case being that where the client is an application
- * itself. On the other hand, JSP pages that send data that is meaningful even
- * when partially constructed may want to set autoFlush to true; such as when
- * the data is sent for immediate display through a browser. Each application
- * will need to consider their specific needs.
+ * Both approaches are valid, and thus both are supported in the JSP technology. The behavior of a page is controlled by
+ * the autoFlush attribute, which defaults to true. In general, JSP pages that need to be sure that correct and complete
+ * data has been sent to their client may want to set autoFlush to false, with a typical case being that where the
+ * client is an application itself. On the other hand, JSP pages that send data that is meaningful even when partially
+ * constructed may want to set autoFlush to true; such as when the data is sent for immediate display through a browser.
+ * Each application will need to consider their specific needs.
* <p>
- * An alternative considered was to make the buffer size unbounded; but, this
- * had the disadvantage that runaway computations would consume an unbounded
- * amount of resources.
+ * An alternative considered was to make the buffer size unbounded; but, this had the disadvantage that runaway
+ * computations would consume an unbounded amount of resources.
* <p>
- * The "out" implicit variable of a JSP implementation class is of this type. If
- * the page directive selects autoflush="true" then all the I/O operations on
- * this class shall automatically flush the contents of the buffer if an
- * overflow condition would result if the current operation were performed
- * without a flush. If autoflush="false" then all the I/O operations on this
- * class shall throw an IOException if performing the current operation would
- * result in a buffer overflow condition.
+ * The "out" implicit variable of a JSP implementation class is of this type. If the page directive selects
+ * autoflush="true" then all the I/O operations on this class shall automatically flush the contents of the buffer if an
+ * overflow condition would result if the current operation were performed without a flush. If autoflush="false" then
+ * all the I/O operations on this class shall throw an IOException if performing the current operation would result in a
+ * buffer overflow condition.
*
* @see java.io.Writer
* @see java.io.BufferedWriter
@@ -84,24 +69,20 @@ public abstract class JspWriter extends java.io.Writer {
public static final int NO_BUFFER = 0;
/**
- * Constant indicating that the Writer is buffered and is using the
- * implementation default buffer size.
+ * Constant indicating that the Writer is buffered and is using the implementation default buffer size.
*/
public static final int DEFAULT_BUFFER = -1;
/**
- * Constant indicating that the Writer is buffered and is unbounded; this is
- * used in BodyContent.
+ * Constant indicating that the Writer is buffered and is unbounded; this is used in BodyContent.
*/
public static final int UNBOUNDED_BUFFER = -2;
/**
* Protected constructor.
*
- * @param bufferSize
- * the size of the buffer to be used by the JspWriter
- * @param autoFlush
- * whether the JspWriter should be autoflushing
+ * @param bufferSize the size of the buffer to be used by the JspWriter
+ * @param autoFlush whether the JspWriter should be autoflushing
*/
protected JspWriter(int bufferSize, boolean autoFlush) {
this.bufferSize = bufferSize;
@@ -109,293 +90,250 @@ public abstract class JspWriter extends java.io.Writer {
}
/**
- * Write a line separator. The line separator string is defined by the
- * system property <code>line.separator</code>, and is not necessarily a
- * single newline ('\n') character.
+ * Write a line separator. The line separator string is defined by the system property <code>line.separator</code>,
+ * and is not necessarily a single newline ('\n') character.
*
- * @exception IOException
- * If an I/O error occurs
+ * @exception IOException If an I/O error occurs
*/
public abstract void newLine() throws IOException;
/**
* Print a boolean value. The string produced by <code>{@link
- * java.lang.String#valueOf(boolean)}</code>
- * is written to the JspWriter's buffer or, if no buffer is used, directly
+ * java.lang.String#valueOf(boolean)}</code> is written to the JspWriter's buffer or, if no buffer is used, directly
* to the underlying writer.
*
- * @param b
- * The <code>boolean</code> to be printed
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param b The <code>boolean</code> to be printed
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(boolean b) throws IOException;
/**
- * Print a character. The character is written to the JspWriter's buffer or,
- * if no buffer is used, directly to the underlying writer.
+ * Print a character. The character is written to the JspWriter's buffer or, if no buffer is used, directly to the
+ * underlying writer.
+ *
+ * @param c The <code>char</code> to be printed
*
- * @param c
- * The <code>char</code> to be printed
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(char c) throws IOException;
/**
* Print an integer. The string produced by <code>{@link
- * java.lang.String#valueOf(int)}</code>
- * is written to the JspWriter's buffer or, if no buffer is used, directly
- * to the underlying writer.
+ * java.lang.String#valueOf(int)}</code> is written to the JspWriter's buffer or, if no buffer is used, directly to
+ * the underlying writer.
+ *
+ * @param i The <code>int</code> to be printed
*
- * @param i
- * The <code>int</code> to be printed
* @see java.lang.Integer#toString(int)
- * @throws java.io.IOException
- * If an error occurred while writing
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(int i) throws IOException;
/**
* Print a long integer. The string produced by <code>{@link
- * java.lang.String#valueOf(long)}</code>
- * is written to the JspWriter's buffer or, if no buffer is used, directly
- * to the underlying writer.
+ * java.lang.String#valueOf(long)}</code> is written to the JspWriter's buffer or, if no buffer is used, directly to
+ * the underlying writer.
+ *
+ * @param l The <code>long</code> to be printed
*
- * @param l
- * The <code>long</code> to be printed
* @see java.lang.Long#toString(long)
- * @throws java.io.IOException
- * If an error occurred while writing
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(long l) throws IOException;
/**
* Print a floating-point number. The string produced by <code>{@link
- * java.lang.String#valueOf(float)}</code>
- * is written to the JspWriter's buffer or, if no buffer is used, directly
+ * java.lang.String#valueOf(float)}</code> is written to the JspWriter's buffer or, if no buffer is used, directly
* to the underlying writer.
*
- * @param f
- * The <code>float</code> to be printed
+ * @param f The <code>float</code> to be printed
+ *
* @see java.lang.Float#toString(float)
- * @throws java.io.IOException
- * If an error occurred while writing
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(float f) throws IOException;
/**
* Print a double-precision floating-point number. The string produced by
- * <code>{@link java.lang.String#valueOf(double)}</code> is written to the
- * JspWriter's buffer or, if no buffer is used, directly to the underlying
- * writer.
+ * <code>{@link java.lang.String#valueOf(double)}</code> is written to the JspWriter's buffer or, if no buffer is
+ * used, directly to the underlying writer.
+ *
+ * @param d The <code>double</code> to be printed
*
- * @param d
- * The <code>double</code> to be printed
* @see java.lang.Double#toString(double)
- * @throws java.io.IOException
- * If an error occurred while writing
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(double d) throws IOException;
/**
- * Print an array of characters. The characters are written to the
- * JspWriter's buffer or, if no buffer is used, directly to the underlying
- * writer.
+ * Print an array of characters. The characters are written to the JspWriter's buffer or, if no buffer is used,
+ * directly to the underlying writer.
*
- * @param s
- * The array of chars to be printed
- * @throws NullPointerException
- * If <code>s</code> is <code>null</code>
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param s The array of chars to be printed
+ *
+ * @throws NullPointerException If <code>s</code> is <code>null</code>
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(char s[]) throws IOException;
/**
- * Print a string. If the argument is <code>null</code> then the string
- * <code>"null"</code> is printed. Otherwise, the string's characters are
- * written to the JspWriter's buffer or, if no buffer is used, directly to
- * the underlying writer.
+ * Print a string. If the argument is <code>null</code> then the string <code>"null"</code> is printed. Otherwise,
+ * the string's characters are written to the JspWriter's buffer or, if no buffer is used, directly to the
+ * underlying writer.
*
- * @param s
- * The <code>String</code> to be printed
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param s The <code>String</code> to be printed
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(String s) throws IOException;
/**
* Print an object. The string produced by the <code>{@link
- * java.lang.String#valueOf(Object)}</code>
- * method is written to the JspWriter's buffer or, if no buffer is used,
+ * java.lang.String#valueOf(Object)}</code> method is written to the JspWriter's buffer or, if no buffer is used,
* directly to the underlying writer.
*
- * @param obj
- * The <code>Object</code> to be printed
+ * @param obj The <code>Object</code> to be printed
+ *
* @see java.lang.Object#toString()
- * @throws java.io.IOException
- * If an error occurred while writing
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void print(Object obj) throws IOException;
/**
- * Terminate the current line by writing the line separator string. The line
- * separator string is defined by the system property
- * <code>line.separator</code>, and is not necessarily a single newline
- * character (<code>'\n'</code>).
+ * Terminate the current line by writing the line separator string. The line separator string is defined by the
+ * system property <code>line.separator</code>, and is not necessarily a single newline character
+ * (<code>'\n'</code>).
*
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println() throws IOException;
/**
- * Print a boolean value and then terminate the line. This method behaves as
- * though it invokes <code>{@link #print(boolean)}</code> and then
- * <code>{@link #println()}</code>.
+ * Print a boolean value and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(boolean)}</code> and then <code>{@link #println()}</code>.
+ *
+ * @param x the boolean to write
*
- * @param x
- * the boolean to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(boolean x) throws IOException;
/**
- * Print a character and then terminate the line. This method behaves as
- * though it invokes <code>{@link #print(char)}</code> and then <code>{@link
- * #println()}</code>
- * .
+ * Print a character and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(char)}</code> and then <code>{@link
+ * #println()}</code> .
+ *
+ * @param x the char to write
*
- * @param x
- * the char to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(char x) throws IOException;
/**
- * Print an integer and then terminate the line. This method behaves as
- * though it invokes <code>{@link #print(int)}</code> and then <code>{@link
- * #println()}</code>
- * .
+ * Print an integer and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(int)}</code> and then <code>{@link
+ * #println()}</code> .
*
- * @param x
- * the int to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param x the int to write
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(int x) throws IOException;
/**
- * Print a long integer and then terminate the line. This method behaves as
- * though it invokes <code>{@link #print(long)}</code> and then
- * <code>{@link #println()}</code>.
+ * Print a long integer and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(long)}</code> and then <code>{@link #println()}</code>.
+ *
+ * @param x the long to write
*
- * @param x
- * the long to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(long x) throws IOException;
/**
- * Print a floating-point number and then terminate the line. This method
- * behaves as though it invokes <code>{@link #print(float)}</code> and then
- * <code>{@link #println()}</code>.
+ * Print a floating-point number and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(float)}</code> and then <code>{@link #println()}</code>.
*
- * @param x
- * the float to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param x the float to write
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(float x) throws IOException;
/**
- * Print a double-precision floating-point number and then terminate the
- * line. This method behaves as though it invokes <code>{@link
- * #print(double)}</code> and
- * then <code>{@link #println()}</code>.
+ * Print a double-precision floating-point number and then terminate the line. This method behaves as though it
+ * invokes <code>{@link
+ * #print(double)}</code> and then <code>{@link #println()}</code>.
+ *
+ * @param x the double to write
*
- * @param x
- * the double to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(double x) throws IOException;
/**
- * Print an array of characters and then terminate the line. This method
- * behaves as though it invokes <code>print(char[])</code> and then
- * <code>println()</code>.
+ * Print an array of characters and then terminate the line. This method behaves as though it invokes
+ * <code>print(char[])</code> and then <code>println()</code>.
*
- * @param x
- * the char[] to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @param x the char[] to write
+ *
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(char x[]) throws IOException;
/**
- * Print a String and then terminate the line. This method behaves as though
- * it invokes <code>{@link #print(String)}</code> and then
- * <code>{@link #println()}</code>.
+ * Print a String and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(String)}</code> and then <code>{@link #println()}</code>.
+ *
+ * @param x the String to write
*
- * @param x
- * the String to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(String x) throws IOException;
/**
- * Print an Object and then terminate the line. This method behaves as
- * though it invokes <code>{@link #print(Object)}</code> and then
- * <code>{@link #println()}</code>.
+ * Print an Object and then terminate the line. This method behaves as though it invokes
+ * <code>{@link #print(Object)}</code> and then <code>{@link #println()}</code>.
+ *
+ * @param x the Object to write
*
- * @param x
- * the Object to write
- * @throws java.io.IOException
- * If an error occurred while writing
+ * @throws java.io.IOException If an error occurred while writing
*/
public abstract void println(Object x) throws IOException;
/**
- * Clear the contents of the buffer. If the buffer has been already been
- * flushed then the clear operation shall throw an IOException to signal the
- * fact that some data has already been irrevocably written to the client
+ * Clear the contents of the buffer. If the buffer has been already been flushed then the clear operation shall
+ * throw an IOException to signal the fact that some data has already been irrevocably written to the client
* response stream.
*
- * @throws IOException
- * If an I/O error occurs
+ * @throws IOException If an I/O error occurs
*/
public abstract void clear() throws IOException;
/**
- * Clears the current contents of the buffer. Unlike clear(), this method
- * will not throw an IOException if the buffer has already been flushed. It
- * merely clears the current content of the buffer and returns.
+ * Clears the current contents of the buffer. Unlike clear(), this method will not throw an IOException if the
+ * buffer has already been flushed. It merely clears the current content of the buffer and returns.
*
- * @throws IOException
- * If an I/O error occurs
+ * @throws IOException If an I/O error occurs
*/
public abstract void clearBuffer() throws IOException;
/**
- * Flush the stream. If the stream has saved any characters from the various
- * write() methods in a buffer, write them immediately to their intended
- * destination. Then, if that destination is another character or byte
- * stream, flush it. Thus one flush() invocation will flush all the buffers
- * in a chain of Writers and OutputStreams.
+ * Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them
+ * immediately to their intended destination. Then, if that destination is another character or byte stream, flush
+ * it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.
* <p>
* The method may be invoked indirectly if the buffer size is exceeded.
* <p>
- * Once a stream has been closed, further write() or flush() invocations
- * will cause an IOException to be thrown.
+ * Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown.
*
- * @exception IOException
- * If an I/O error occurs
+ * @exception IOException If an I/O error occurs
*/
@Override
public abstract void flush() throws IOException;
@@ -403,14 +341,12 @@ public abstract class JspWriter extends java.io.Writer {
/**
* Close the stream, flushing it first.
* <p>
- * This method needs not be invoked explicitly for the initial JspWriter as
- * the code generated by the JSP container will automatically include a call
- * to close().
+ * This method needs not be invoked explicitly for the initial JspWriter as the code generated by the JSP container
+ * will automatically include a call to close().
* <p>
* Closing a previously-closed stream, unlike flush(), has no effect.
*
- * @exception IOException
- * If an I/O error occurs
+ * @exception IOException If an I/O error occurs
*/
@Override
public abstract void close() throws IOException;
@@ -434,8 +370,7 @@ public abstract class JspWriter extends java.io.Writer {
/**
* This method indicates whether the JspWriter is autoFlushing.
*
- * @return if this JspWriter is auto flushing or throwing IOExceptions on
- * buffer overflow conditions
+ * @return if this JspWriter is auto flushing or throwing IOExceptions on buffer overflow conditions
*/
public boolean isAutoFlush() {
return autoFlush;
diff --git a/java/jakarta/servlet/jsp/PageContext.java b/java/jakarta/servlet/jsp/PageContext.java
index c6cfa91700..dacf8e1e93 100644
--- a/java/jakarta/servlet/jsp/PageContext.java
+++ b/java/jakarta/servlet/jsp/PageContext.java
@@ -30,101 +30,83 @@ import jakarta.servlet.jsp.tagext.BodyContent;
/**
* <p>
- * PageContext extends JspContext to provide useful context information for
- * when JSP technology is used in a Servlet environment.
+ * PageContext extends JspContext to provide useful context information for when JSP technology is used in a Servlet
+ * environment.
* <p>
- * A PageContext instance provides access to all the namespaces associated
- * with a JSP page, provides access to several page attributes, as well as
- * a layer above the implementation details. Implicit objects are added
- * to the pageContext automatically.
- *
- * <p> The <code> PageContext </code> class is an abstract class, designed to be
- * extended to provide implementation dependent implementations thereof, by
- * conformant JSP engine runtime environments. A PageContext instance is
- * obtained by a JSP implementation class by calling the
- * JspFactory.getPageContext() method, and is released by calling
+ * A PageContext instance provides access to all the namespaces associated with a JSP page, provides access to several
+ * page attributes, as well as a layer above the implementation details. Implicit objects are added to the pageContext
+ * automatically.
+ * <p>
+ * The <code> PageContext </code> class is an abstract class, designed to be extended to provide implementation
+ * dependent implementations thereof, by conformant JSP engine runtime environments. A PageContext instance is obtained
+ * by a JSP implementation class by calling the JspFactory.getPageContext() method, and is released by calling
* JspFactory.releasePageContext().
- *
- * <p> An example of how PageContext, JspFactory, and other classes can be
- * used within a JSP Page Implementation object is given elsewhere.
- *
* <p>
- * The PageContext provides a number of facilities to the page/component
- * author and page implementor, including:
+ * An example of how PageContext, JspFactory, and other classes can be used within a JSP Page Implementation object is
+ * given elsewhere.
+ * <p>
+ * The PageContext provides a number of facilities to the page/component author and page implementor, including:
* <ul>
* <li>a single API to manage the various scoped namespaces
* <li>a number of convenience API's to access various public objects
* <li>a mechanism to obtain the JspWriter for output
* <li>a mechanism to manage session usage by the page
- * <li>a mechanism to expose page directive attributes to the scripting
- * environment
- * <li>mechanisms to forward or include the current request to other active
- * components in the application
+ * <li>a mechanism to expose page directive attributes to the scripting environment
+ * <li>mechanisms to forward or include the current request to other active components in the application
* <li>a mechanism to handle errorpage exception processing
* </ul>
- *
- * <p><B>Methods Intended for Container Generated Code</B>
- * <p>Some methods are intended to be used by the code generated by the
- * container, not by code written by JSP page authors, or JSP tag library
- * authors.
- * <p>The methods supporting <B>lifecycle</B> are <code>initialize()</code>
- * and <code>release()</code>
- *
* <p>
- * The following methods enable the <B>management of nested</B> JspWriter
- * streams to implement Tag Extensions: <code>pushBody()</code>
- *
- * <p><B>Methods Intended for JSP authors</B>
+ * <B>Methods Intended for Container Generated Code</B>
* <p>
- * The following methods provide <B>convenient access</B> to implicit objects:
- * <code>getException()</code>, <code>getPage()</code>
- * <code>getRequest()</code>, <code>getResponse()</code>,
- * <code>getSession()</code>, <code>getServletConfig()</code>
- * and <code>getServletContext()</code>.
- *
+ * Some methods are intended to be used by the code generated by the container, not by code written by JSP page authors,
+ * or JSP tag library authors.
+ * <p>
+ * The methods supporting <B>lifecycle</B> are <code>initialize()</code> and <code>release()</code>
+ * <p>
+ * The following methods enable the <B>management of nested</B> JspWriter streams to implement Tag Extensions:
+ * <code>pushBody()</code>
* <p>
- * The following methods provide support for <B>forwarding, inclusion
- * and error handling</B>:
- * <code>forward()</code>, <code>include()</code>,
- * and <code>handlePageException()</code>.
+ * <B>Methods Intended for JSP authors</B>
+ * <p>
+ * The following methods provide <B>convenient access</B> to implicit objects: <code>getException()</code>,
+ * <code>getPage()</code> <code>getRequest()</code>, <code>getResponse()</code>, <code>getSession()</code>,
+ * <code>getServletConfig()</code> and <code>getServletContext()</code>.
+ * <p>
+ * The following methods provide support for <B>forwarding, inclusion and error handling</B>: <code>forward()</code>,
+ * <code>include()</code>, and <code>handlePageException()</code>.
*/
public abstract class PageContext extends JspContext {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public PageContext() {
// NOOP by default
}
/**
- * Page scope: (this is the default) the named reference remains available
- * in this PageContext until the return from the current Servlet.service()
- * invocation.
+ * Page scope: (this is the default) the named reference remains available in this PageContext until the return from
+ * the current Servlet.service() invocation.
*/
public static final int PAGE_SCOPE = 1;
/**
- * Request scope: the named reference remains available from the
- * ServletRequest associated with the Servlet until the current request
- * is completed.
+ * Request scope: the named reference remains available from the ServletRequest associated with the Servlet until
+ * the current request is completed.
*/
public static final int REQUEST_SCOPE = 2;
/**
- * Session scope (only valid if this page participates in a session):
- * the named reference remains available from the HttpSession (if any)
- * associated with the Servlet until the HttpSession is invalidated.
+ * Session scope (only valid if this page participates in a session): the named reference remains available from the
+ * HttpSession (if any) associated with the Servlet until the HttpSession is invalidated.
*/
public static final int SESSION_SCOPE = 3;
/**
- * Application scope: named reference remains available in the
- * ServletContext until it is reclaimed.
+ * Application scope: named reference remains available in the ServletContext until it is reclaimed.
*/
public static final int APPLICATION_SCOPE = 4;
@@ -177,45 +159,34 @@ public abstract class PageContext extends JspContext {
public static final String APPLICATION = "jakarta.servlet.jsp.jspApplication";
/**
- * Name used to store uncaught exception in ServletRequest attribute
- * list and PageContext name table.
+ * Name used to store uncaught exception in ServletRequest attribute list and PageContext name table.
*/
public static final String EXCEPTION = "jakarta.servlet.jsp.jspException";
/**
* <p>
- * The initialize method is called to initialize an uninitialized PageContext
- * so that it may be used by a JSP Implementation class to service an
- * incoming request and response within it's _jspService() method.
- *
+ * The initialize method is called to initialize an uninitialized PageContext so that it may be used by a JSP
+ * Implementation class to service an incoming request and response within it's _jspService() method.
* <p>
- * This method is typically called from JspFactory.getPageContext() in
- * order to initialize state.
- *
+ * This method is typically called from JspFactory.getPageContext() in order to initialize state.
* <p>
- * This method is required to create an initial JspWriter, and associate
- * the "out" name in page scope with this newly created object.
- *
+ * This method is required to create an initial JspWriter, and associate the "out" name in page scope with this
+ * newly created object.
* <p>
* This method should not be used by page or tag library authors.
*
- * @param servlet The Servlet that is associated with this PageContext
- * @param request The currently pending request for this Servlet
- * @param response The currently pending response for this Servlet
- * @param errorPageURL The value of the errorpage attribute from the page
- * directive or null
- * @param needsSession The value of the session attribute from the
- * page directive
- * @param bufferSize The value of the buffer attribute from the page
- * directive
- * @param autoFlush The value of the autoflush attribute from the page
- * directive
- *
- * @throws IOException during creation of JspWriter
- * @throws IllegalStateException if out not correctly initialized
- * @throws IllegalArgumentException If one of the given parameters
- * is invalid
+ * @param servlet The Servlet that is associated with this PageContext
+ * @param request The currently pending request for this Servlet
+ * @param response The currently pending response for this Servlet
+ * @param errorPageURL The value of the errorpage attribute from the page directive or null
+ * @param needsSession The value of the session attribute from the page directive
+ * @param bufferSize The value of the buffer attribute from the page directive
+ * @param autoFlush The value of the autoflush attribute from the page directive
+ *
+ * @throws IOException during creation of JspWriter
+ * @throws IllegalStateException if out not correctly initialized
+ * @throws IllegalArgumentException If one of the given parameters is invalid
*/
public abstract void initialize(Servlet servlet, ServletRequest request, ServletResponse response,
@@ -224,17 +195,13 @@ public abstract class PageContext extends JspContext {
/**
* <p>
- * This method shall "reset" the internal state of a PageContext, releasing
- * all internal references, and preparing the PageContext for potential
- * reuse by a later invocation of initialize(). This method is typically
- * called from JspFactory.releasePageContext().
- *
+ * This method shall "reset" the internal state of a PageContext, releasing all internal references, and preparing
+ * the PageContext for potential reuse by a later invocation of initialize(). This method is typically called from
+ * JspFactory.releasePageContext().
* <p>
* Subclasses shall envelope this method.
- *
* <p>
- * This method should not be used by page or tag library authors.
- *
+ * This method should not be used by page or tag library authors.
*/
public abstract void release();
@@ -248,11 +215,9 @@ public abstract class PageContext extends JspContext {
public abstract HttpSession getSession();
/**
- * The current value of the page object (In a Servlet environment,
- * this is an instance of jakarta.servlet.Servlet).
+ * The current value of the page object (In a Servlet environment, this is an instance of jakarta.servlet.Servlet).
*
- * @return the Page implementation class instance associated
- * with this PageContext
+ * @return the Page implementation class instance associated with this PageContext
*/
public abstract Object getPage();
@@ -300,192 +265,151 @@ public abstract class PageContext extends JspContext {
/**
* <p>
- * This method is used to re-direct, or "forward" the current
- * ServletRequest and ServletResponse to another active component in
- * the application.
+ * This method is used to re-direct, or "forward" the current ServletRequest and ServletResponse to another active
+ * component in the application.
* </p>
* <p>
- * If the <I> relativeUrlPath </I> begins with a "/" then the URL specified
- * is calculated relative to the DOCROOT of the <code> ServletContext </code>
- * for this JSP. If the path does not begin with a "/" then the URL
- * specified is calculated relative to the URL of the request that was
- * mapped to the calling JSP.
+ * If the <I> relativeUrlPath </I> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
+ * the <code> ServletContext </code> for this JSP. If the path does not begin with a "/" then the URL specified is
+ * calculated relative to the URL of the request that was mapped to the calling JSP.
* </p>
* <p>
- * It is only valid to call this method from a <code> Thread </code>
- * executing within a <code> _jspService(...) </code> method of a JSP.
+ * It is only valid to call this method from a <code> Thread </code> executing within a
+ * <code> _jspService(...) </code> method of a JSP.
* </p>
* <p>
- * Once this method has been called successfully, it is illegal for the
- * calling <code> Thread </code> to attempt to modify the <code>
- * ServletResponse </code> object. Any such attempt to do so, shall result
- * in undefined behavior. Typically, callers immediately return from
- * <code> _jspService(...) </code> after calling this method.
+ * Once this method has been called successfully, it is illegal for the calling <code> Thread </code> to attempt to
+ * modify the <code>
+ * ServletResponse </code> object. Any such attempt to do so, shall result in undefined behavior. Typically, callers
+ * immediately return from <code> _jspService(...) </code> after calling this method.
* </p>
*
- * @param relativeUrlPath specifies the relative URL path to the target
- * resource as described above
+ * @param relativeUrlPath specifies the relative URL path to the target resource as described above
*
- * @throws IllegalStateException if <code> ServletResponse </code> is not
- * in a state where a forward can be performed
- * @throws ServletException if the page that was forwarded to throws
- * a ServletException
- * @throws IOException if an I/O error occurred while forwarding
+ * @throws IllegalStateException if <code> ServletResponse </code> is not in a state where a forward can be
+ * performed
+ * @throws ServletException if the page that was forwarded to throws a ServletException
+ * @throws IOException if an I/O error occurred while forwarding
*/
- public abstract void forward(String relativeUrlPath)
- throws ServletException, IOException;
+ public abstract void forward(String relativeUrlPath) throws ServletException, IOException;
/**
* <p>
- * Causes the resource specified to be processed as part of the current
- * ServletRequest and ServletResponse being processed by the calling Thread.
- * The output of the target resources processing of the request is written
- * directly to the ServletResponse output stream.
+ * Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
+ * processed by the calling Thread. The output of the target resources processing of the request is written directly
+ * to the ServletResponse output stream.
* </p>
* <p>
- * The current JspWriter "out" for this JSP is flushed as a side-effect
- * of this call, prior to processing the include.
+ * The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to processing the
+ * include.
* </p>
* <p>
- * If the <I> relativeUrlPath </I> begins with a "/" then the URL specified
- * is calculated relative to the DOCROOT of the <code>ServletContext</code>
- * for this JSP. If the path does not begin with a "/" then the URL
- * specified is calculated relative to the URL of the request that was
- * mapped to the calling JSP.
+ * If the <I> relativeUrlPath </I> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
+ * the <code>ServletContext</code> for this JSP. If the path does not begin with a "/" then the URL specified is
+ * calculated relative to the URL of the request that was mapped to the calling JSP.
* </p>
* <p>
- * It is only valid to call this method from a <code> Thread </code>
- * executing within a <code> _jspService(...) </code> method of a JSP.
+ * It is only valid to call this method from a <code> Thread </code> executing within a
+ * <code> _jspService(...) </code> method of a JSP.
* </p>
*
- * @param relativeUrlPath specifies the relative URL path to the target
- * resource to be included
+ * @param relativeUrlPath specifies the relative URL path to the target resource to be included
*
- * @throws ServletException if the page that was forwarded to throws
- * a ServletException
- * @throws IOException if an I/O error occurred while forwarding
+ * @throws ServletException if the page that was forwarded to throws a ServletException
+ * @throws IOException if an I/O error occurred while forwarding
*/
- public abstract void include(String relativeUrlPath)
- throws ServletException, IOException;
+ public abstract void include(String relativeUrlPath) throws ServletException, IOException;
/**
* <p>
- * Causes the resource specified to be processed as part of the current
- * ServletRequest and ServletResponse being processed by the calling Thread.
- * The output of the target resources processing of the request is written
- * directly to the current JspWriter returned by a call to getOut().
+ * Causes the resource specified to be processed as part of the current ServletRequest and ServletResponse being
+ * processed by the calling Thread. The output of the target resources processing of the request is written directly
+ * to the current JspWriter returned by a call to getOut().
* </p>
* <p>
- * If flush is true, The current JspWriter "out" for this JSP
- * is flushed as a side-effect of this call, prior to processing
- * the include. Otherwise, the JspWriter "out" is not flushed.
+ * If flush is true, The current JspWriter "out" for this JSP is flushed as a side-effect of this call, prior to
+ * processing the include. Otherwise, the JspWriter "out" is not flushed.
* </p>
* <p>
- * If the <i>relativeUrlPath</i> begins with a "/" then the URL specified
- * is calculated relative to the DOCROOT of the <code>ServletContext</code>
- * for this JSP. If the path does not begin with a "/" then the URL
- * specified is calculated relative to the URL of the request that was
- * mapped to the calling JSP.
+ * If the <i>relativeUrlPath</i> begins with a "/" then the URL specified is calculated relative to the DOCROOT of
+ * the <code>ServletContext</code> for this JSP. If the path does not begin with a "/" then the URL specified is
+ * calculated relative to the URL of the request that was mapped to the calling JSP.
* </p>
* <p>
- * It is only valid to call this method from a <code> Thread </code>
- * executing within a <code> _jspService(...) </code> method of a JSP.
+ * It is only valid to call this method from a <code> Thread </code> executing within a
+ * <code> _jspService(...) </code> method of a JSP.
* </p>
*
- * @param relativeUrlPath specifies the relative URL path to the
- * target resource to be included
- * @param flush True if the JspWriter is to be flushed before the include,
- * or false if not.
+ * @param relativeUrlPath specifies the relative URL path to the target resource to be included
+ * @param flush True if the JspWriter is to be flushed before the include, or false if not.
+ *
+ * @throws ServletException if the page that was forwarded to throws a ServletException
+ * @throws IOException if an I/O error occurred while forwarding
*
- * @throws ServletException if the page that was forwarded to throws
- * a ServletException
- * @throws IOException if an I/O error occurred while forwarding
* @since JSP 2.0
*/
- public abstract void include(String relativeUrlPath, boolean flush)
- throws ServletException, IOException;
+ public abstract void include(String relativeUrlPath, boolean flush) throws ServletException, IOException;
/**
* <p>
- * This method is intended to process an unhandled 'page' level
- * exception by forwarding the exception to the specified
- * error page for this JSP. If forwarding is not possible (for
- * example because the response has already been committed), an
- * implementation dependent mechanism should be used to invoke
- * the error page (e.g. "including" the error page instead).
- *
+ * This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
+ * specified error page for this JSP. If forwarding is not possible (for example because the response has already
+ * been committed), an implementation dependent mechanism should be used to invoke the error page (e.g. "including"
+ * the error page instead).
* <p>
- * If no error page is defined in the page, the exception should
- * be rethrown so that the standard servlet error handling
- * takes over.
- *
+ * If no error page is defined in the page, the exception should be rethrown so that the standard servlet error
+ * handling takes over.
* <p>
- * A JSP implementation class shall typically clean up any local state
- * prior to invoking this and will return immediately thereafter. It is
- * illegal to generate any output to the client, or to modify any
- * ServletResponse state after invoking this call.
- *
+ * A JSP implementation class shall typically clean up any local state prior to invoking this and will return
+ * immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse
+ * state after invoking this call.
* <p>
- * This method is kept for backwards compatibility reasons. Newly
- * generated code should use PageContext.handlePageException(Throwable).
+ * This method is kept for backwards compatibility reasons. Newly generated code should use
+ * PageContext.handlePageException(Throwable).
*
* @param e the exception to be handled
*
- * @throws ServletException if an error occurs while invoking the error page
- * @throws IOException if an I/O error occurred while invoking the error
- * page
+ * @throws ServletException if an error occurs while invoking the error page
+ * @throws IOException if an I/O error occurred while invoking the error page
* @throws NullPointerException if the exception is null
*
* @see #handlePageException(Throwable)
*/
- public abstract void handlePageException(Exception e)
- throws ServletException, IOException;
+ public abstract void handlePageException(Exception e) throws ServletException, IOException;
/**
* <p>
- * This method is intended to process an unhandled 'page' level
- * exception by forwarding the exception to the specified
- * error page for this JSP. If forwarding is not possible (for
- * example because the response has already been committed), an
- * implementation dependent mechanism should be used to invoke
- * the error page (e.g. "including" the error page instead).
- *
+ * This method is intended to process an unhandled 'page' level exception by forwarding the exception to the
+ * specified error page for this JSP. If forwarding is not possible (for example because the response has already
+ * been committed), an implementation dependent mechanism should be used to invoke the error page (e.g. "including"
+ * the error page instead).
* <p>
- * If no error page is defined in the page, the exception should
- * be rethrown so that the standard servlet error handling
- * takes over.
- *
+ * If no error page is defined in the page, the exception should be rethrown so that the standard servlet error
+ * handling takes over.
* <p>
- * This method is intended to process an unhandled "page" level exception
- * by redirecting the exception to either the specified error page for this
- * JSP, or if none was specified, to perform some implementation dependent
- * action.
- *
+ * This method is intended to process an unhandled "page" level exception by redirecting the exception to either the
+ * specified error page for this JSP, or if none was specified, to perform some implementation dependent action.
* <p>
- * A JSP implementation class shall typically clean up any local state
- * prior to invoking this and will return immediately thereafter. It is
- * illegal to generate any output to the client, or to modify any
- * ServletResponse state after invoking this call.
+ * A JSP implementation class shall typically clean up any local state prior to invoking this and will return
+ * immediately thereafter. It is illegal to generate any output to the client, or to modify any ServletResponse
+ * state after invoking this call.
*
* @param t the throwable to be handled
*
- * @throws ServletException if an error occurs while invoking the error page
- * @throws IOException if an I/O error occurred while invoking the error
- * page
+ * @throws ServletException if an error occurs while invoking the error page
+ * @throws IOException if an I/O error occurred while invoking the error page
* @throws NullPointerException if the exception is null
*
* @see #handlePageException(Exception)
*/
- public abstract void handlePageException(Throwable t)
- throws ServletException, IOException;
+ public abstract void handlePageException(Throwable t) throws ServletException, IOException;
/**
- * Return a new BodyContent object, save the current "out" JspWriter,
- * and update the value of the "out" attribute in the page scope
- * attribute namespace of the PageContext.
+ * Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in
+ * the page scope attribute namespace of the PageContext.
*
* @return the new BodyContent
*/
@@ -498,33 +422,24 @@ public abstract class PageContext extends JspContext {
/**
* Provides convenient access to error information.
*
- * @return an ErrorData instance containing information about the
- * error, as obtained from the request attributes, as per the
- * Servlet specification. If this is not an error page (that is,
- * if the isErrorPage attribute of the page directive is not set
- * to "true"), the information is meaningless.
+ * @return an ErrorData instance containing information about the error, as obtained from the request attributes, as
+ * per the Servlet specification. If this is not an error page (that is, if the isErrorPage attribute of
+ * the page directive is not set to "true"), the information is meaningless.
*
* @since JSP 2.0
*/
public ErrorData getErrorData() {
int status = 0;
- Integer status_code = (Integer)getRequest().getAttribute(
- RequestDispatcher.ERROR_STATUS_CODE);
+ Integer status_code = (Integer) getRequest().getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
// Avoid NPE if attribute is not set
if (status_code != null) {
status = status_code.intValue();
}
- return new ErrorData(
- (Throwable)getRequest().getAttribute(
- RequestDispatcher.ERROR_EXCEPTION),
- status,
- (String)getRequest().getAttribute(
- RequestDispatcher.ERROR_REQUEST_URI),
- (String)getRequest().getAttribute(
- RequestDispatcher.ERROR_SERVLET_NAME)
- );
+ return new ErrorData((Throwable) getRequest().getAttribute(RequestDispatcher.ERROR_EXCEPTION), status,
+ (String) getRequest().getAttribute(RequestDispatcher.ERROR_REQUEST_URI),
+ (String) getRequest().getAttribute(RequestDispatcher.ERROR_SERVLET_NAME));
}
}
diff --git a/java/jakarta/servlet/jsp/SkipPageException.java b/java/jakarta/servlet/jsp/SkipPageException.java
index 971bad91c6..f9926c3fea 100644
--- a/java/jakarta/servlet/jsp/SkipPageException.java
+++ b/java/jakarta/servlet/jsp/SkipPageException.java
@@ -17,19 +17,17 @@
package jakarta.servlet.jsp;
/**
- * Exception to indicate the calling page must cease evaluation. Thrown by a
- * simple tag handler to indicate that the remainder of the page must not be
- * evaluated. The result is propagated back to the page in the case where one
- * tag invokes another (as can be the case with tag files). The effect is
- * similar to that of a Classic Tag Handler returning Tag.SKIP_PAGE from
- * doEndTag(). Jsp Fragments may also throw this exception. This exception
- * should not be thrown manually in a JSP page or tag file - the behavior is
- * undefined. The exception is intended to be thrown inside SimpleTag handlers
- * and in JSP fragments.
+ * Exception to indicate the calling page must cease evaluation. Thrown by a simple tag handler to indicate that the
+ * remainder of the page must not be evaluated. The result is propagated back to the page in the case where one tag
+ * invokes another (as can be the case with tag files). The effect is similar to that of a Classic Tag Handler returning
+ * Tag.SKIP_PAGE from doEndTag(). Jsp Fragments may also throw this exception. This exception should not be thrown
+ * manually in a JSP page or tag file - the behavior is undefined. The exception is intended to be thrown inside
+ * SimpleTag handlers and in JSP fragments.
*
* @see jakarta.servlet.jsp.tagext.SimpleTag#doTag
* @see jakarta.servlet.jsp.tagext.JspFragment#invoke
* @see jakarta.servlet.jsp.tagext.Tag#doEndTag
+ *
* @since JSP 2.0
*/
public class SkipPageException extends JspException {
@@ -46,8 +44,7 @@ public class SkipPageException extends JspException {
/**
* Creates a SkipPageException with the provided message.
*
- * @param message
- * the detail message
+ * @param message the detail message
*/
public SkipPageException(String message) {
super(message);
@@ -56,10 +53,8 @@ public class SkipPageException extends JspException {
/**
* Creates a SkipPageException with the provided message and root cause.
*
- * @param message
- * the detail message
- * @param rootCause
- * the originating cause of this exception
+ * @param message the detail message
+ * @param rootCause the originating cause of this exception
*/
public SkipPageException(String message, Throwable rootCause) {
super(message, rootCause);
@@ -68,8 +63,7 @@ public class SkipPageException extends JspException {
/**
* Creates a SkipPageException with the provided root cause.
*
- * @param rootCause
- * the originating cause of this exception
+ * @param rootCause the originating cause of this exception
*/
public SkipPageException(Throwable rootCause) {
super(rootCause);
diff --git a/java/jakarta/servlet/jsp/el/ELException.java b/java/jakarta/servlet/jsp/el/ELException.java
index 455f9ba9e1..acff138c4c 100644
--- a/java/jakarta/servlet/jsp/el/ELException.java
+++ b/java/jakarta/servlet/jsp/el/ELException.java
@@ -17,10 +17,10 @@
package jakarta.servlet.jsp.el;
/**
- * Represents any of the exception conditions that arise during the operation
- * evaluation of the evaluator.
+ * Represents any of the exception conditions that arise during the operation evaluation of the evaluator.
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.ELException
*/
@Deprecated
@@ -38,8 +38,7 @@ public class ELException extends Exception {
/**
* Creates an ELException with the provided detail message.
*
- * @param pMessage
- * the detail message
+ * @param pMessage the detail message
**/
public ELException(String pMessage) {
super(pMessage);
@@ -48,8 +47,7 @@ public class ELException extends Exception {
/**
* Creates an ELException with the given root cause.
*
- * @param pRootCause
- * the originating cause of this exception
+ * @param pRootCause the originating cause of this exception
**/
public ELException(Throwable pRootCause) {
super(pRootCause);
@@ -59,10 +57,8 @@ public class ELException extends Exception {
/**
* Creates an ELException with the given detail message and root cause.
*
- * @param pMessage
- * the detail message
- * @param pRootCause
- * the originating cause of this exception
+ * @param pMessage the detail message
+ * @param pRootCause the originating cause of this exception
**/
public ELException(String pMessage, Throwable pRootCause) {
super(pMessage, pRootCause);
diff --git a/java/jakarta/servlet/jsp/el/ELParseException.java b/java/jakarta/servlet/jsp/el/ELParseException.java
index 714d4b1997..ff75753ab9 100644
--- a/java/jakarta/servlet/jsp/el/ELParseException.java
+++ b/java/jakarta/servlet/jsp/el/ELParseException.java
@@ -21,6 +21,7 @@ package jakarta.servlet.jsp.el;
* Represents a parsing error encountered while parsing an EL expression.
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.ELException
*/
@Deprecated
@@ -32,8 +33,8 @@ public class ELParseException extends ELException {
/**
* Creates an ELParseException with no detail message.
*/
- public ELParseException () {
- super ();
+ public ELParseException() {
+ super();
}
@@ -42,7 +43,7 @@ public class ELParseException extends ELException {
*
* @param pMessage the detail message
*/
- public ELParseException (String pMessage) {
- super (pMessage);
+ public ELParseException(String pMessage) {
+ super(pMessage);
}
}
diff --git a/java/jakarta/servlet/jsp/el/Expression.java b/java/jakarta/servlet/jsp/el/Expression.java
index c0c3793887..7ecee68c70 100644
--- a/java/jakarta/servlet/jsp/el/Expression.java
+++ b/java/jakarta/servlet/jsp/el/Expression.java
@@ -18,35 +18,36 @@ package jakarta.servlet.jsp.el;
/**
- * <p>The abstract class for a prepared expression.</p>
- *
- * <p>An instance of an Expression can be obtained via from an
- * ExpressionEvaluator instance.</p>
- *
- * <p>An Expression may or not have done a syntactic parse of the expression.
- * A client invoking the evaluate() method should be ready for the case
- * where ELParseException exceptions are raised. </p>
+ * <p>
+ * The abstract class for a prepared expression.
+ * </p>
+ * <p>
+ * An instance of an Expression can be obtained via from an ExpressionEvaluator instance.
+ * </p>
+ * <p>
+ * An Expression may or not have done a syntactic parse of the expression. A client invoking the evaluate() method
+ * should be ready for the case where ELParseException exceptions are raised.
+ * </p>
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.ValueExpression
*/
@Deprecated
public abstract class Expression {
/**
- * Evaluates an expression that was previously prepared. In some
- * implementations preparing an expression involves full syntactic
- * validation, but others may not do so. Evaluating the expression may
- * raise an ELParseException as well as other ELExceptions due to
- * run-time evaluation.
+ * Evaluates an expression that was previously prepared. In some implementations preparing an expression involves
+ * full syntactic validation, but others may not do so. Evaluating the expression may raise an ELParseException as
+ * well as other ELExceptions due to run-time evaluation.
+ *
+ * @param vResolver A VariableResolver instance that can be used at runtime to resolve the name of implicit objects
+ * into Objects.
*
- * @param vResolver A VariableResolver instance that can be used at
- * runtime to resolve the name of implicit objects into Objects.
* @return The result of the expression evaluation.
*
* @exception ELException Thrown if the expression evaluation failed.
*/
- public abstract Object evaluate( VariableResolver vResolver )
- throws ELException;
+ public abstract Object evaluate(VariableResolver vResolver) throws ELException;
}
diff --git a/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java b/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
index db59b26bb6..7f0ec632ef 100644
--- a/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
+++ b/java/jakarta/servlet/jsp/el/ExpressionEvaluator.java
@@ -18,28 +18,23 @@ package jakarta.servlet.jsp.el;
/**
* <p>
- * The abstract base class for an expression-language evaluator. Classes that
- * implement an expression language expose their functionality via this abstract
- * class.
+ * The abstract base class for an expression-language evaluator. Classes that implement an expression language expose
+ * their functionality via this abstract class.
* </p>
* <p>
- * An instance of the ExpressionEvaluator can be obtained via the JspContext /
- * PageContext
+ * An instance of the ExpressionEvaluator can be obtained via the JspContext / PageContext
* </p>
* <p>
- * The parseExpression() and evaluate() methods must be thread-safe. That is,
- * multiple threads may call these methods on the same ExpressionEvaluator
- * object simultaneously. Implementations should synchronize access if they
- * depend on transient state. Implementations should not, however, assume that
- * only one object of each ExpressionEvaluator type will be instantiated; global
- * caching should therefore be static.
+ * The parseExpression() and evaluate() methods must be thread-safe. That is, multiple threads may call these methods on
+ * the same ExpressionEvaluator object simultaneously. Implementations should synchronize access if they depend on
+ * transient state. Implementations should not, however, assume that only one object of each ExpressionEvaluator type
+ * will be instantiated; global caching should therefore be static.
* </p>
* <p>
- * Only a single EL expression, starting with '${' and ending with '}', can be
- * parsed or evaluated at a time. EL expressions cannot be mixed with static
- * text. For example, attempting to parse or evaluate "
- * <code>abc${1+1}def${1+1}ghi</code>" or even "<code>${1+1}${1+1}</code>" will
- * cause an <code>ELException</code> to be thrown.
+ * Only a single EL expression, starting with '${' and ending with '}', can be parsed or evaluated at a time. EL
+ * expressions cannot be mixed with static text. For example, attempting to parse or evaluate "
+ * <code>abc${1+1}def${1+1}ghi</code>" or even "<code>${1+1}${1+1}</code>" will cause an <code>ELException</code> to be
+ * thrown.
* </p>
* <p>
* The following are examples of syntactically legal EL expressions:
@@ -51,58 +46,48 @@ package jakarta.servlet.jsp.el;
* </ul>
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.ExpressionFactory
*/
@Deprecated
public abstract class ExpressionEvaluator {
/**
- * Prepare an expression for later evaluation. This method should perform
- * syntactic validation of the expression; if in doing so it detects errors,
- * it should raise an ELParseException.
+ * Prepare an expression for later evaluation. This method should perform syntactic validation of the expression; if
+ * in doing so it detects errors, it should raise an ELParseException.
+ *
+ * @param expression The expression to be evaluated.
+ * @param expectedType The expected type of the result of the evaluation
+ * @param fMapper A FunctionMapper to resolve functions found in the expression. It can be null, in which case
+ * no functions are supported for this invocation. The ExpressionEvaluator must not hold on
+ * to the FunctionMapper reference after returning from <code>parseExpression()</code>. The
+ * <code>Expression</code> object returned must invoke the same functions regardless of
+ * whether the mappings in the provided <code>FunctionMapper</code> instance change between
+ * calling <code>ExpressionEvaluator.parseExpression()</code> and
+ * <code>Expression.evaluate()</code>.
*
- * @param expression
- * The expression to be evaluated.
- * @param expectedType
- * The expected type of the result of the evaluation
- * @param fMapper
- * A FunctionMapper to resolve functions found in the expression.
- * It can be null, in which case no functions are supported for
- * this invocation. The ExpressionEvaluator must not hold on to
- * the FunctionMapper reference after returning from
- * <code>parseExpression()</code>. The <code>Expression</code>
- * object returned must invoke the same functions regardless of
- * whether the mappings in the provided
- * <code>FunctionMapper</code> instance change between calling
- * <code>ExpressionEvaluator.parseExpression()</code> and
- * <code>Expression.evaluate()</code>.
* @return The Expression object encapsulating the arguments.
- * @exception ELException
- * Thrown if parsing errors were found.
+ *
+ * @exception ELException Thrown if parsing errors were found.
*/
- public abstract Expression parseExpression(String expression, Class<?> expectedType,
- FunctionMapper fMapper) throws ELException;
+ public abstract Expression parseExpression(String expression, Class<?> expectedType, FunctionMapper fMapper)
+ throws ELException;
/**
- * Evaluates an expression. This method may perform some syntactic
- * validation and, if so, it should raise an ELParseException error if it
- * encounters syntactic errors. EL evaluation errors should cause an
- * ELException to be raised.
+ * Evaluates an expression. This method may perform some syntactic validation and, if so, it should raise an
+ * ELParseException error if it encounters syntactic errors. EL evaluation errors should cause an ELException to be
+ * raised.
+ *
+ * @param expression The expression to be evaluated.
+ * @param expectedType The expected type of the result of the evaluation
+ * @param vResolver A VariableResolver instance that can be used at runtime to resolve the name of implicit
+ * objects into Objects.
+ * @param fMapper A FunctionMapper to resolve functions found in the expression. It can be null, in which case
+ * no functions are supported for this invocation.
*
- * @param expression
- * The expression to be evaluated.
- * @param expectedType
- * The expected type of the result of the evaluation
- * @param vResolver
- * A VariableResolver instance that can be used at runtime to
- * resolve the name of implicit objects into Objects.
- * @param fMapper
- * A FunctionMapper to resolve functions found in the expression.
- * It can be null, in which case no functions are supported for
- * this invocation.
* @return The result of the expression evaluation.
- * @exception ELException
- * Thrown if the expression evaluation failed.
+ *
+ * @exception ELException Thrown if the expression evaluation failed.
*/
public abstract Object evaluate(String expression, Class<?> expectedType, VariableResolver vResolver,
FunctionMapper fMapper) throws ELException;
diff --git a/java/jakarta/servlet/jsp/el/FunctionMapper.java b/java/jakarta/servlet/jsp/el/FunctionMapper.java
index 6026109fc5..2cc66cb730 100644
--- a/java/jakarta/servlet/jsp/el/FunctionMapper.java
+++ b/java/jakarta/servlet/jsp/el/FunctionMapper.java
@@ -17,23 +17,27 @@
package jakarta.servlet.jsp.el;
/**
- * <p>The interface to a map between EL function names and methods.</p>
- *
- * <p>Classes implementing this interface may, for instance, consult tag library
- * information to resolve the map. </p>
+ * <p>
+ * The interface to a map between EL function names and methods.
+ * </p>
+ * <p>
+ * Classes implementing this interface may, for instance, consult tag library information to resolve the map.
+ * </p>
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.FunctionMapper
*/
@Deprecated
public interface FunctionMapper {
/**
- * Resolves the specified local name and prefix into a Java.lang.Method.
- * Returns null if the prefix and local name are not found.
+ * Resolves the specified local name and prefix into a Java.lang.Method. Returns null if the prefix and local name
+ * are not found.
*
- * @param prefix the prefix of the function, or "" if no prefix.
+ * @param prefix the prefix of the function, or "" if no prefix.
* @param localName the short name of the function
- * @return the result of the method mapping. Null means no entry found.
+ *
+ * @return the result of the method mapping. Null means no entry found.
*/
java.lang.reflect.Method resolveFunction(String prefix, String localName);
}
diff --git a/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java b/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
index 0d1ce61f5b..2d6a632492 100644
--- a/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
+++ b/java/jakarta/servlet/jsp/el/ImplicitObjectELResolver.java
@@ -45,10 +45,8 @@ import jakarta.servlet.jsp.PageContext;
*/
public class ImplicitObjectELResolver extends ELResolver {
- private static final String[] SCOPE_NAMES = new String[] {
- "applicationScope", "cookie", "header", "headerValues",
- "initParam", "pageContext", "pageScope", "param", "paramValues",
- "requestScope", "sessionScope" };
+ private static final String[] SCOPE_NAMES = new String[] { "applicationScope", "cookie", "header", "headerValues",
+ "initParam", "pageContext", "pageScope", "param", "paramValues", "requestScope", "sessionScope" };
private static final int APPLICATIONSCOPE = 0;
@@ -87,8 +85,7 @@ public class ImplicitObjectELResolver extends ELResolver {
int idx = Arrays.binarySearch(SCOPE_NAMES, property.toString());
if (idx >= 0) {
- PageContext page = (PageContext) context
- .getContext(JspContext.class);
+ PageContext page = (PageContext) context.getContext(JspContext.class);
context.setPropertyResolved(base, property);
switch (idx) {
case APPLICATIONSCOPE:
@@ -133,8 +130,7 @@ public class ImplicitObjectELResolver extends ELResolver {
}
@Override
- public void setValue(ELContext context, Object base, Object property,
- Object value) {
+ public void setValue(ELContext context, Object base, Object property, Object value) {
Objects.requireNonNull(context);
if (base == null && property != null) {
@@ -291,14 +287,12 @@ public class ImplicitObjectELResolver extends ELResolver {
this.header = new ScopeMap<>() {
@Override
protected Enumeration<String> getAttributeNames() {
- return ((HttpServletRequest) page.getRequest())
- .getHeaderNames();
+ return ((HttpServletRequest) page.getRequest()).getHeaderNames();
}
@Override
protected String getAttribute(String name) {
- return ((HttpServletRequest) page.getRequest())
- .getHeader(name);
+ return ((HttpServletRequest) page.getRequest()).getHeader(name);
}
};
}
@@ -310,8 +304,7 @@ public class ImplicitObjectELResolver extends ELResolver {
this.headerValues = new ScopeMap<>() {
@Override
protected Enumeration<String> getAttributeNames() {
- return ((HttpServletRequest) page.getRequest())
- .getHeaderNames();
+ return ((HttpServletRequest) page.getRequest()).getHeaderNames();
}
@Override
@@ -368,8 +361,7 @@ public class ImplicitObjectELResolver extends ELResolver {
@Override
protected Enumeration<String> getAttributeNames() {
- return page.getAttributeNamesInScope(
- PageContext.PAGE_SCOPE);
+ return page.getAttributeNamesInScope(PageContext.PAGE_SCOPE);
}
@Override
@@ -447,8 +439,7 @@ public class ImplicitObjectELResolver extends ELResolver {
this.sessionScope = new ScopeMap<>() {
@Override
protected void setAttribute(String name, Object value) {
- ((HttpServletRequest) page.getRequest()).getSession()
- .setAttribute(name, value);
+ ((HttpServletRequest) page.getRequest()).getSession().setAttribute(name, value);
}
@Override
@@ -501,7 +492,7 @@ public class ImplicitObjectELResolver extends ELResolver {
@Override
public final Set<Map.Entry<String,V>> entrySet() {
Enumeration<String> e = getAttributeNames();
- Set<Map.Entry<String, V>> set = new HashSet<>();
+ Set<Map.Entry<String,V>> set = new HashSet<>();
if (e != null) {
while (e.hasMoreElements()) {
set.add(new ScopeEntry(e.nextElement()));
diff --git a/java/jakarta/servlet/jsp/el/ImportELResolver.java b/java/jakarta/servlet/jsp/el/ImportELResolver.java
index a3db558421..4e58509dba 100644
--- a/java/jakarta/servlet/jsp/el/ImportELResolver.java
+++ b/java/jakarta/servlet/jsp/el/ImportELResolver.java
@@ -27,8 +27,7 @@ import jakarta.el.ELResolver;
import jakarta.el.ImportHandler;
/**
- * Providers resolution of imports and static imports in the Jakarta Server
- * Pages ELResolver chain.
+ * Providers resolution of imports and static imports in the Jakarta Server Pages ELResolver chain.
*
* @since JSP 3.1
*/
@@ -43,7 +42,7 @@ public class ImportELResolver extends ELResolver {
key = Class.forName("org.apache.el.parser.AstIdentifier");
} catch (Exception e) {
// Ignore: Expected if not running on Tomcat. Not a problem since
- // this just allows a short-cut.
+ // this just allows a short-cut.
}
AST_IDENTIFIER_KEY = key;
}
@@ -93,8 +92,8 @@ public class ImportELResolver extends ELResolver {
if (clazz != null) {
try {
result = clazz.getField(key).get(null);
- } catch (IllegalArgumentException | IllegalAccessException |
- NoSuchFieldException | SecurityException e) {
+ } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException |
+ SecurityException e) {
// Most (all?) of these should have been
// prevented by the checks when the import
// was defined.
diff --git a/java/jakarta/servlet/jsp/el/NotFoundELResolver.java b/java/jakarta/servlet/jsp/el/NotFoundELResolver.java
index 35ad99de54..cc865e90dd 100644
--- a/java/jakarta/servlet/jsp/el/NotFoundELResolver.java
+++ b/java/jakarta/servlet/jsp/el/NotFoundELResolver.java
@@ -27,8 +27,8 @@ import jakarta.el.ELResolver;
import jakarta.el.PropertyNotFoundException;
/**
- * The final resolver of the Jakarta Server Pages ELResolver chain. It always
- * resolves the requested value, returning {@code null} when it does so.
+ * The final resolver of the Jakarta Server Pages ELResolver chain. It always resolves the requested value, returning
+ * {@code null} when it does so.
*
* @since JSP 3.1
*/
@@ -47,19 +47,16 @@ public class NotFoundELResolver extends ELResolver {
/**
* {@inheritDoc}
* <p>
- * Resolves the property and always returns {@code null} unless the provided
- * context contains a Boolean object with value {@code Boolean.TRUE} as the
- * value associated with the key
- * {@code jakarta.servlet.jsp.el.NotFoundELResolver.class} in which case an
- * exception is thrown. This is to support implementation of the
- * {@code errorOnELNotFound} page/tag directive.
+ * Resolves the property and always returns {@code null} unless the provided context contains a Boolean object with
+ * value {@code Boolean.TRUE} as the value associated with the key
+ * {@code jakarta.servlet.jsp.el.NotFoundELResolver.class} in which case an exception is thrown. This is to support
+ * implementation of the {@code errorOnELNotFound} page/tag directive.
*
* @return Always {@code null}
*
- * @throws PropertyNotFoundException if the provided context contains a
- * Boolean object with value {@code Boolean.TRUE} as the value
- * associated with the key
- * {@code jakarta.servlet.jsp.el.NotFoundELResolver.class}
+ * @throws PropertyNotFoundException if the provided context contains a Boolean object with value
+ * {@code Boolean.TRUE} as the value associated with the key
+ * {@code jakarta.servlet.jsp.el.NotFoundELResolver.class}
*/
@Override
public Object getValue(ELContext context, Object base, Object property) {
@@ -91,8 +88,7 @@ public class NotFoundELResolver extends ELResolver {
/**
* {@inheritDoc}
* <p>
- * No-op. In normal usage, {@link ScopedAttributeELResolver} will have
- * responded.
+ * No-op. In normal usage, {@link ScopedAttributeELResolver} will have responded.
*/
@Override
public void setValue(ELContext context, Object base, Object property, Object value) {
diff --git a/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java b/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
index 4da4cc2b6e..5044c0478d 100644
--- a/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
+++ b/java/jakarta/servlet/jsp/el/ScopedAttributeELResolver.java
@@ -29,8 +29,7 @@ import jakarta.servlet.jsp.JspContext;
import jakarta.servlet.jsp.PageContext;
/**
- * An ELResolver for working with JSP scoped attributes which may have page,
- * request, session or application scope.
+ * An ELResolver for working with JSP scoped attributes which may have page, request, session or application scope.
*
* @since JSP 2.1
*/
diff --git a/java/jakarta/servlet/jsp/el/VariableResolver.java b/java/jakarta/servlet/jsp/el/VariableResolver.java
index 48e587d4f0..1c5fef3ad0 100644
--- a/java/jakarta/servlet/jsp/el/VariableResolver.java
+++ b/java/jakarta/servlet/jsp/el/VariableResolver.java
@@ -18,33 +18,30 @@ package jakarta.servlet.jsp.el;
/**
* <p>
- * This class is used to customize the way an ExpressionEvaluator resolves
- * variable references at evaluation time. For example, instances of this class
- * can implement their own variable lookup mechanisms, or introduce the notion
- * of "implicit variables" which override any other variables. An instance of
- * this class should be passed when evaluating an expression.
+ * This class is used to customize the way an ExpressionEvaluator resolves variable references at evaluation time. For
+ * example, instances of this class can implement their own variable lookup mechanisms, or introduce the notion of
+ * "implicit variables" which override any other variables. An instance of this class should be passed when evaluating
+ * an expression.
* </p>
* <p>
- * An instance of this class includes the context against which resolution will
- * happen
+ * An instance of this class includes the context against which resolution will happen
* </p>
*
* @since JSP 2.0
+ *
* @deprecated As of JSP 2.1, replaced by jakarta.el.ELResolver
*/
@Deprecated
public interface VariableResolver {
/**
- * Resolves the specified variable. Returns null if the variable is not
- * found.
+ * Resolves the specified variable. Returns null if the variable is not found.
+ *
+ * @param pName the name of the variable to resolve
*
- * @param pName
- * the name of the variable to resolve
* @return the result of the variable resolution
- * @throws ELException
- * if a failure occurred while trying to resolve the given
- * variable
+ *
+ * @throws ELException if a failure occurred while trying to resolve the given variable
*/
Object resolveVariable(String pName) throws ELException;
}
diff --git a/java/jakarta/servlet/jsp/tagext/BodyContent.java b/java/jakarta/servlet/jsp/tagext/BodyContent.java
index 08c4345c2a..6858ddd35c 100644
--- a/java/jakarta/servlet/jsp/tagext/BodyContent.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyContent.java
@@ -23,34 +23,30 @@ import java.io.Writer;
import jakarta.servlet.jsp.JspWriter;
/**
- * An encapsulation of the evaluation of the body of an action so it is
- * available to a tag handler. BodyContent is a subclass of JspWriter.
+ * An encapsulation of the evaluation of the body of an action so it is available to a tag handler. BodyContent is a
+ * subclass of JspWriter.
* <p>
- * Note that the content of BodyContent is the result of evaluation, so it will
- * not contain actions and the like, but the result of their invocation.
+ * Note that the content of BodyContent is the result of evaluation, so it will not contain actions and the like, but
+ * the result of their invocation.
* <p>
- * BodyContent has methods to convert its contents into a String, to read its
- * contents, and to clear the contents.
+ * BodyContent has methods to convert its contents into a String, to read its contents, and to clear the contents.
* <p>
- * The buffer size of a BodyContent object is unbounded. A BodyContent object
- * cannot be in autoFlush mode. It is not possible to invoke flush on a
- * BodyContent object, as there is no backing stream.
+ * The buffer size of a BodyContent object is unbounded. A BodyContent object cannot be in autoFlush mode. It is not
+ * possible to invoke flush on a BodyContent object, as there is no backing stream.
* <p>
- * Instances of BodyContent are created by invoking the pushBody and popBody
- * methods of the PageContext class. A BodyContent is enclosed within another
- * JspWriter (maybe another BodyContent object) following the structure of their
+ * Instances of BodyContent are created by invoking the pushBody and popBody methods of the PageContext class. A
+ * BodyContent is enclosed within another JspWriter (maybe another BodyContent object) following the structure of their
* associated actions.
* <p>
- * A BodyContent is made available to a BodyTag through a setBodyContent() call.
- * The tag handler can use the object until after the call to doEndTag().
+ * A BodyContent is made available to a BodyTag through a setBodyContent() call. The tag handler can use the object
+ * until after the call to doEndTag().
*/
public abstract class BodyContent extends JspWriter {
/**
* Protected constructor. Unbounded buffer, no autoflushing.
*
- * @param e
- * the enclosing JspWriter
+ * @param e the enclosing JspWriter
*/
protected BodyContent(JspWriter e) {
super(UNBOUNDED_BUFFER, false);
@@ -60,11 +56,9 @@ public abstract class BodyContent extends JspWriter {
/**
* Redefined flush() so it is not legal.
* <p>
- * It is not valid to flush a BodyContent because there is no backing stream
- * behind it.
+ * It is not valid to flush a BodyContent because there is no backing stream behind it.
*
- * @throws IOException
- * always thrown
+ * @throws IOException always thrown
*/
@Override
public void flush() throws IOException {
@@ -98,15 +92,11 @@ public abstract class BodyContent extends JspWriter {
public abstract String getString();
/**
- * Write the contents of this BodyContent into a Writer. Subclasses may
- * optimize common invocation patterns.
+ * Write the contents of this BodyContent into a Writer. Subclasses may optimize common invocation patterns.
*
- * @param out
- * The writer into which to place the contents of this body
- * evaluation
- * @throws IOException
- * if an I/O error occurred while writing the contents of this
- * BodyContent to the given Writer
+ * @param out The writer into which to place the contents of this body evaluation
+ *
+ * @throws IOException if an I/O error occurred while writing the contents of this BodyContent to the given Writer
*/
public abstract void writeOut(Writer out) throws IOException;
diff --git a/java/jakarta/servlet/jsp/tagext/BodyTag.java b/java/jakarta/servlet/jsp/tagext/BodyTag.java
index 73df1c06b6..962cae1aa0 100644
--- a/java/jakarta/servlet/jsp/tagext/BodyTag.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyTag.java
@@ -20,141 +20,114 @@ import jakarta.servlet.jsp.JspException;
/**
- * The BodyTag interface extends IterationTag by defining additional methods
- * that let a tag handler manipulate the content of evaluating its body.
+ * The BodyTag interface extends IterationTag by defining additional methods that let a tag handler manipulate the
+ * content of evaluating its body.
* <p>
- * It is the responsibility of the tag handler to manipulate the body content.
- * For example the tag handler may take the body content, convert it into a
- * String using the bodyContent.getString method and then use it. Or the tag
- * handler may take the body content and write it out into its enclosing
- * JspWriter using the bodyContent.writeOut method.
+ * It is the responsibility of the tag handler to manipulate the body content. For example the tag handler may take the
+ * body content, convert it into a String using the bodyContent.getString method and then use it. Or the tag handler may
+ * take the body content and write it out into its enclosing JspWriter using the bodyContent.writeOut method.
* <p>
- * A tag handler that implements BodyTag is treated as one that implements
- * IterationTag, except that the doStartTag method can return SKIP_BODY,
- * EVAL_BODY_INCLUDE or EVAL_BODY_BUFFERED.
+ * A tag handler that implements BodyTag is treated as one that implements IterationTag, except that the doStartTag
+ * method can return SKIP_BODY, EVAL_BODY_INCLUDE or EVAL_BODY_BUFFERED.
* <p>
* If EVAL_BODY_INCLUDE is returned, then evaluation happens as in IterationTag.
* <p>
- * If EVAL_BODY_BUFFERED is returned, then a BodyContent object will be created
- * (by code generated by the JSP compiler) to capture the body evaluation. The
- * code generated by the JSP compiler obtains the BodyContent object by calling
- * the pushBody method of the current pageContext, which additionally has the
- * effect of saving the previous out value. The page compiler returns this
- * object by calling the popBody method of the PageContext class; the call also
- * restores the value of out.
+ * If EVAL_BODY_BUFFERED is returned, then a BodyContent object will be created (by code generated by the JSP compiler)
+ * to capture the body evaluation. The code generated by the JSP compiler obtains the BodyContent object by calling the
+ * pushBody method of the current pageContext, which additionally has the effect of saving the previous out value. The
+ * page compiler returns this object by calling the popBody method of the PageContext class; the call also restores the
+ * value of out.
* <p>
- * The interface provides one new property with a setter method and one new
- * action method.
+ * The interface provides one new property with a setter method and one new action method.
* <p>
* <B>Properties</B>
* <p>
- * There is a new property: bodyContent, to contain the BodyContent object,
- * where the JSP Page implementation object will place the evaluation (and
- * reevaluation, if appropriate) of the body. The setter method (setBodyContent)
- * will only be invoked if doStartTag() returns EVAL_BODY_BUFFERED and the
- * corresponding action element does not have an empty body.
+ * There is a new property: bodyContent, to contain the BodyContent object, where the JSP Page implementation object
+ * will place the evaluation (and reevaluation, if appropriate) of the body. The setter method (setBodyContent) will
+ * only be invoked if doStartTag() returns EVAL_BODY_BUFFERED and the corresponding action element does not have an
+ * empty body.
* <p>
* <B>Methods</B>
* <p>
- * In addition to the setter method for the bodyContent property, there is a new
- * action method: doInitBody(), which is invoked right after setBodyContent()
- * and before the body evaluation. This method is only invoked if doStartTag()
+ * In addition to the setter method for the bodyContent property, there is a new action method: doInitBody(), which is
+ * invoked right after setBodyContent() and before the body evaluation. This method is only invoked if doStartTag()
* returns EVAL_BODY_BUFFERED.
* <p>
* <B>Lifecycle</B>
* <p>
- * Lifecycle details are described by the transition diagram below. Exceptions
- * that are thrown during the computation of doStartTag(), setBodyContent(),
- * doInitBody(), BODY, doAfterBody() interrupt the execution sequence and are
- * propagated up the stack, unless the tag handler implements the
- * TryCatchFinally interface; see that interface for details.
+ * Lifecycle details are described by the transition diagram below. Exceptions that are thrown during the computation of
+ * doStartTag(), setBodyContent(), doInitBody(), BODY, doAfterBody() interrupt the execution sequence and are propagated
+ * up the stack, unless the tag handler implements the TryCatchFinally interface; see that interface for details.
* <p>
- * <IMG src="doc-files/BodyTagProtocol.gif"
- * alt="Lifecycle Details Transition Diagram for BodyTag">
+ * <IMG src="doc-files/BodyTagProtocol.gif" alt="Lifecycle Details Transition Diagram for BodyTag">
* <p>
* <B>Empty and Non-Empty Action</B>
* <p>
- * If the TagLibraryDescriptor file indicates that the action must always have
- * an empty element body, by an <body-content> entry of "empty", then the
- * doStartTag() method must return SKIP_BODY. Otherwise, the doStartTag() method
- * may return SKIP_BODY, EVAL_BODY_INCLUDE, or EVAL_BODY_BUFFERED.
+ * If the TagLibraryDescriptor file indicates that the action must always have an empty element body, by an
+ * <body-content> entry of "empty", then the doStartTag() method must return SKIP_BODY. Otherwise, the
+ * doStartTag() method may return SKIP_BODY, EVAL_BODY_INCLUDE, or EVAL_BODY_BUFFERED.
* <p>
- * Note that which methods are invoked after the doStartTag() depends on both
- * the return value and on if the custom action element is empty or not in the
- * JSP page, not how it's declared in the TLD.
+ * Note that which methods are invoked after the doStartTag() depends on both the return value and on if the custom
+ * action element is empty or not in the JSP page, not how it's declared in the TLD.
* <p>
- * If SKIP_BODY is returned the body is not evaluated, and doEndTag() is
- * invoked.
+ * If SKIP_BODY is returned the body is not evaluated, and doEndTag() is invoked.
* <p>
- * If EVAL_BODY_INCLUDE is returned, and the custom action element is not empty,
- * setBodyContent() is not invoked, doInitBody() is not invoked, the body is
- * evaluated and "passed through" to the current out, doAfterBody() is invoked
- * and then, after zero or more iterations, doEndTag() is invoked. If the custom
- * action element is empty, only doStart() and doEndTag() are invoked.
- * <p>
- * If EVAL_BODY_BUFFERED is returned, and the custom action element is not
- * empty, setBodyContent() is invoked, doInitBody() is invoked, the body is
- * evaluated, doAfterBody() is invoked, and then, after zero or more iterations,
- * doEndTag() is invoked. If the custom action element is empty, only doStart()
+ * If EVAL_BODY_INCLUDE is returned, and the custom action element is not empty, setBodyContent() is not invoked,
+ * doInitBody() is not invoked, the body is evaluated and "passed through" to the current out, doAfterBody() is invoked
+ * and then, after zero or more iterations, doEndTag() is invoked. If the custom action element is empty, only doStart()
* and doEndTag() are invoked.
+ * <p>
+ * If EVAL_BODY_BUFFERED is returned, and the custom action element is not empty, setBodyContent() is invoked,
+ * doInitBody() is invoked, the body is evaluated, doAfterBody() is invoked, and then, after zero or more iterations,
+ * doEndTag() is invoked. If the custom action element is empty, only doStart() and doEndTag() are invoked.
*/
public interface BodyTag extends IterationTag {
/**
- * Deprecated constant that has the same value as EVAL_BODY_BUFFERED and
- * EVAL_BODY_AGAIN. This name has been marked as deprecated to encourage the
- * use of the two different terms, which are much more descriptive.
+ * Deprecated constant that has the same value as EVAL_BODY_BUFFERED and EVAL_BODY_AGAIN. This name has been marked
+ * as deprecated to encourage the use of the two different terms, which are much more descriptive.
*
- * @deprecated As of Java JSP API 1.2, use BodyTag.EVAL_BODY_BUFFERED or
- * IterationTag.EVAL_BODY_AGAIN.
+ * @deprecated As of Java JSP API 1.2, use BodyTag.EVAL_BODY_BUFFERED or IterationTag.EVAL_BODY_AGAIN.
*/
@Deprecated
int EVAL_BODY_TAG = 2;
/**
- * Request the creation of new buffer, a BodyContent on which to evaluate
- * the body of this tag. Returned from doStartTag when it implements
- * BodyTag. This is an illegal return value for doStartTag when the class
- * does not implement BodyTag.
+ * Request the creation of new buffer, a BodyContent on which to evaluate the body of this tag. Returned from
+ * doStartTag when it implements BodyTag. This is an illegal return value for doStartTag when the class does not
+ * implement BodyTag.
*/
int EVAL_BODY_BUFFERED = 2;
/**
- * Set the bodyContent property. This method is invoked by the JSP page
- * implementation object at most once per action invocation. This method
- * will be invoked before doInitBody. This method will not be invoked for
- * empty tags or for non-empty tags whose doStartTag() method returns
- * SKIP_BODY or EVAL_BODY_INCLUDE.
+ * Set the bodyContent property. This method is invoked by the JSP page implementation object at most once per
+ * action invocation. This method will be invoked before doInitBody. This method will not be invoked for empty tags
+ * or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE.
* <p>
- * When setBodyContent is invoked, the value of the implicit object out has
- * already been changed in the pageContext object. The BodyContent object
- * passed will have not data on it but may have been reused (and cleared)
- * from some previous invocation.
+ * When setBodyContent is invoked, the value of the implicit object out has already been changed in the pageContext
+ * object. The BodyContent object passed will have not data on it but may have been reused (and cleared) from some
+ * previous invocation.
* <p>
- * The BodyContent object is available and with the appropriate content
- * until after the invocation of the doEndTag method, at which case it may
- * be reused.
+ * The BodyContent object is available and with the appropriate content until after the invocation of the doEndTag
+ * method, at which case it may be reused.
+ *
+ * @param b the BodyContent
*
- * @param b
- * the BodyContent
* @see #doInitBody
* @see #doAfterBody
*/
void setBodyContent(BodyContent b);
/**
- * Prepare for evaluation of the body. This method is invoked by the JSP
- * page implementation object after setBodyContent and before the first time
- * the body is to be evaluated. This method will not be invoked for empty
- * tags or for non-empty tags whose doStartTag() method returns SKIP_BODY or
- * EVAL_BODY_INCLUDE.
+ * Prepare for evaluation of the body. This method is invoked by the JSP page implementation object after
+ * setBodyContent and before the first time the body is to be evaluated. This method will not be invoked for empty
+ * tags or for non-empty tags whose doStartTag() method returns SKIP_BODY or EVAL_BODY_INCLUDE.
* <p>
- * The JSP container will resynchronize the values of any AT_BEGIN and
- * NESTED variables (defined by the associated TagExtraInfo or TLD) after
- * the invocation of doInitBody().
+ * The JSP container will resynchronize the values of any AT_BEGIN and NESTED variables (defined by the associated
+ * TagExtraInfo or TLD) after the invocation of doInitBody().
+ *
+ * @throws JspException if an error occurred while processing this tag
*
- * @throws JspException
- * if an error occurred while processing this tag
* @see #doAfterBody
*/
void doInitBody() throws JspException;
diff --git a/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java b/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
index 2c667430f8..ffb5909f95 100644
--- a/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/BodyTagSupport.java
@@ -22,9 +22,8 @@ import jakarta.servlet.jsp.JspWriter;
/**
* A base class for defining tag handlers implementing BodyTag.
* <p>
- * The BodyTagSupport class implements the BodyTag interface and adds additional
- * convenience methods including getter methods for the bodyContent property and
- * methods to get at the previous out JspWriter.
+ * The BodyTagSupport class implements the BodyTag interface and adds additional convenience methods including getter
+ * methods for the bodyContent property and methods to get at the previous out JspWriter.
* <p>
* Many tag handlers will extend BodyTagSupport and only redefine a few methods.
*/
@@ -33,10 +32,8 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
private static final long serialVersionUID = -7235752615580319833L;
/**
- * Default constructor, all subclasses are required to only define a public
- * constructor with the same signature, and to call the superclass
- * constructor. This constructor is called by the code generated by the JSP
- * translator.
+ * Default constructor, all subclasses are required to only define a public constructor with the same signature, and
+ * to call the superclass constructor. This constructor is called by the code generated by the JSP translator.
*/
public BodyTagSupport() {
super();
@@ -46,8 +43,9 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
* Default processing of the start tag returning EVAL_BODY_BUFFERED.
*
* @return EVAL_BODY_BUFFERED
- * @throws JspException
- * if an error occurred while processing this tag
+ *
+ * @throws JspException if an error occurred while processing this tag
+ *
* @see BodyTag#doStartTag
*/
@Override
@@ -59,8 +57,9 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
* Default processing of the end tag returning EVAL_PAGE.
*
* @return EVAL_PAGE
- * @throws JspException
- * if an error occurred while processing this tag
+ *
+ * @throws JspException if an error occurred while processing this tag
+ *
* @see Tag#doEndTag
*/
@Override
@@ -73,8 +72,8 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
/**
* Prepare for evaluation of the body: stash the bodyContent away.
*
- * @param b
- * the BodyContent
+ * @param b the BodyContent
+ *
* @see #doAfterBody
* @see #doInitBody()
* @see BodyTag#setBodyContent
@@ -85,11 +84,10 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
}
/**
- * Prepare for evaluation of the body just before the first body evaluation:
- * no action.
+ * Prepare for evaluation of the body just before the first body evaluation: no action.
+ *
+ * @throws JspException if an error occurred while processing this tag
*
- * @throws JspException
- * if an error occurred while processing this tag
* @see #setBodyContent
* @see #doAfterBody
* @see BodyTag#doInitBody
@@ -100,12 +98,13 @@ public class BodyTagSupport extends TagSupport implements BodyTag {
}
/**
- * After the body evaluation: do not reevaluate and continue with the page.
- * By default nothing is done with the bodyContent data (if any).
+ * After the body evaluation: do not reevaluate and continue with the page. By default nothing is done with the
+ * bodyContent data (if any).
*
* @return SKIP_BODY
- * @throws JspException
- * if an error occurred while processing this tag
+ *
+ * @throws JspException if an error occurred while processing this tag
+ *
* @see #doInitBody
* @see BodyTag#doAfterBody
*/
diff --git a/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java b/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
index e5d1a289e9..8a776a9b2a 100644
--- a/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
+++ b/java/jakarta/servlet/jsp/tagext/DynamicAttributes.java
@@ -19,31 +19,26 @@ package jakarta.servlet.jsp.tagext;
import jakarta.servlet.jsp.JspException;
/**
- * For a tag to declare that it accepts dynamic attributes, it must implement
- * this interface. The entry for the tag in the Tag Library Descriptor must
- * also be configured to indicate dynamic attributes are accepted.
- * <br>
- * For any attribute that is not declared in the Tag Library Descriptor for
- * this tag, instead of getting an error at translation time, the
- * <code>setDynamicAttribute()</code> method is called, with the name and
- * value of the attribute. It is the responsibility of the tag to
- * remember the names and values of the dynamic attributes.
+ * For a tag to declare that it accepts dynamic attributes, it must implement this interface. The entry for the tag in
+ * the Tag Library Descriptor must also be configured to indicate dynamic attributes are accepted. <br>
+ * For any attribute that is not declared in the Tag Library Descriptor for this tag, instead of getting an error at
+ * translation time, the <code>setDynamicAttribute()</code> method is called, with the name and value of the attribute.
+ * It is the responsibility of the tag to remember the names and values of the dynamic attributes.
*
* @since JSP 2.0
*/
public interface DynamicAttributes {
/**
- * Called when a tag declared to accept dynamic attributes is passed
- * an attribute that is not declared in the Tag Library Descriptor.
+ * Called when a tag declared to accept dynamic attributes is passed an attribute that is not declared in the Tag
+ * Library Descriptor.
*
- * @param uri the namespace of the attribute, or null if in the default
- * namespace.
+ * @param uri the namespace of the attribute, or null if in the default namespace.
* @param localName the name of the attribute being set.
- * @param value the value of the attribute
- * @throws JspException if the tag handler wishes to
- * signal that it does not accept the given attribute. The
- * container must not call doStartTag() or doTag() for this tag.
+ * @param value the value of the attribute
+ *
+ * @throws JspException if the tag handler wishes to signal that it does not accept the given attribute. The
+ * container must not call doStartTag() or doTag() for this tag.
*/
void setDynamicAttribute(String uri, String localName, Object value) throws JspException;
}
diff --git a/java/jakarta/servlet/jsp/tagext/FunctionInfo.java b/java/jakarta/servlet/jsp/tagext/FunctionInfo.java
index 51968b86a4..70786bbabb 100644
--- a/java/jakarta/servlet/jsp/tagext/FunctionInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/FunctionInfo.java
@@ -17,8 +17,7 @@
package jakarta.servlet.jsp.tagext;
/**
- * Information for a function in a Tag Library.
- * This class is instantiated from the Tag Library Descriptor file (TLD)
+ * Information for a function in a Tag Library. This class is instantiated from the Tag Library Descriptor file (TLD)
* and is available only at translation time.
*
* @since JSP 2.0
@@ -28,8 +27,8 @@ public class FunctionInfo {
/**
* Constructor for FunctionInfo.
*
- * @param name The name of the function
- * @param klass The class of the function
+ * @param name The name of the function
+ * @param klass The class of the function
* @param signature The signature of the function
*/
diff --git a/java/jakarta/servlet/jsp/tagext/IterationTag.java b/java/jakarta/servlet/jsp/tagext/IterationTag.java
index 49065a8da2..f207015f36 100644
--- a/java/jakarta/servlet/jsp/tagext/IterationTag.java
+++ b/java/jakarta/servlet/jsp/tagext/IterationTag.java
@@ -20,99 +20,69 @@ import jakarta.servlet.jsp.JspException;
/**
- * The IterationTag interface extends Tag by defining one additional
- * method that controls the reevaluation of its body.
- *
- * <p> A tag handler that implements IterationTag is treated as one that
- * implements Tag regarding the doStartTag() and doEndTag() methods.
- * IterationTag provides a new method: <code>doAfterBody()</code>.
- *
- * <p> The doAfterBody() method is invoked after every body evaluation
- * to control whether the body will be reevaluated or not. If doAfterBody()
- * returns IterationTag.EVAL_BODY_AGAIN, then the body will be reevaluated.
- * If doAfterBody() returns Tag.SKIP_BODY, then the body will be skipped
- * and doEndTag() will be evaluated instead.
- *
- * <p><B>Properties</B>
- * There are no new properties in addition to those in Tag.
- *
- * <p><B>Methods</B>
- * There is one new methods: doAfterBody().
- *
- * <p><B>Lifecycle</B>
- *
- * <p> Lifecycle details are described by the transition diagram
- * below. Exceptions that are thrown during the computation of
- * doStartTag(), BODY and doAfterBody() interrupt the execution
- * sequence and are propagated up the stack, unless the tag handler
- * implements the TryCatchFinally interface; see that interface for
- * details.
- *
+ * The IterationTag interface extends Tag by defining one additional method that controls the reevaluation of its body.
* <p>
- * <IMG src="doc-files/IterationTagProtocol.gif"
- * alt="Lifecycle Details Transition Diagram for IterationTag">
- *
- * <p><B>Empty and Non-Empty Action</B>
- * <p> If the TagLibraryDescriptor file indicates that the action must
- * always have an empty element body, by a <body-content> entry of
- * "empty", then the doStartTag() method must return SKIP_BODY.
- *
- * <p>Note that which methods are invoked after the doStartTag() depends on
- * both the return value and on if the custom action element is empty
- * or not in the JSP page, not on how it's declared in the TLD.
- *
+ * A tag handler that implements IterationTag is treated as one that implements Tag regarding the doStartTag() and
+ * doEndTag() methods. IterationTag provides a new method: <code>doAfterBody()</code>.
* <p>
- * If SKIP_BODY is returned the body is not evaluated, and then doEndTag()
- * is invoked.
- *
+ * The doAfterBody() method is invoked after every body evaluation to control whether the body will be reevaluated or
+ * not. If doAfterBody() returns IterationTag.EVAL_BODY_AGAIN, then the body will be reevaluated. If doAfterBody()
+ * returns Tag.SKIP_BODY, then the body will be skipped and doEndTag() will be evaluated instead.
+ * <p>
+ * <B>Properties</B> There are no new properties in addition to those in Tag.
+ * <p>
+ * <B>Methods</B> There is one new methods: doAfterBody().
+ * <p>
+ * <B>Lifecycle</B>
* <p>
- * If EVAL_BODY_INCLUDE is returned, and the custom action element is not
- * empty, the body is evaluated and "passed through" to the current out,
- * then doAfterBody() is invoked and, after zero or more iterations,
- * doEndTag() is invoked.
+ * Lifecycle details are described by the transition diagram below. Exceptions that are thrown during the computation of
+ * doStartTag(), BODY and doAfterBody() interrupt the execution sequence and are propagated up the stack, unless the tag
+ * handler implements the TryCatchFinally interface; see that interface for details.
+ * <p>
+ * <IMG src="doc-files/IterationTagProtocol.gif" alt="Lifecycle Details Transition Diagram for IterationTag">
+ * <p>
+ * <B>Empty and Non-Empty Action</B>
+ * <p>
+ * If the TagLibraryDescriptor file indicates that the action must always have an empty element body, by a
+ * <body-content> entry of "empty", then the doStartTag() method must return SKIP_BODY.
+ * <p>
+ * Note that which methods are invoked after the doStartTag() depends on both the return value and on if the custom
+ * action element is empty or not in the JSP page, not on how it's declared in the TLD.
+ * <p>
+ * If SKIP_BODY is returned the body is not evaluated, and then doEndTag() is invoked.
+ * <p>
+ * If EVAL_BODY_INCLUDE is returned, and the custom action element is not empty, the body is evaluated and "passed
+ * through" to the current out, then doAfterBody() is invoked and, after zero or more iterations, doEndTag() is invoked.
*/
public interface IterationTag extends Tag {
/**
- * Request the reevaluation of some body.
- * Returned from doAfterBody.
- *
- * For compatibility with JSP 1.1, the value is carefully selected
- * to be the same as the, now deprecated, BodyTag.EVAL_BODY_TAG,
- *
+ * Request the reevaluation of some body. Returned from doAfterBody. For compatibility with JSP 1.1, the value is
+ * carefully selected to be the same as the, now deprecated, BodyTag.EVAL_BODY_TAG,
*/
int EVAL_BODY_AGAIN = 2;
/**
- * Process body (re)evaluation. This method is invoked by the
- * JSP Page implementation object after every evaluation of
- * the body into the BodyEvaluation object. The method is
- * not invoked if there is no body evaluation.
- *
+ * Process body (re)evaluation. This method is invoked by the JSP Page implementation object after every evaluation
+ * of the body into the BodyEvaluation object. The method is not invoked if there is no body evaluation.
* <p>
- * If doAfterBody returns EVAL_BODY_AGAIN, a new evaluation of the
- * body will happen (followed by another invocation of doAfterBody).
- * If doAfterBody returns SKIP_BODY, no more body evaluations will occur,
- * and the doEndTag method will be invoked.
- *
+ * If doAfterBody returns EVAL_BODY_AGAIN, a new evaluation of the body will happen (followed by another invocation
+ * of doAfterBody). If doAfterBody returns SKIP_BODY, no more body evaluations will occur, and the doEndTag method
+ * will be invoked.
* <p>
- * If this tag handler implements BodyTag and doAfterBody returns
- * SKIP_BODY, the value of out will be restored using the popBody
- * method in pageContext prior to invoking doEndTag.
- *
+ * If this tag handler implements BodyTag and doAfterBody returns SKIP_BODY, the value of out will be restored using
+ * the popBody method in pageContext prior to invoking doEndTag.
* <p>
- * The method re-invocations may be lead to different actions because
- * there might have been some changes to shared state, or because
- * of external computation.
- *
+ * The method re-invocations may be lead to different actions because there might have been some changes to shared
+ * state, or because of external computation.
* <p>
- * The JSP container will resynchronize the values of any AT_BEGIN and
- * NESTED variables (defined by the associated TagExtraInfo or TLD) after
- * the invocation of doAfterBody().
+ * The JSP container will resynchronize the values of any AT_BEGIN and NESTED variables (defined by the associated
+ * TagExtraInfo or TLD) after the invocation of doAfterBody().
*
* @return whether additional evaluations of the body are desired
+ *
* @throws JspException if an error occurred while processing this tag
*/
int doAfterBody() throws JspException;
diff --git a/java/jakarta/servlet/jsp/tagext/JspFragment.java b/java/jakarta/servlet/jsp/tagext/JspFragment.java
index 18890d80e9..94842324fd 100644
--- a/java/jakarta/servlet/jsp/tagext/JspFragment.java
+++ b/java/jakarta/servlet/jsp/tagext/JspFragment.java
@@ -23,32 +23,24 @@ import jakarta.servlet.jsp.JspContext;
import jakarta.servlet.jsp.JspException;
/**
- * Encapsulates a portion of JSP code in an object that
- * can be invoked as many times as needed. JSP Fragments are defined
- * using JSP syntax as the body of a tag for an invocation to a SimpleTag
- * handler, or as the body of a <jsp:attribute> standard action
- * specifying the value of an attribute that is declared as a fragment,
- * or to be of type JspFragment in the TLD.
+ * Encapsulates a portion of JSP code in an object that can be invoked as many times as needed. JSP Fragments are
+ * defined using JSP syntax as the body of a tag for an invocation to a SimpleTag handler, or as the body of a
+ * <jsp:attribute> standard action specifying the value of an attribute that is declared as a fragment, or to be
+ * of type JspFragment in the TLD.
* <p>
- * The definition of the JSP fragment must only contain template
- * text and JSP action elements. In other words, it must not contain
- * scriptlets or scriptlet expressions. At translation time, the
- * container generates an implementation of the JspFragment abstract class
- * capable of executing the defined fragment.
+ * The definition of the JSP fragment must only contain template text and JSP action elements. In other words, it must
+ * not contain scriptlets or scriptlet expressions. At translation time, the container generates an implementation of
+ * the JspFragment abstract class capable of executing the defined fragment.
* <p>
- * A tag handler can invoke the fragment zero or more times, or
- * pass it along to other tags, before returning. To communicate values
- * to/from a JSP fragment, tag handlers store/retrieve values in
- * the JspContext associated with the fragment.
+ * A tag handler can invoke the fragment zero or more times, or pass it along to other tags, before returning. To
+ * communicate values to/from a JSP fragment, tag handlers store/retrieve values in the JspContext associated with the
+ * fragment.
* <p>
- * Note that tag library developers and page authors should not generate
- * JspFragment implementations manually.
+ * Note that tag library developers and page authors should not generate JspFragment implementations manually.
* <p>
- * <i>Implementation Note</i>: It is not necessary to generate a
- * separate class for each fragment. One possible implementation is
- * to generate a single helper class for each page that implements
- * JspFragment. Upon construction, a discriminator can be passed to
- * select which fragment that instance will execute.
+ * <i>Implementation Note</i>: It is not necessary to generate a separate class for each fragment. One possible
+ * implementation is to generate a single helper class for each page that implements JspFragment. Upon construction, a
+ * discriminator can be passed to select which fragment that instance will execute.
*
* @since JSP 2.0
*/
@@ -62,24 +54,20 @@ public abstract class JspFragment {
}
/**
- * Executes the fragment and directs all output to the given Writer,
- * or the JspWriter returned by the getOut() method of the JspContext
- * associated with the fragment if out is null.
+ * Executes the fragment and directs all output to the given Writer, or the JspWriter returned by the getOut()
+ * method of the JspContext associated with the fragment if out is null.
*
- * @param out The Writer to output the fragment to, or null if
- * output should be sent to JspContext.getOut().
- * @throws jakarta.servlet.jsp.JspException Thrown if an error occurred
- * while invoking this fragment.
- * @throws jakarta.servlet.jsp.SkipPageException Thrown if the page
- * that (either directly or indirectly) invoked the tag handler that
- * invoked this fragment is to cease evaluation. The container
- * must throw this exception if a Classic Tag Handler returned
- * Tag.SKIP_PAGE or if a Simple Tag Handler threw SkipPageException.
- * @throws java.io.IOException If there was an error writing to the
- * stream.
+ * @param out The Writer to output the fragment to, or null if output should be sent to JspContext.getOut().
+ *
+ * @throws jakarta.servlet.jsp.JspException Thrown if an error occurred while invoking this fragment.
+ * @throws jakarta.servlet.jsp.SkipPageException Thrown if the page that (either directly or indirectly) invoked the
+ * tag handler that invoked this fragment is to cease evaluation.
+ * The container must throw this exception if a Classic Tag
+ * Handler returned Tag.SKIP_PAGE or if a Simple Tag Handler threw
+ * SkipPageException.
+ * @throws java.io.IOException If there was an error writing to the stream.
*/
- public abstract void invoke( Writer out )
- throws JspException, IOException;
+ public abstract void invoke(Writer out) throws JspException, IOException;
/**
* Returns the JspContext that is bound to this JspFragment.
diff --git a/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java b/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
index 23ac83f34c..f8cfea58fc 100644
--- a/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
+++ b/java/jakarta/servlet/jsp/tagext/JspIdConsumer.java
@@ -17,8 +17,7 @@
package jakarta.servlet.jsp.tagext;
/**
- * Interface that allows tag handlers to be provided with a unique (within the
- * scope of the web application) ID.
+ * Interface that allows tag handlers to be provided with a unique (within the scope of the web application) ID.
*/
public interface JspIdConsumer {
diff --git a/java/jakarta/servlet/jsp/tagext/JspTag.java b/java/jakarta/servlet/jsp/tagext/JspTag.java
index 6f0f6ea959..e52984ff90 100644
--- a/java/jakarta/servlet/jsp/tagext/JspTag.java
+++ b/java/jakarta/servlet/jsp/tagext/JspTag.java
@@ -17,8 +17,7 @@
package jakarta.servlet.jsp.tagext;
/**
- * Serves as a base class for Tag and SimpleTag.
- * This is mostly for organizational and type-safety purposes.
+ * Serves as a base class for Tag and SimpleTag. This is mostly for organizational and type-safety purposes.
*
* @since JSP 2.0
*/
diff --git a/java/jakarta/servlet/jsp/tagext/PageData.java b/java/jakarta/servlet/jsp/tagext/PageData.java
index 4d40658067..d0894fb7ad 100644
--- a/java/jakarta/servlet/jsp/tagext/PageData.java
+++ b/java/jakarta/servlet/jsp/tagext/PageData.java
@@ -19,28 +19,23 @@ package jakarta.servlet.jsp.tagext;
import java.io.InputStream;
/**
- * Translation-time information on a JSP page. The information
- * corresponds to the XML view of the JSP page.
- *
+ * Translation-time information on a JSP page. The information corresponds to the XML view of the JSP page.
* <p>
- * Objects of this type are generated by the JSP translator, e.g.
- * when being passed to a TagLibraryValidator instance.
+ * Objects of this type are generated by the JSP translator, e.g. when being passed to a TagLibraryValidator instance.
*/
public abstract class PageData {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public PageData() {
// NOOP by default
}
/**
- * Returns an input stream on the XML view of a JSP page.
- * The stream is encoded in UTF-8. Recall that the XML view of a
- * JSP page has the include directives expanded.
+ * Returns an input stream on the XML view of a JSP page. The stream is encoded in UTF-8. Recall that the XML view
+ * of a JSP page has the include directives expanded.
*
* @return An input stream on the document.
*/
diff --git a/java/jakarta/servlet/jsp/tagext/SimpleTag.java b/java/jakarta/servlet/jsp/tagext/SimpleTag.java
index e15fc6ca25..35d1d7cd0f 100644
--- a/java/jakarta/servlet/jsp/tagext/SimpleTag.java
+++ b/java/jakarta/servlet/jsp/tagext/SimpleTag.java
@@ -20,92 +20,74 @@ import jakarta.servlet.jsp.JspContext;
/**
* Interface for defining Simple Tag Handlers.
- *
- * <p>Simple Tag Handlers differ from Classic Tag Handlers in that instead
- * of supporting <code>doStartTag()</code> and <code>doEndTag()</code>,
- * the <code>SimpleTag</code> interface provides a simple
- * <code>doTag()</code> method, which is called once and only once for any
- * given tag invocation. All tag logic, iteration, body evaluations, etc.
- * are to be performed in this single method. Thus, simple tag handlers
- * have the equivalent power of <code>BodyTag</code>, but with a much
- * simpler lifecycle and interface.</p>
- *
- * <p>To support body content, the <code>setJspBody()</code>
- * method is provided. The container invokes the <code>setJspBody()</code>
- * method with a <code>JspFragment</code> object encapsulating the body of
- * the tag. The tag handler implementation can call
- * <code>invoke()</code> on that fragment to evaluate the body as
- * many times as it needs.</p>
- *
- * <p>A SimpleTag handler must have a public no-args constructor. Most
- * SimpleTag handlers should extend SimpleTagSupport.</p>
- *
- * <p><b>Lifecycle</b></p>
- *
- * <p>The following is a non-normative, brief overview of the
- * SimpleTag lifecycle. Refer to the JSP Specification for details.</p>
- *
+ * <p>
+ * Simple Tag Handlers differ from Classic Tag Handlers in that instead of supporting <code>doStartTag()</code> and
+ * <code>doEndTag()</code>, the <code>SimpleTag</code> interface provides a simple <code>doTag()</code> method, which is
+ * called once and only once for any given tag invocation. All tag logic, iteration, body evaluations, etc. are to be
+ * performed in this single method. Thus, simple tag handlers have the equivalent power of <code>BodyTag</code>, but
+ * with a much simpler lifecycle and interface.
+ * </p>
+ * <p>
+ * To support body content, the <code>setJspBody()</code> method is provided. The container invokes the
+ * <code>setJspBody()</code> method with a <code>JspFragment</code> object encapsulating the body of the tag. The tag
+ * handler implementation can call <code>invoke()</code> on that fragment to evaluate the body as many times as it
+ * needs.
+ * </p>
+ * <p>
+ * A SimpleTag handler must have a public no-args constructor. Most SimpleTag handlers should extend SimpleTagSupport.
+ * </p>
+ * <p>
+ * <b>Lifecycle</b>
+ * </p>
+ * <p>
+ * The following is a non-normative, brief overview of the SimpleTag lifecycle. Refer to the JSP Specification for
+ * details.
+ * </p>
* <ol>
- * <li>A new tag handler instance is created each time by the container
- * by calling the provided zero-args constructor. Unlike classic
- * tag handlers, simple tag handlers are never cached and reused by
- * the JSP container.</li>
- * <li>The <code>setJspContext()</code> and <code>setParent()</code>
- * methods are called by the container. The <code>setParent()</code>
- * method is only called if the element is nested within another tag
- * invocation.</li>
- * <li>The setters for each attribute defined for this tag are called
- * by the container.</li>
- * <li>If a body exists, the <code>setJspBody()</code> method is called
- * by the container to set the body of this tag, as a
- * <code>JspFragment</code>. If the action element is empty in
- * the page, this method is not called at all.</li>
- * <li>The <code>doTag()</code> method is called by the container. All
- * tag logic, iteration, body evaluations, etc. occur in this
- * method.</li>
- * <li>The <code>doTag()</code> method returns and all variables are
- * synchronized.</li>
+ * <li>A new tag handler instance is created each time by the container by calling the provided zero-args constructor.
+ * Unlike classic tag handlers, simple tag handlers are never cached and reused by the JSP container.</li>
+ * <li>The <code>setJspContext()</code> and <code>setParent()</code> methods are called by the container. The
+ * <code>setParent()</code> method is only called if the element is nested within another tag invocation.</li>
+ * <li>The setters for each attribute defined for this tag are called by the container.</li>
+ * <li>If a body exists, the <code>setJspBody()</code> method is called by the container to set the body of this tag, as
+ * a <code>JspFragment</code>. If the action element is empty in the page, this method is not called at all.</li>
+ * <li>The <code>doTag()</code> method is called by the container. All tag logic, iteration, body evaluations, etc.
+ * occur in this method.</li>
+ * <li>The <code>doTag()</code> method returns and all variables are synchronized.</li>
* </ol>
*
* @see SimpleTagSupport
+ *
* @since JSP 2.0
*/
public interface SimpleTag extends JspTag {
/**
- * Called by the container to invoke this tag.
- * The implementation of this method is provided by the tag library
+ * Called by the container to invoke this tag. The implementation of this method is provided by the tag library
* developer, and handles all tag processing, body iteration, etc.
- *
* <p>
- * The JSP container will resynchronize any AT_BEGIN and AT_END
- * variables (defined by the associated tag file, TagExtraInfo, or TLD)
- * after the invocation of doTag().
+ * The JSP container will resynchronize any AT_BEGIN and AT_END variables (defined by the associated tag file,
+ * TagExtraInfo, or TLD) after the invocation of doTag().
*
- * @throws jakarta.servlet.jsp.JspException If an error occurred
- * while processing this tag.
- * @throws jakarta.servlet.jsp.SkipPageException If the page that
- * (either directly or indirectly) invoked this tag is to
- * cease evaluation. A Simple Tag Handler generated from a
- * tag file must throw this exception if an invoked Classic
- * Tag Handler returned SKIP_PAGE or if an invoked Simple
- * Tag Handler threw SkipPageException or if an invoked Jsp Fragment
- * threw a SkipPageException.
- * @throws java.io.IOException If there was an error writing to the
- * output stream.
+ * @throws jakarta.servlet.jsp.JspException If an error occurred while processing this tag.
+ * @throws jakarta.servlet.jsp.SkipPageException If the page that (either directly or indirectly) invoked this tag
+ * is to cease evaluation. A Simple Tag Handler generated from a
+ * tag file must throw this exception if an invoked Classic Tag
+ * Handler returned SKIP_PAGE or if an invoked Simple Tag Handler
+ * threw SkipPageException or if an invoked Jsp Fragment threw a
+ * SkipPageException.
+ * @throws java.io.IOException If there was an error writing to the output stream.
*/
- void doTag()
- throws jakarta.servlet.jsp.JspException, java.io.IOException;
+ void doTag() throws jakarta.servlet.jsp.JspException, java.io.IOException;
/**
* Sets the parent of this tag, for collaboration purposes.
* <p>
- * The container invokes this method only if this tag invocation is
- * nested within another tag invocation.
+ * The container invokes this method only if this tag invocation is nested within another tag invocation.
*
* @param parent the tag that encloses this tag
*/
- void setParent( JspTag parent );
+ void setParent(JspTag parent);
/**
* Returns the parent of this tag, for collaboration purposes.
@@ -115,26 +97,24 @@ public interface SimpleTag extends JspTag {
JspTag getParent();
/**
- * Called by the container to provide this tag handler with
- * the <code>JspContext</code> for this invocation.
- * An implementation should save this value.
+ * Called by the container to provide this tag handler with the <code>JspContext</code> for this invocation. An
+ * implementation should save this value.
*
* @param pc the page context for this invocation
+ *
* @see Tag#setPageContext
*/
- void setJspContext( JspContext pc );
+ void setJspContext(JspContext pc);
/**
- * Provides the body of this tag as a JspFragment object, able to be
- * invoked zero or more times by the tag handler.
+ * Provides the body of this tag as a JspFragment object, able to be invoked zero or more times by the tag handler.
* <p>
- * This method is invoked by the JSP page implementation
- * object prior to <code>doTag()</code>. If the action element is
- * empty in the page, this method is not called at all.
+ * This method is invoked by the JSP page implementation object prior to <code>doTag()</code>. If the action element
+ * is empty in the page, this method is not called at all.
*
* @param jspBody The fragment encapsulating the body of this tag.
*/
- void setJspBody( JspFragment jspBody );
+ void setJspBody(JspFragment jspBody);
}
diff --git a/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java b/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
index de260f9530..0230990a9d 100644
--- a/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/SimpleTagSupport.java
@@ -24,11 +24,9 @@ import jakarta.servlet.jsp.JspException;
/**
* A base class for defining tag handlers implementing SimpleTag.
* <p>
- * The SimpleTagSupport class is a utility class intended to be used
- * as the base class for new simple tag handlers. The SimpleTagSupport
- * class implements the SimpleTag interface and adds additional
- * convenience methods including getter methods for the properties in
- * SimpleTag.
+ * The SimpleTagSupport class is a utility class intended to be used as the base class for new simple tag handlers. The
+ * SimpleTagSupport class implements the SimpleTag interface and adds additional convenience methods including getter
+ * methods for the properties in SimpleTag.
*
* @since JSP 2.0
*/
@@ -43,8 +41,7 @@ public class SimpleTagSupport implements SimpleTag {
private JspFragment jspBody;
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public SimpleTagSupport() {
// NOOP by default
@@ -53,17 +50,17 @@ public class SimpleTagSupport implements SimpleTag {
/**
* Default processing of the tag does nothing.
*
- * @throws JspException Subclasses can throw JspException to indicate
- * an error occurred while processing this tag.
- * @throws jakarta.servlet.jsp.SkipPageException If the page that
- * (either directly or indirectly) invoked this tag is to
- * cease evaluation. A Simple Tag Handler generated from a
- * tag file must throw this exception if an invoked Classic
- * Tag Handler returned SKIP_PAGE or if an invoked Simple
- * Tag Handler threw SkipPageException or if an invoked Jsp Fragment
- * threw a SkipPageException.
- * @throws IOException Subclasses can throw IOException if there was
- * an error writing to the output stream
+ * @throws JspException Subclasses can throw JspException to indicate an error occurred
+ * while processing this tag.
+ * @throws jakarta.servlet.jsp.SkipPageException If the page that (either directly or indirectly) invoked this tag
+ * is to cease evaluation. A Simple Tag Handler generated from a
+ * tag file must throw this exception if an invoked Classic Tag
+ * Handler returned SKIP_PAGE or if an invoked Simple Tag Handler
+ * threw SkipPageException or if an invoked Jsp Fragment threw a
+ * SkipPageException.
+ * @throws IOException Subclasses can throw IOException if there was an error writing to
+ * the output stream
+ *
* @see SimpleTag#doTag()
*/
@Override
@@ -74,13 +71,12 @@ public class SimpleTagSupport implements SimpleTag {
/**
* Sets the parent of this tag, for collaboration purposes.
* <p>
- * The container invokes this method only if this tag invocation is
- * nested within another tag invocation.
+ * The container invokes this method only if this tag invocation is nested within another tag invocation.
*
* @param parent the tag that encloses this tag
*/
@Override
- public void setParent( JspTag parent ) {
+ public void setParent(JspTag parent) {
this.parentTag = parent;
}
@@ -95,21 +91,20 @@ public class SimpleTagSupport implements SimpleTag {
}
/**
- * Stores the provided JSP context in the private jspContext field.
- * Subclasses can access the <code>JspContext</code> via
- * <code>getJspContext()</code>.
+ * Stores the provided JSP context in the private jspContext field. Subclasses can access the
+ * <code>JspContext</code> via <code>getJspContext()</code>.
*
* @param pc the page context for this invocation
+ *
* @see SimpleTag#setJspContext
*/
@Override
- public void setJspContext( JspContext pc ) {
+ public void setJspContext(JspContext pc) {
this.jspContext = pc;
}
/**
- * Returns the page context passed in by the container via
- * setJspContext.
+ * Returns the page context passed in by the container via setJspContext.
*
* @return the page context for this invocation
*/
@@ -120,79 +115,63 @@ public class SimpleTagSupport implements SimpleTag {
/**
* Stores the provided JspFragment.
*
- * @param jspBody The fragment encapsulating the body of this tag.
- * If the action element is empty in the page, this method is
- * not called at all.
+ * @param jspBody The fragment encapsulating the body of this tag. If the action element is empty in the page, this
+ * method is not called at all.
+ *
* @see SimpleTag#setJspBody
*/
@Override
- public void setJspBody( JspFragment jspBody ) {
+ public void setJspBody(JspFragment jspBody) {
this.jspBody = jspBody;
}
/**
* Returns the body passed in by the container via setJspBody.
*
- * @return the fragment encapsulating the body of this tag, or
- * null if the action element is empty in the page.
+ * @return the fragment encapsulating the body of this tag, or null if the action element is empty in the page.
*/
protected JspFragment getJspBody() {
return this.jspBody;
}
/**
- * Find the instance of a given class type that is closest to a given
- * instance.
- * This method uses the getParent method from the Tag and/or SimpleTag
- * interfaces. This method is used for coordination among
- * cooperating tags.
- *
- * <p> For every instance of TagAdapter
- * encountered while traversing the ancestors, the tag handler returned by
- * <code>TagAdapter.getAdaptee()</code> - instead of the TagAdapter itself -
- * is compared to <code>klass</code>. If the tag handler matches, it - and
- * not its TagAdapter - is returned.
- *
+ * Find the instance of a given class type that is closest to a given instance. This method uses the getParent
+ * method from the Tag and/or SimpleTag interfaces. This method is used for coordination among cooperating tags.
* <p>
- * The current version of the specification only provides one formal
- * way of indicating the observable type of a tag handler: its
- * tag handler implementation class, described in the tag-class
- * subelement of the tag element. This is extended in an
- * informal manner by allowing the tag library author to
- * indicate in the description subelement an observable type.
- * The type should be a subtype of the tag handler implementation
- * class or void.
- * This additional constraint can be exploited by a
- * specialized container that knows about that specific tag library,
- * as in the case of the JSP standard tag library.
- *
+ * For every instance of TagAdapter encountered while traversing the ancestors, the tag handler returned by
+ * <code>TagAdapter.getAdaptee()</code> - instead of the TagAdapter itself - is compared to <code>klass</code>. If
+ * the tag handler matches, it - and not its TagAdapter - is returned.
* <p>
- * When a tag library author provides information on the
- * observable type of a tag handler, client programmatic code
- * should adhere to that constraint. Specifically, the Class
- * passed to findAncestorWithClass should be a subtype of the
- * observable type.
- *
+ * The current version of the specification only provides one formal way of indicating the observable type of a tag
+ * handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is
+ * extended in an informal manner by allowing the tag library author to indicate in the description subelement an
+ * observable type. The type should be a subtype of the tag handler implementation class or void. This additional
+ * constraint can be exploited by a specialized container that knows about that specific tag library, as in the case
+ * of the JSP standard tag library.
+ * <p>
+ * When a tag library author provides information on the observable type of a tag handler, client programmatic code
+ * should adhere to that constraint. Specifically, the Class passed to findAncestorWithClass should be a subtype of
+ * the observable type.
*
- * @param from The instance from where to start looking.
+ * @param from The instance from where to start looking.
* @param klass The subclass of JspTag or interface to be matched
- * @return the nearest ancestor that implements the interface
- * or is an instance of the class specified
+ *
+ * @return the nearest ancestor that implements the interface or is an instance of the class specified
*/
public static final JspTag findAncestorWithClass(JspTag from, Class<?> klass) {
boolean isInterface = false;
- if (from == null || klass == null || (!JspTag.class.isAssignableFrom(klass) &&
- !(isInterface = klass.isInterface()))) {
+ if (from == null || klass == null ||
+ (!JspTag.class.isAssignableFrom(klass) && !(isInterface = klass.isInterface()))) {
return null;
}
for (;;) {
JspTag parent = null;
- if( from instanceof SimpleTag ) {
- parent = ((SimpleTag)from).getParent();
- } else if( from instanceof Tag ) {
- parent = ((Tag)from).getParent();
+ if (from instanceof SimpleTag) {
+ parent = ((SimpleTag) from).getParent();
+ } else if (from instanceof Tag) {
+ parent = ((Tag) from).getParent();
}
if (parent == null) {
return null;
@@ -202,8 +181,7 @@ public class SimpleTagSupport implements SimpleTag {
parent = ((TagAdapter) parent).getAdaptee();
}
- if ((isInterface && klass.isInstance(parent)) ||
- klass.isAssignableFrom(parent.getClass())) {
+ if ((isInterface && klass.isInstance(parent)) || klass.isAssignableFrom(parent.getClass())) {
return parent;
}
diff --git a/java/jakarta/servlet/jsp/tagext/Tag.java b/java/jakarta/servlet/jsp/tagext/Tag.java
index cd5291fcfb..16314411f6 100644
--- a/java/jakarta/servlet/jsp/tagext/Tag.java
+++ b/java/jakarta/servlet/jsp/tagext/Tag.java
@@ -21,99 +21,91 @@ import jakarta.servlet.jsp.PageContext;
/**
- * The interface of a classic tag handler that does not want to manipulate
- * its body. The Tag interface defines the basic protocol between a Tag
- * handler and JSP page implementation class. It defines the life cycle
- * and the methods to be invoked at start and end tag.
- *
- * <p><B>Properties</B></p>
- *
- * <p>The Tag interface specifies the setter and getter methods for the core
- * pageContext and parent properties.</p>
- *
- * <p>The JSP page implementation object invokes setPageContext and
- * setParent, in that order, before invoking doStartTag() or doEndTag().</p>
- *
- * <p><B>Methods</B></p>
- *
- * <p>There are two main actions: doStartTag and doEndTag. Once all
- * appropriate properties have been initialized, the doStartTag and
- * doEndTag methods can be invoked on the tag handler. Between these
- * invocations, the tag handler is assumed to hold a state that must
- * be preserved. After the doEndTag invocation, the tag handler is
- * available for further invocations (and it is expected to have
- * retained its properties).</p>
- *
- * <p><B>Lifecycle</B></p>
- *
- * <p>Lifecycle details are described by the transition diagram below,
- * with the following comments:</p>
+ * The interface of a classic tag handler that does not want to manipulate its body. The Tag interface defines the basic
+ * protocol between a Tag handler and JSP page implementation class. It defines the life cycle and the methods to be
+ * invoked at start and end tag.
+ * <p>
+ * <B>Properties</B>
+ * </p>
+ * <p>
+ * The Tag interface specifies the setter and getter methods for the core pageContext and parent properties.
+ * </p>
+ * <p>
+ * The JSP page implementation object invokes setPageContext and setParent, in that order, before invoking doStartTag()
+ * or doEndTag().
+ * </p>
+ * <p>
+ * <B>Methods</B>
+ * </p>
+ * <p>
+ * There are two main actions: doStartTag and doEndTag. Once all appropriate properties have been initialized, the
+ * doStartTag and doEndTag methods can be invoked on the tag handler. Between these invocations, the tag handler is
+ * assumed to hold a state that must be preserved. After the doEndTag invocation, the tag handler is available for
+ * further invocations (and it is expected to have retained its properties).
+ * </p>
+ * <p>
+ * <B>Lifecycle</B>
+ * </p>
+ * <p>
+ * Lifecycle details are described by the transition diagram below, with the following comments:
+ * </p>
* <ul>
- * <li> [1] This transition is intended to be for releasing long-term data.
- * no guarantees are assumed on whether any properties have been retained
- * or not.
- * <li> [2] This transition happens if and only if the tag ends normally
- * without raising an exception
- * <li> [3] Some setters may be called again before a tag handler is
- * reused. For instance, <code>setParent()</code> is called if it's
- * reused within the same page but at a different level,
- * <code>setPageContext()</code> is called if it's used in another page,
- * and attribute setters are called if the values differ or are expressed
- * as request-time attribute values.
- * <li> Check the TryCatchFinally interface for additional details related
- * to exception handling and resource management.
+ * <li>[1] This transition is intended to be for releasing long-term data. no guarantees are assumed on whether any
+ * properties have been retained or not.
+ * <li>[2] This transition happens if and only if the tag ends normally without raising an exception
+ * <li>[3] Some setters may be called again before a tag handler is reused. For instance, <code>setParent()</code> is
+ * called if it's reused within the same page but at a different level, <code>setPageContext()</code> is called if it's
+ * used in another page, and attribute setters are called if the values differ or are expressed as request-time
+ * attribute values.
+ * <li>Check the TryCatchFinally interface for additional details related to exception handling and resource management.
* </ul>
- *
- * <IMG src="doc-files/TagProtocol.gif"
- * alt="Lifecycle Details Transition Diagram for Tag">
- *
- * <p>Once all invocations on the tag handler
- * are completed, the release method is invoked on it. Once a release
- * method is invoked <em>all</em> properties, including parent and
- * pageContext, are assumed to have been reset to an unspecified value.
- * The page compiler guarantees that release() will be invoked on the Tag
- * handler before the handler is released to the GC.</p>
- *
- * <p><B>Empty and Non-Empty Action</B></p>
- * <p>If the TagLibraryDescriptor file indicates that the action must
- * always have an empty action, by an <body-content> entry of "empty",
- * then the doStartTag() method must return SKIP_BODY.</p>
- *
- * <p>Otherwise, the doStartTag() method may return SKIP_BODY or
- * EVAL_BODY_INCLUDE.</p>
- *
- * <p>If SKIP_BODY is returned the body, if present, is not evaluated.</p>
- *
- * <p>If EVAL_BODY_INCLUDE is returned, the body is evaluated and
- * "passed through" to the current out.</p>
+ * <IMG src="doc-files/TagProtocol.gif" alt="Lifecycle Details Transition Diagram for Tag">
+ * <p>
+ * Once all invocations on the tag handler are completed, the release method is invoked on it. Once a release method is
+ * invoked <em>all</em> properties, including parent and pageContext, are assumed to have been reset to an unspecified
+ * value. The page compiler guarantees that release() will be invoked on the Tag handler before the handler is released
+ * to the GC.
+ * </p>
+ * <p>
+ * <B>Empty and Non-Empty Action</B>
+ * </p>
+ * <p>
+ * If the TagLibraryDescriptor file indicates that the action must always have an empty action, by an
+ * <body-content> entry of "empty", then the doStartTag() method must return SKIP_BODY.
+ * </p>
+ * <p>
+ * Otherwise, the doStartTag() method may return SKIP_BODY or EVAL_BODY_INCLUDE.
+ * </p>
+ * <p>
+ * If SKIP_BODY is returned the body, if present, is not evaluated.
+ * </p>
+ * <p>
+ * If EVAL_BODY_INCLUDE is returned, the body is evaluated and "passed through" to the current out.
+ * </p>
*/
public interface Tag extends JspTag {
/**
- * Skip body evaluation.
- * Valid return value for doStartTag and doAfterBody.
+ * Skip body evaluation. Valid return value for doStartTag and doAfterBody.
*/
int SKIP_BODY = 0;
/**
- * Evaluate body into existing out stream.
- * Valid return value for doStartTag.
+ * Evaluate body into existing out stream. Valid return value for doStartTag.
*/
int EVAL_BODY_INCLUDE = 1;
/**
- * Skip the rest of the page.
- * Valid return value for doEndTag.
+ * Skip the rest of the page. Valid return value for doEndTag.
*/
int SKIP_PAGE = 5;
/**
- * Continue evaluating the page.
- * Valid return value for doEndTag().
+ * Continue evaluating the page. Valid return value for doEndTag().
*/
int EVAL_PAGE = 6;
@@ -122,12 +114,10 @@ public interface Tag extends JspTag {
/**
- * Set the current page context.
- * This method is invoked by the JSP page implementation object
- * prior to doStartTag().
+ * Set the current page context. This method is invoked by the JSP page implementation object prior to doStartTag().
* <p>
- * This value is *not* reset by doEndTag() and must be explicitly reset
- * by a page implementation if it changes between calls to doStartTag().
+ * This value is *not* reset by doEndTag() and must be explicitly reset by a page implementation if it changes
+ * between calls to doStartTag().
*
* @param pc The page context for this tag handler.
*/
@@ -136,11 +126,10 @@ public interface Tag extends JspTag {
/**
- * Set the parent (closest enclosing tag handler) of this tag handler.
- * Invoked by the JSP page implementation object prior to doStartTag().
+ * Set the parent (closest enclosing tag handler) of this tag handler. Invoked by the JSP page implementation object
+ * prior to doStartTag().
* <p>
- * This value is *not* reset by doEndTag() and must be explicitly reset
- * by a page implementation.
+ * This value is *not* reset by doEndTag() and must be explicitly reset by a page implementation.
*
* @param t The parent tag, or null.
*/
@@ -151,27 +140,20 @@ public interface Tag extends JspTag {
/**
* Get the parent (closest enclosing tag handler) for this tag handler.
- *
* <p>
- * The getParent() method can be used to navigate the nested tag
- * handler structure at runtime for cooperation among custom actions;
- * for example, the findAncestorWithClass() method in TagSupport
- * provides a convenient way of doing this.
- *
+ * The getParent() method can be used to navigate the nested tag handler structure at runtime for cooperation among
+ * custom actions; for example, the findAncestorWithClass() method in TagSupport provides a convenient way of doing
+ * this.
* <p>
- * The current version of the specification only provides one formal
- * way of indicating the observable type of a tag handler: its
- * tag handler implementation class, described in the tag-class
- * sub-element of the tag element. This is extended in an
- * informal manner by allowing the tag library author to
- * indicate in the description sub-element an observable type.
- * The type should be a sub-type of the tag handler implementation
- * class or void.
- * This additional constraint can be exploited by a
- * specialized container that knows about that specific tag library,
- * as in the case of the JSP standard tag library.
+ * The current version of the specification only provides one formal way of indicating the observable type of a tag
+ * handler: its tag handler implementation class, described in the tag-class sub-element of the tag element. This is
+ * extended in an informal manner by allowing the tag library author to indicate in the description sub-element an
+ * observable type. The type should be a sub-type of the tag handler implementation class or void. This additional
+ * constraint can be exploited by a specialized container that knows about that specific tag library, as in the case
+ * of the JSP standard tag library.
*
* @return the current parent, or null if none.
+ *
* @see TagSupport#findAncestorWithClass
*/
@@ -182,40 +164,28 @@ public interface Tag extends JspTag {
/**
- * Process the start tag for this instance.
- * This method is invoked by the JSP page implementation object.
- *
+ * Process the start tag for this instance. This method is invoked by the JSP page implementation object.
* <p>
- * The doStartTag method assumes that the properties pageContext and
- * parent have been set. It also assumes that any properties exposed as
- * attributes have been set too. When this method is invoked, the body
- * has not yet been evaluated.
- *
+ * The doStartTag method assumes that the properties pageContext and parent have been set. It also assumes that any
+ * properties exposed as attributes have been set too. When this method is invoked, the body has not yet been
+ * evaluated.
* <p>
- * This method returns Tag.EVAL_BODY_INCLUDE or
- * BodyTag.EVAL_BODY_BUFFERED to indicate
- * that the body of the action should be evaluated or SKIP_BODY to
- * indicate otherwise.
- *
+ * This method returns Tag.EVAL_BODY_INCLUDE or BodyTag.EVAL_BODY_BUFFERED to indicate that the body of the action
+ * should be evaluated or SKIP_BODY to indicate otherwise.
* <p>
- * When a Tag returns EVAL_BODY_INCLUDE the result of evaluating
- * the body (if any) is included into the current "out" JspWriter as it
- * happens and then doEndTag() is invoked.
- *
+ * When a Tag returns EVAL_BODY_INCLUDE the result of evaluating the body (if any) is included into the current
+ * "out" JspWriter as it happens and then doEndTag() is invoked.
* <p>
- * BodyTag.EVAL_BODY_BUFFERED is only valid if the tag handler
- * implements BodyTag.
- *
+ * BodyTag.EVAL_BODY_BUFFERED is only valid if the tag handler implements BodyTag.
* <p>
- * The JSP container will resynchronize the values of any AT_BEGIN and
- * NESTED variables (defined by the associated TagExtraInfo or TLD)
- * after the invocation of doStartTag(), except for a tag handler
- * implementing BodyTag whose doStartTag() method returns
- * BodyTag.EVAL_BODY_BUFFERED.
+ * The JSP container will resynchronize the values of any AT_BEGIN and NESTED variables (defined by the associated
+ * TagExtraInfo or TLD) after the invocation of doStartTag(), except for a tag handler implementing BodyTag whose
+ * doStartTag() method returns BodyTag.EVAL_BODY_BUFFERED.
+ *
+ * @return EVAL_BODY_INCLUDE if the tag wants to process body, SKIP_BODY if it does not want to process it.
*
- * @return EVAL_BODY_INCLUDE if the tag wants to process body, SKIP_BODY
- * if it does not want to process it.
* @throws JspException if an error occurred while processing this tag
+ *
* @see BodyTag
*/
@@ -223,39 +193,31 @@ public interface Tag extends JspTag {
/**
- * Process the end tag for this instance.
- * This method is invoked by the JSP page implementation object
- * on all Tag handlers.
- *
+ * Process the end tag for this instance. This method is invoked by the JSP page implementation object on all Tag
+ * handlers.
* <p>
- * This method will be called after returning from doStartTag. The
- * body of the action may or may not have been evaluated, depending on
- * the return value of doStartTag.
- *
+ * This method will be called after returning from doStartTag. The body of the action may or may not have been
+ * evaluated, depending on the return value of doStartTag.
* <p>
- * If this method returns EVAL_PAGE, the rest of the page continues
- * to be evaluated. If this method returns SKIP_PAGE, the rest of
- * the page is not evaluated, the request is completed, and
- * the doEndTag() methods of enclosing tags are not invoked. If this
- * request was forwarded or included from another page (or Servlet),
- * only the current page evaluation is stopped.
- *
+ * If this method returns EVAL_PAGE, the rest of the page continues to be evaluated. If this method returns
+ * SKIP_PAGE, the rest of the page is not evaluated, the request is completed, and the doEndTag() methods of
+ * enclosing tags are not invoked. If this request was forwarded or included from another page (or Servlet), only
+ * the current page evaluation is stopped.
* <p>
- * The JSP container will resynchronize the values of any AT_BEGIN and
- * AT_END variables (defined by the associated TagExtraInfo or TLD)
- * after the invocation of doEndTag().
+ * The JSP container will resynchronize the values of any AT_BEGIN and AT_END variables (defined by the associated
+ * TagExtraInfo or TLD) after the invocation of doEndTag().
*
* @return indication of whether to continue evaluating the JSP page.
+ *
* @throws JspException if an error occurred while processing this tag
*/
int doEndTag() throws JspException;
/**
- * Called on a Tag handler to release state.
- * The page compiler guarantees that JSP page implementation
- * objects will invoke this method on all tag handlers,
- * but there may be multiple invocations on doStartTag and doEndTag in between.
+ * Called on a Tag handler to release state. The page compiler guarantees that JSP page implementation objects will
+ * invoke this method on all tag handlers, but there may be multiple invocations on doStartTag and doEndTag in
+ * between.
*/
void release();
diff --git a/java/jakarta/servlet/jsp/tagext/TagAdapter.java b/java/jakarta/servlet/jsp/tagext/TagAdapter.java
index 094aaa4274..30ee660db4 100644
--- a/java/jakarta/servlet/jsp/tagext/TagAdapter.java
+++ b/java/jakarta/servlet/jsp/tagext/TagAdapter.java
@@ -20,15 +20,13 @@ import jakarta.servlet.jsp.JspException;
import jakarta.servlet.jsp.PageContext;
/**
- * Wraps any SimpleTag and exposes it using a Tag interface. This is used to
- * allow collaboration between classic Tag handlers and SimpleTag handlers.
+ * Wraps any SimpleTag and exposes it using a Tag interface. This is used to allow collaboration between classic Tag
+ * handlers and SimpleTag handlers.
* <p>
- * Because SimpleTag does not extend Tag, and because Tag.setParent() only
- * accepts a Tag instance, a classic tag handler (one that implements Tag)
- * cannot have a SimpleTag as its parent. To remedy this, a TagAdapter is
- * created to wrap the SimpleTag parent, and the adapter is passed to
- * setParent() instead. A classic Tag Handler can call getAdaptee() to retrieve
- * the encapsulated SimpleTag instance.
+ * Because SimpleTag does not extend Tag, and because Tag.setParent() only accepts a Tag instance, a classic tag handler
+ * (one that implements Tag) cannot have a SimpleTag as its parent. To remedy this, a TagAdapter is created to wrap the
+ * SimpleTag parent, and the adapter is passed to setParent() instead. A classic Tag Handler can call getAdaptee() to
+ * retrieve the encapsulated SimpleTag instance.
*
* @since JSP 2.0
*/
@@ -43,11 +41,9 @@ public class TagAdapter implements Tag {
private boolean parentDetermined;
/**
- * Creates a new TagAdapter that wraps the given SimpleTag and returns the
- * parent tag when getParent() is called.
+ * Creates a new TagAdapter that wraps the given SimpleTag and returns the parent tag when getParent() is called.
*
- * @param adaptee
- * The SimpleTag being adapted as a Tag.
+ * @param adaptee The SimpleTag being adapted as a Tag.
*/
public TagAdapter(SimpleTag adaptee) {
if (adaptee == null) {
@@ -60,37 +56,31 @@ public class TagAdapter implements Tag {
/**
* Must not be called.
*
- * @param pc
- * ignored.
- * @throws UnsupportedOperationException
- * Must not be called
+ * @param pc ignored.
+ *
+ * @throws UnsupportedOperationException Must not be called
*/
@Override
public void setPageContext(PageContext pc) {
- throw new UnsupportedOperationException(
- "Illegal to invoke setPageContext() on TagAdapter wrapper");
+ throw new UnsupportedOperationException("Illegal to invoke setPageContext() on TagAdapter wrapper");
}
/**
- * Must not be called. The parent of this tag is always
- * getAdaptee().getParent().
+ * Must not be called. The parent of this tag is always getAdaptee().getParent().
+ *
+ * @param parentTag ignored.
*
- * @param parentTag
- * ignored.
- * @throws UnsupportedOperationException
- * Must not be called.
+ * @throws UnsupportedOperationException Must not be called.
*/
@Override
public void setParent(Tag parentTag) {
- throw new UnsupportedOperationException(
- "Illegal to invoke setParent() on TagAdapter wrapper");
+ throw new UnsupportedOperationException("Illegal to invoke setParent() on TagAdapter wrapper");
}
/**
- * Returns the parent of this tag, which is always getAdaptee().getParent().
- * This will either be the enclosing Tag (if getAdaptee().getParent()
- * implements Tag), or an adapter to the enclosing Tag (if
- * getAdaptee().getParent() does not implement Tag).
+ * Returns the parent of this tag, which is always getAdaptee().getParent(). This will either be the enclosing Tag
+ * (if getAdaptee().getParent() implements Tag), or an adapter to the enclosing Tag (if getAdaptee().getParent()
+ * does not implement Tag).
*
* @return The parent of the tag being adapted.
*/
@@ -113,9 +103,8 @@ public class TagAdapter implements Tag {
}
/**
- * Gets the tag that is being adapted to the Tag interface. This should be
- * an instance of SimpleTag in JSP 2.0, but room is left for other kinds of
- * tags in future spec versions.
+ * Gets the tag that is being adapted to the Tag interface. This should be an instance of SimpleTag in JSP 2.0, but
+ * room is left for other kinds of tags in future spec versions.
*
* @return the tag that is being adapted
*/
@@ -127,41 +116,35 @@ public class TagAdapter implements Tag {
* Must not be called.
*
* @return always throws UnsupportedOperationException
- * @throws UnsupportedOperationException
- * Must not be called
- * @throws JspException
- * never thrown
+ *
+ * @throws UnsupportedOperationException Must not be called
+ * @throws JspException never thrown
*/
@Override
public int doStartTag() throws JspException {
- throw new UnsupportedOperationException(
- "Illegal to invoke doStartTag() on TagAdapter wrapper");
+ throw new UnsupportedOperationException("Illegal to invoke doStartTag() on TagAdapter wrapper");
}
/**
* Must not be called.
*
* @return always throws UnsupportedOperationException
- * @throws UnsupportedOperationException
- * Must not be called
- * @throws JspException
- * never thrown
+ *
+ * @throws UnsupportedOperationException Must not be called
+ * @throws JspException never thrown
*/
@Override
public int doEndTag() throws JspException {
- throw new UnsupportedOperationException(
- "Illegal to invoke doEndTag() on TagAdapter wrapper");
+ throw new UnsupportedOperationException("Illegal to invoke doEndTag() on TagAdapter wrapper");
}
/**
* Must not be called.
*
- * @throws UnsupportedOperationException
- * Must not be called
+ * @throws UnsupportedOperationException Must not be called
*/
@Override
public void release() {
- throw new UnsupportedOperationException(
- "Illegal to invoke release() on TagAdapter wrapper");
+ throw new UnsupportedOperationException("Illegal to invoke release() on TagAdapter wrapper");
}
}
diff --git a/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java b/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
index 6943a26b08..92e9df69b8 100644
--- a/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagAttributeInfo.java
@@ -17,100 +17,72 @@
package jakarta.servlet.jsp.tagext;
/**
- * Information on the attributes of a Tag, available at translation time. This
- * class is instantiated from the Tag Library Descriptor file (TLD).
- *
+ * Information on the attributes of a Tag, available at translation time. This class is instantiated from the Tag
+ * Library Descriptor file (TLD).
* <p>
- * Only the information needed to generate code is included here. Other
- * information like SCHEMA for validation belongs elsewhere.
+ * Only the information needed to generate code is included here. Other information like SCHEMA for validation belongs
+ * elsewhere.
*/
public class TagAttributeInfo {
/**
- * "id" is wired in to be ID. There is no real benefit in having it be
- * something else IDREFs are not handled any differently.
+ * "id" is wired in to be ID. There is no real benefit in having it be something else IDREFs are not handled any
+ * differently.
*/
public static final String ID = "id";
/**
- * Constructor for TagAttributeInfo. This class is to be instantiated only
- * from the TagLibrary code under request from some JSP code that is parsing
- * a TLD (Tag Library Descriptor).
+ * Constructor for TagAttributeInfo. This class is to be instantiated only from the TagLibrary code under request
+ * from some JSP code that is parsing a TLD (Tag Library Descriptor).
*
- * @param name
- * The name of the attribute.
- * @param required
- * If this attribute is required in tag instances.
- * @param type
- * The name of the type of the attribute.
- * @param reqTime
- * Whether this attribute holds a request-time Attribute.
+ * @param name The name of the attribute.
+ * @param required If this attribute is required in tag instances.
+ * @param type The name of the type of the attribute.
+ * @param reqTime Whether this attribute holds a request-time Attribute.
*/
- public TagAttributeInfo(String name, boolean required, String type,
- boolean reqTime) {
+ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime) {
this(name, required, type, reqTime, false);
}
/**
- * JSP 2.0 Constructor for TagAttributeInfo. This class is to be
- * instantiated only from the TagLibrary code under request from some JSP
- * code that is parsing a TLD (Tag Library Descriptor).
+ * JSP 2.0 Constructor for TagAttributeInfo. This class is to be instantiated only from the TagLibrary code under
+ * request from some JSP code that is parsing a TLD (Tag Library Descriptor).
*
- * @param name
- * The name of the attribute.
- * @param required
- * If this attribute is required in tag instances.
- * @param type
- * The name of the type of the attribute.
- * @param reqTime
- * Whether this attribute holds a request-time Attribute.
- * @param fragment
- * Whether this attribute is of type JspFragment
+ * @param name The name of the attribute.
+ * @param required If this attribute is required in tag instances.
+ * @param type The name of the type of the attribute.
+ * @param reqTime Whether this attribute holds a request-time Attribute.
+ * @param fragment Whether this attribute is of type JspFragment
*
* @since JSP 2.0
*/
- public TagAttributeInfo(String name, boolean required, String type,
- boolean reqTime, boolean fragment) {
+ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment) {
this(name, required, type, reqTime, fragment, null, false, false, null, null);
}
/**
- * JSP 2.1 Constructor for TagAttributeInfo. This class is to be
- * instantiated only from the TagLibrary code under request from some JSP
- * code that is parsing a TLD (Tag Library Descriptor).
+ * JSP 2.1 Constructor for TagAttributeInfo. This class is to be instantiated only from the TagLibrary code under
+ * request from some JSP code that is parsing a TLD (Tag Library Descriptor).
*
- * @param name
- * The name of the attribute.
- * @param required
- * If this attribute is required in tag instances.
- * @param type
- * The name of the type of the attribute.
- * @param reqTime
- * Whether this attribute holds a request-time Attribute.
- * @param fragment
- * Whether this attribute is of type JspFragment
- * @param description
- * Description of this attribute
- * @param deferredValue
- * Does this attribute accept value expressions (written as
- * Strings) as attribute values the evaluation of which is
- * deferred until calculated by the tag
- * @param deferredMethod
- * Does this attribute accept method expressions (written as
- * Strings) as attribute values the evaluation of which is
- * deferred until calculated by the tag
- * @param expectedTypeName
- * The expected type when the deferred value is evaluated
- * @param methodSignature
- * The expected method signature if a deferred method
+ * @param name The name of the attribute.
+ * @param required If this attribute is required in tag instances.
+ * @param type The name of the type of the attribute.
+ * @param reqTime Whether this attribute holds a request-time Attribute.
+ * @param fragment Whether this attribute is of type JspFragment
+ * @param description Description of this attribute
+ * @param deferredValue Does this attribute accept value expressions (written as Strings) as attribute values the
+ * evaluation of which is deferred until calculated by the tag
+ * @param deferredMethod Does this attribute accept method expressions (written as Strings) as attribute values
+ * the evaluation of which is deferred until calculated by the tag
+ * @param expectedTypeName The expected type when the deferred value is evaluated
+ * @param methodSignature The expected method signature if a deferred method
*
* @since JSP 2.1
*/
- public TagAttributeInfo(String name, boolean required, String type,
- boolean reqTime, boolean fragment, String description,
- boolean deferredValue, boolean deferredMethod,
- String expectedTypeName, String methodSignature) {
+ public TagAttributeInfo(String name, boolean required, String type, boolean reqTime, boolean fragment,
+ String description, boolean deferredValue, boolean deferredMethod, String expectedTypeName,
+ String methodSignature) {
this.name = name;
this.required = required;
this.type = type;
@@ -160,11 +132,10 @@ public class TagAttributeInfo {
}
/**
- * Convenience static method that goes through an array of TagAttributeInfo
- * objects and looks for "id".
+ * Convenience static method that goes through an array of TagAttributeInfo objects and looks for "id".
+ *
+ * @param tagAttributeInfos An array of TagAttributeInfo
*
- * @param tagAttributeInfos
- * An array of TagAttributeInfo
* @return The TagAttributeInfo reference with name "id"
*/
public static TagAttributeInfo getIdAttribute(TagAttributeInfo[] tagAttributeInfos) {
@@ -188,8 +159,7 @@ public class TagAttributeInfo {
}
/**
- * Returns a String representation of this TagAttributeInfo, suitable for
- * debugging purposes.
+ * Returns a String representation of this TagAttributeInfo, suitable for debugging purposes.
*
* @return a String representation of this TagAttributeInfo
*/
@@ -240,8 +210,7 @@ public class TagAttributeInfo {
/**
* Does the attribute expect to be passed a deferred method?
*
- * @return {@code true} if a deferred method expression is expected,
- * otherwise {@code false}
+ * @return {@code true} if a deferred method expression is expected, otherwise {@code false}
*/
public boolean isDeferredMethod() {
return deferredMethod;
@@ -250,8 +219,7 @@ public class TagAttributeInfo {
/**
* Does the attribute expect to be passed a deferred value?
*
- * @return {@code true} if a deferred value expression is expected,
- * otherwise {@code false}
+ * @return {@code true} if a deferred value expression is expected, otherwise {@code false}
*/
public boolean isDeferredValue() {
return deferredValue;
@@ -276,11 +244,9 @@ public class TagAttributeInfo {
}
/**
- * If this is a deferred method attribute, obtain the expected method
- * signature.
+ * If this is a deferred method attribute, obtain the expected method signature.
*
- * @return The expected method signature or {@code null} if this attribute
- * is not a deferred method attribute
+ * @return The expected method signature or {@code null} if this attribute is not a deferred method attribute
*/
public String getMethodSignature() {
return methodSignature;
diff --git a/java/jakarta/servlet/jsp/tagext/TagData.java b/java/jakarta/servlet/jsp/tagext/TagData.java
index dbc6b6ad16..30de13b281 100644
--- a/java/jakarta/servlet/jsp/tagext/TagData.java
+++ b/java/jakarta/servlet/jsp/tagext/TagData.java
@@ -20,19 +20,16 @@ import java.util.Hashtable;
/**
* The (translation-time only) attribute/value information for a tag instance.
- *
* <p>
- * TagData is only used as an argument to the isValid, validate, and
- * getVariableInfo methods of TagExtraInfo, which are invoked at
- * translation time.
+ * TagData is only used as an argument to the isValid, validate, and getVariableInfo methods of TagExtraInfo, which are
+ * invoked at translation time.
*/
public class TagData implements Cloneable {
/**
- * Distinguished value for an attribute to indicate its value
- * is a request-time expression (which is not yet available because
- * TagData instances are used at translation-time).
+ * Distinguished value for an attribute to indicate its value is a request-time expression (which is not yet
+ * available because TagData instances are used at translation-time).
*/
public static final Object REQUEST_TIME_VALUE = new Object();
@@ -40,18 +37,17 @@ public class TagData implements Cloneable {
/**
* Constructor for TagData.
- *
* <p>
* A typical constructor may be
+ *
* <pre>
- * static final Object[][] att = {{"connection", "conn0"}, {"id", "query0"}};
+ * static final Object[][] att = { { "connection", "conn0" }, { "id", "query0" } };
* static final TagData td = new TagData(att);
* </pre>
*
- * All values must be Strings except for those holding the
- * distinguished object REQUEST_TIME_VALUE.
+ * All values must be Strings except for those holding the distinguished object REQUEST_TIME_VALUE.
*
- * @param atts the static attribute and values. May be null.
+ * @param atts the static attribute and values. May be null.
*/
public TagData(Object[] atts[]) {
if (atts == null) {
@@ -68,22 +64,18 @@ public class TagData implements Cloneable {
}
/**
- * Constructor for a TagData.
- *
- * If you already have the attributes in a hashtable, use this
- * constructor.
+ * Constructor for a TagData. If you already have the attributes in a hashtable, use this constructor.
*
* @param attrs A hashtable to get the values from.
*/
- public TagData(Hashtable<String, Object> attrs) {
+ public TagData(Hashtable<String,Object> attrs) {
this.attributes = attrs;
}
/**
* The value of the tag's id attribute.
*
- * @return the value of the tag's id attribute, or null if no such
- * attribute was specified.
+ * @return the value of the tag's id attribute, or null if no such attribute was specified.
*/
public String getId() {
@@ -91,18 +83,15 @@ public class TagData implements Cloneable {
}
/**
- * The value of the attribute.
- * If a static value is specified for an attribute that accepts a
- * request-time attribute expression then that static value is returned,
- * even if the value is provided in the body of a <jsp:attribute>
- * action. The distinguished object REQUEST_TIME_VALUE is only returned if
- * the value is specified as a request-time attribute expression
- * or via the <jsp:attribute> action with a body that contains
- * dynamic content (scriptlets, scripting expressions, EL expressions,
- * standard actions, or custom actions). Returns null if the attribute
- * is not set.
+ * The value of the attribute. If a static value is specified for an attribute that accepts a request-time attribute
+ * expression then that static value is returned, even if the value is provided in the body of a
+ * <jsp:attribute> action. The distinguished object REQUEST_TIME_VALUE is only returned if the value is
+ * specified as a request-time attribute expression or via the <jsp:attribute> action with a body that
+ * contains dynamic content (scriptlets, scripting expressions, EL expressions, standard actions, or custom
+ * actions). Returns null if the attribute is not set.
*
* @param attName the name of the attribute
+ *
* @return the attribute's value
*/
@@ -114,10 +103,9 @@ public class TagData implements Cloneable {
* Set the value of an attribute.
*
* @param attName the name of the attribute
- * @param value the value.
+ * @param value the value.
*/
- public void setAttribute(String attName,
- Object value) {
+ public void setAttribute(String attName, Object value) {
attributes.put(attName, value);
}
@@ -125,7 +113,9 @@ public class TagData implements Cloneable {
* Get the value for a given attribute.
*
* @param attName the name of the attribute
+ *
* @return the attribute value string
+ *
* @throws ClassCastException if attribute value is not a String
*/
@@ -148,5 +138,5 @@ public class TagData implements Cloneable {
// private data
- private final Hashtable<String, Object> attributes; // the tagname/value map
+ private final Hashtable<String,Object> attributes; // the tagname/value map
}
diff --git a/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java b/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
index 28633b4309..7a6b60a893 100644
--- a/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagExtraInfo.java
@@ -17,70 +17,60 @@
package jakarta.servlet.jsp.tagext;
/**
- * Optional class provided by the tag library author to describe additional
- * translation-time information not described in the TLD.
- * The TagExtraInfo class is mentioned in the Tag Library Descriptor file (TLD).
- *
+ * Optional class provided by the tag library author to describe additional translation-time information not described
+ * in the TLD. The TagExtraInfo class is mentioned in the Tag Library Descriptor file (TLD).
* <p>
* This class can be used:
* <ul>
- * <li> to indicate that the tag defines scripting variables
- * <li> to perform translation-time validation of the tag attributes.
+ * <li>to indicate that the tag defines scripting variables
+ * <li>to perform translation-time validation of the tag attributes.
* </ul>
- *
* <p>
- * It is the responsibility of the JSP translator that the initial value
- * to be returned by calls to getTagInfo() corresponds to a TagInfo
- * object for the tag being translated. If an explicit call to
- * setTagInfo() is done, then the object passed will be returned in
- * subsequent calls to getTagInfo().
- *
+ * It is the responsibility of the JSP translator that the initial value to be returned by calls to getTagInfo()
+ * corresponds to a TagInfo object for the tag being translated. If an explicit call to setTagInfo() is done, then the
+ * object passed will be returned in subsequent calls to getTagInfo().
* <p>
- * The only way to affect the value returned by getTagInfo()
- * is through a setTagInfo() call, and thus, TagExtraInfo.setTagInfo() is
- * to be called by the JSP translator, with a TagInfo object that
- * corresponds to the tag being translated. The call should happen before
- * any invocation on validate() and before any invocation on
+ * The only way to affect the value returned by getTagInfo() is through a setTagInfo() call, and thus,
+ * TagExtraInfo.setTagInfo() is to be called by the JSP translator, with a TagInfo object that corresponds to the tag
+ * being translated. The call should happen before any invocation on validate() and before any invocation on
* getVariableInfo().
- *
* <p>
- * <b>NOTE:</b> It is a (translation time) error for a tag definition
- * in a TLD with one or more variable subelements to have an associated
- * TagExtraInfo implementation that returns a VariableInfo array with
- * one or more elements from a call to getVariableInfo().
+ * <b>NOTE:</b> It is a (translation time) error for a tag definition in a TLD with one or more variable subelements to
+ * have an associated TagExtraInfo implementation that returns a VariableInfo array with one or more elements from a
+ * call to getVariableInfo().
*/
public abstract class TagExtraInfo {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public TagExtraInfo() {
// NOOP by default
}
/**
- * information on scripting variables defined by the tag associated with
- * this TagExtraInfo instance.
- * Request-time attributes are indicated as such in the TagData parameter.
+ * information on scripting variables defined by the tag associated with this TagExtraInfo instance. Request-time
+ * attributes are indicated as such in the TagData parameter.
*
* @param data The TagData instance.
- * @return An array of VariableInfo data, or null or a zero length array
- * if no scripting variables are to be defined.
+ *
+ * @return An array of VariableInfo data, or null or a zero length array if no scripting variables are to be
+ * defined.
*/
public VariableInfo[] getVariableInfo(TagData data) {
return ZERO_VARIABLE_INFO;
}
/**
- * Translation-time validation of the attributes.
- * Request-time attributes are indicated as such in the TagData parameter.
- * Note that the preferred way to do validation is with the validate()
- * method, since it can return more detailed information.
+ * Translation-time validation of the attributes. Request-time attributes are indicated as such in the TagData
+ * parameter. Note that the preferred way to do validation is with the validate() method, since it can return more
+ * detailed information.
*
* @param data The TagData instance.
+ *
* @return Whether this tag instance is valid.
+ *
* @see TagExtraInfo#validate
*/
@@ -89,28 +79,26 @@ public abstract class TagExtraInfo {
}
/**
- * Translation-time validation of the attributes.
- * Request-time attributes are indicated as such in the TagData parameter.
- * Because of the higher quality validation messages possible,
- * this is the preferred way to do validation (although isValid()
- * still works).
- *
- * <p>JSP 2.0 and higher containers call validate() instead of isValid().
- * The default implementation of this method is to call isValid(). If
- * isValid() returns false, a generic ValidationMessage[] is returned
- * indicating isValid() returned false.</p>
+ * Translation-time validation of the attributes. Request-time attributes are indicated as such in the TagData
+ * parameter. Because of the higher quality validation messages possible, this is the preferred way to do validation
+ * (although isValid() still works).
+ * <p>
+ * JSP 2.0 and higher containers call validate() instead of isValid(). The default implementation of this method is
+ * to call isValid(). If isValid() returns false, a generic ValidationMessage[] is returned indicating isValid()
+ * returned false.
+ * </p>
*
* @param data The TagData instance.
- * @return A null object, or zero length array if no errors, an
- * array of ValidationMessages otherwise.
+ *
+ * @return A null object, or zero length array if no errors, an array of ValidationMessages otherwise.
+ *
* @since JSP 2.0
*/
- public ValidationMessage[] validate( TagData data ) {
+ public ValidationMessage[] validate(TagData data) {
ValidationMessage[] result = null;
- if( !isValid( data ) ) {
- result = new ValidationMessage[] {
- new ValidationMessage( data.getId(), "isValid() == false" ) };
+ if (!isValid(data)) {
+ result = new ValidationMessage[] { new ValidationMessage(data.getId(), "isValid() == false") };
}
return result;
@@ -135,9 +123,9 @@ public abstract class TagExtraInfo {
}
// private data
- private TagInfo tagInfo;
+ private TagInfo tagInfo;
// zero length VariableInfo array
- private static final VariableInfo[] ZERO_VARIABLE_INFO = { };
+ private static final VariableInfo[] ZERO_VARIABLE_INFO = {};
}
diff --git a/java/jakarta/servlet/jsp/tagext/TagFileInfo.java b/java/jakarta/servlet/jsp/tagext/TagFileInfo.java
index a2646a0aa7..bb08483de7 100644
--- a/java/jakarta/servlet/jsp/tagext/TagFileInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagFileInfo.java
@@ -17,32 +17,24 @@
package jakarta.servlet.jsp.tagext;
/**
- * Tag information for a tag file in a Tag Library;
- * This class is instantiated from the Tag Library Descriptor file (TLD)
- * and is available only at translation time.
+ * Tag information for a tag file in a Tag Library; This class is instantiated from the Tag Library Descriptor file
+ * (TLD) and is available only at translation time.
*
* @since JSP 2.0
*/
public class TagFileInfo {
/**
- * Constructor for TagFileInfo from data in the JSP 2.0 format for TLD.
- * This class is to be instantiated only from the TagLibrary code
- * under request from some JSP code that is parsing a
- * TLD (Tag Library Descriptor).
+ * Constructor for TagFileInfo from data in the JSP 2.0 format for TLD. This class is to be instantiated only from
+ * the TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that,
+ * since TagLibraryInfo reflects both TLD information and taglib directive information, a TagFileInfo instance is
+ * dependent on a taglib directive. This is probably a design error, which may be fixed in the future.
*
- * Note that, since TagLibraryInfo reflects both TLD information
- * and taglib directive information, a TagFileInfo instance is
- * dependent on a taglib directive. This is probably a
- * design error, which may be fixed in the future.
- *
- * @param name The unique action name of this tag
- * @param path Where to find the .tag file implementing this
- * action, relative to the location of the TLD file.
- * @param tagInfo The detailed information about this tag, as parsed
- * from the directives in the tag file.
+ * @param name The unique action name of this tag
+ * @param path Where to find the .tag file implementing this action, relative to the location of the TLD file.
+ * @param tagInfo The detailed information about this tag, as parsed from the directives in the tag file.
*/
- public TagFileInfo( String name, String path, TagInfo tagInfo ) {
+ public TagFileInfo(String name, String path, TagInfo tagInfo) {
this.name = name;
this.path = path;
this.tagInfo = tagInfo;
@@ -60,16 +52,15 @@ public class TagFileInfo {
/**
* Where to find the .tag file implementing this action.
*
- * @return The path of the tag file, relative to the TLD, or "." if
- * the tag file was defined in an implicit tag file.
+ * @return The path of the tag file, relative to the TLD, or "." if the tag file was defined in an implicit tag
+ * file.
*/
public String getPath() {
return path;
}
/**
- * Returns information about this tag, parsed from the directives
- * in the tag file.
+ * Returns information about this tag, parsed from the directives in the tag file.
*
* @return a TagInfo object containing information about this tag
*/
diff --git a/java/jakarta/servlet/jsp/tagext/TagInfo.java b/java/jakarta/servlet/jsp/tagext/TagInfo.java
index ec61dbb1ab..40e978d58a 100644
--- a/java/jakarta/servlet/jsp/tagext/TagInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagInfo.java
@@ -17,9 +17,8 @@
package jakarta.servlet.jsp.tagext;
/**
- * Tag information for a tag in a Tag Library;
- * This class is instantiated from the Tag Library Descriptor file (TLD)
- * and is available only at translation time.
+ * Tag information for a tag in a Tag Library; This class is instantiated from the Tag Library Descriptor file (TLD) and
+ * is available only at translation time.
*/
public class TagInfo {
@@ -48,39 +47,27 @@ public class TagInfo {
public static final String BODY_CONTENT_SCRIPTLESS = "scriptless";
/**
- * Constructor for TagInfo from data in the JSP 1.1 format for TLD.
- * This class is to be instantiated only from the TagLibrary code
- * under request from some JSP code that is parsing a
- * TLD (Tag Library Descriptor).
- *
- * Note that, since TagLibraryInfo reflects both TLD information
- * and taglib directive information, a TagInfo instance is
- * dependent on a taglib directive. This is probably a
- * design error, which may be fixed in the future.
- *
- * @param tagName The name of this tag
- * @param tagClassName The name of the tag handler class
- * @param bodycontent Information on the body content of these tags
- * @param infoString The (optional) string information for this tag
- * @param taglib The instance of the tag library that contains us.
- * @param tagExtraInfo The instance providing extra Tag info. May be null
- * @param attributeInfo An array of AttributeInfo data from descriptor.
- * May be null;
+ * Constructor for TagInfo from data in the JSP 1.1 format for TLD. This class is to be instantiated only from the
+ * TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since
+ * TagLibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on
+ * a taglib directive. This is probably a design error, which may be fixed in the future.
*
+ * @param tagName The name of this tag
+ * @param tagClassName The name of the tag handler class
+ * @param bodycontent Information on the body content of these tags
+ * @param infoString The (optional) string information for this tag
+ * @param taglib The instance of the tag library that contains us.
+ * @param tagExtraInfo The instance providing extra Tag info. May be null
+ * @param attributeInfo An array of AttributeInfo data from descriptor. May be null;
*/
- public TagInfo(String tagName,
- String tagClassName,
- String bodycontent,
- String infoString,
- TagLibraryInfo taglib,
- TagExtraInfo tagExtraInfo,
- TagAttributeInfo[] attributeInfo) {
- this.tagName = tagName;
- this.tagClassName = tagClassName;
- this.bodyContent = bodycontent;
- this.infoString = infoString;
- this.tagLibrary = taglib;
- this.tagExtraInfo = tagExtraInfo;
+ public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib,
+ TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo) {
+ this.tagName = tagName;
+ this.tagClassName = tagClassName;
+ this.bodyContent = bodycontent;
+ this.infoString = infoString;
+ this.tagLibrary = taglib;
+ this.tagExtraInfo = tagExtraInfo;
this.attributeInfo = attributeInfo;
// Use defaults for unspecified values
@@ -96,46 +83,32 @@ public class TagInfo {
}
/**
- * Constructor for TagInfo from data in the JSP 1.2 format for TLD.
- * This class is to be instantiated only from the TagLibrary code
- * under request from some JSP code that is parsing a
- * TLD (Tag Library Descriptor).
- *
- * Note that, since TagLibraryInfo reflects both TLD information
- * and taglib directive information, a TagInfo instance is
- * dependent on a taglib directive. This is probably a
- * design error, which may be fixed in the future.
+ * Constructor for TagInfo from data in the JSP 1.2 format for TLD. This class is to be instantiated only from the
+ * TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since
+ * TagLibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on
+ * a taglib directive. This is probably a design error, which may be fixed in the future.
*
- * @param tagName The name of this tag
- * @param tagClassName The name of the tag handler class
- * @param bodycontent Information on the body content of these tags
- * @param infoString The (optional) string information for this tag
- * @param taglib The instance of the tag library that contains us.
- * @param tagExtraInfo The instance providing extra Tag info. May be null
- * @param attributeInfo An array of AttributeInfo data from descriptor.
- * May be null;
- * @param displayName A short name to be displayed by tools
- * @param smallIcon Path to a small icon to be displayed by tools
- * @param largeIcon Path to a large icon to be displayed by tools
- * @param tvi An array of a TagVariableInfo (or null)
+ * @param tagName The name of this tag
+ * @param tagClassName The name of the tag handler class
+ * @param bodycontent Information on the body content of these tags
+ * @param infoString The (optional) string information for this tag
+ * @param taglib The instance of the tag library that contains us.
+ * @param tagExtraInfo The instance providing extra Tag info. May be null
+ * @param attributeInfo An array of AttributeInfo data from descriptor. May be null;
+ * @param displayName A short name to be displayed by tools
+ * @param smallIcon Path to a small icon to be displayed by tools
+ * @param largeIcon Path to a large icon to be displayed by tools
+ * @param tvi An array of a TagVariableInfo (or null)
*/
- public TagInfo(String tagName,
- String tagClassName,
- String bodycontent,
- String infoString,
- TagLibraryInfo taglib,
- TagExtraInfo tagExtraInfo,
- TagAttributeInfo[] attributeInfo,
- String displayName,
- String smallIcon,
- String largeIcon,
- TagVariableInfo[] tvi) {
- this.tagName = tagName;
- this.tagClassName = tagClassName;
- this.bodyContent = bodycontent;
- this.infoString = infoString;
- this.tagLibrary = taglib;
- this.tagExtraInfo = tagExtraInfo;
+ public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib,
+ TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo, String displayName, String smallIcon,
+ String largeIcon, TagVariableInfo[] tvi) {
+ this.tagName = tagName;
+ this.tagClassName = tagClassName;
+ this.bodyContent = bodycontent;
+ this.infoString = infoString;
+ this.tagLibrary = taglib;
+ this.tagExtraInfo = tagExtraInfo;
this.attributeInfo = attributeInfo;
this.displayName = displayName;
this.smallIcon = smallIcon;
@@ -151,50 +124,35 @@ public class TagInfo {
}
/**
- * Constructor for TagInfo from data in the JSP 2.0 format for TLD.
- * This class is to be instantiated only from the TagLibrary code
- * under request from some JSP code that is parsing a
- * TLD (Tag Library Descriptor).
+ * Constructor for TagInfo from data in the JSP 2.0 format for TLD. This class is to be instantiated only from the
+ * TagLibrary code under request from some JSP code that is parsing a TLD (Tag Library Descriptor). Note that, since
+ * TagLibraryInfo reflects both TLD information and taglib directive information, a TagInfo instance is dependent on
+ * a taglib directive. This is probably a design error, which may be fixed in the future.
*
- * Note that, since TagLibraryInfo reflects both TLD information
- * and taglib directive information, a TagInfo instance is
- * dependent on a taglib directive. This is probably a
- * design error, which may be fixed in the future.
- *
- * @param tagName The name of this tag
- * @param tagClassName The name of the tag handler class
- * @param bodycontent Information on the body content of these tags
- * @param infoString The (optional) string information for this tag
- * @param taglib The instance of the tag library that contains us.
- * @param tagExtraInfo The instance providing extra Tag info. May be null
- * @param attributeInfo An array of AttributeInfo data from descriptor.
- * May be null;
- * @param displayName A short name to be displayed by tools
- * @param smallIcon Path to a small icon to be displayed by tools
- * @param largeIcon Path to a large icon to be displayed by tools
- * @param tvi An array of a TagVariableInfo (or null)
+ * @param tagName The name of this tag
+ * @param tagClassName The name of the tag handler class
+ * @param bodycontent Information on the body content of these tags
+ * @param infoString The (optional) string information for this tag
+ * @param taglib The instance of the tag library that contains us.
+ * @param tagExtraInfo The instance providing extra Tag info. May be null
+ * @param attributeInfo An array of AttributeInfo data from descriptor. May be null;
+ * @param displayName A short name to be displayed by tools
+ * @param smallIcon Path to a small icon to be displayed by tools
+ * @param largeIcon Path to a large icon to be displayed by tools
+ * @param tvi An array of a TagVariableInfo (or null)
* @param dynamicAttributes True if supports dynamic attributes
*
* @since JSP 2.0
*/
- public TagInfo(String tagName,
- String tagClassName,
- String bodycontent,
- String infoString,
- TagLibraryInfo taglib,
- TagExtraInfo tagExtraInfo,
- TagAttributeInfo[] attributeInfo,
- String displayName,
- String smallIcon,
- String largeIcon,
- TagVariableInfo[] tvi,
- boolean dynamicAttributes) {
- this.tagName = tagName;
- this.tagClassName = tagClassName;
- this.bodyContent = bodycontent;
- this.infoString = infoString;
- this.tagLibrary = taglib;
- this.tagExtraInfo = tagExtraInfo;
+ public TagInfo(String tagName, String tagClassName, String bodycontent, String infoString, TagLibraryInfo taglib,
+ TagExtraInfo tagExtraInfo, TagAttributeInfo[] attributeInfo, String displayName, String smallIcon,
+ String largeIcon, TagVariableInfo[] tvi, boolean dynamicAttributes) {
+ this.tagName = tagName;
+ this.tagClassName = tagClassName;
+ this.bodyContent = bodycontent;
+ this.infoString = infoString;
+ this.tagLibrary = taglib;
+ this.tagExtraInfo = tagExtraInfo;
this.attributeInfo = attributeInfo;
this.displayName = displayName;
this.smallIcon = smallIcon;
@@ -217,40 +175,38 @@ public class TagInfo {
}
/**
- * Attribute information (in the TLD) on this tag.
- * The return is an array describing the attributes of this tag, as
+ * Attribute information (in the TLD) on this tag. The return is an array describing the attributes of this tag, as
* indicated in the TLD.
*
- * @return The array of TagAttributeInfo for this tag, or a
- * zero-length array if the tag has no attributes.
+ * @return The array of TagAttributeInfo for this tag, or a zero-length array if the tag has no attributes.
*/
public TagAttributeInfo[] getAttributes() {
return attributeInfo;
}
/**
- * Information on the scripting objects created by this tag at runtime.
- * This is a convenience method on the associated TagExtraInfo class.
+ * Information on the scripting objects created by this tag at runtime. This is a convenience method on the
+ * associated TagExtraInfo class.
*
* @param data TagData describing this action.
- * @return if a TagExtraInfo object is associated with this TagInfo, the
- * result of getTagExtraInfo().getVariableInfo( data ), otherwise
- * null.
+ *
+ * @return if a TagExtraInfo object is associated with this TagInfo, the result of
+ * getTagExtraInfo().getVariableInfo( data ), otherwise null.
*/
public VariableInfo[] getVariableInfo(TagData data) {
VariableInfo[] result = null;
TagExtraInfo tei = getTagExtraInfo();
if (tei != null) {
- result = tei.getVariableInfo( data );
+ result = tei.getVariableInfo(data);
}
return result;
}
/**
- * Translation-time validation of the attributes.
- * This is a convenience method on the associated TagExtraInfo class.
+ * Translation-time validation of the attributes. This is a convenience method on the associated TagExtraInfo class.
*
* @param data The translation-time TagData instance.
+ *
* @return Whether the data is valid.
*/
public boolean isValid(TagData data) {
@@ -262,20 +218,20 @@ public class TagInfo {
}
/**
- * Translation-time validation of the attributes.
- * This is a convenience method on the associated TagExtraInfo class.
+ * Translation-time validation of the attributes. This is a convenience method on the associated TagExtraInfo class.
*
* @param data The translation-time TagData instance.
- * @return A null object, or zero length array if no errors, an
- * array of ValidationMessages otherwise.
+ *
+ * @return A null object, or zero length array if no errors, an array of ValidationMessages otherwise.
+ *
* @since JSP 2.0
*/
- public ValidationMessage[] validate( TagData data ) {
+ public ValidationMessage[] validate(TagData data) {
TagExtraInfo tei = getTagExtraInfo();
- if( tei == null ) {
+ if (tei == null) {
return null;
}
- return tei.validate( data );
+ return tei.validate(data);
}
/**
@@ -310,9 +266,8 @@ public class TagInfo {
/**
- * The bodycontent information for this tag.
- * If the bodycontent is not defined for this
- * tag, the default of JSP will be returned.
+ * The bodycontent information for this tag. If the bodycontent is not defined for this tag, the default of JSP will
+ * be returned.
*
* @return the body content string.
*/
@@ -325,8 +280,7 @@ public class TagInfo {
/**
* The information string for the tag.
*
- * @return the info string, or null if
- * not defined
+ * @return the info string, or null if not defined
*/
public String getInfoString() {
@@ -335,16 +289,10 @@ public class TagInfo {
/**
- * Set the TagLibraryInfo property.
- *
- * Note that a TagLibraryInfo element is dependent
- * not just on the TLD information but also on the
- * specific taglib instance used. This means that
- * a fair amount of work needs to be done to construct
- * and initialize TagLib objects.
- *
- * If used carefully, this setter can be used to avoid having to
- * create new TagInfo elements for each taglib directive.
+ * Set the TagLibraryInfo property. Note that a TagLibraryInfo element is dependent not just on the TLD information
+ * but also on the specific taglib instance used. This means that a fair amount of work needs to be done to
+ * construct and initialize TagLib objects. If used carefully, this setter can be used to avoid having to create new
+ * TagInfo elements for each taglib directive.
*
* @param tl the TagLibraryInfo to assign
*/
@@ -370,8 +318,7 @@ public class TagInfo {
/**
* Get the displayName.
*
- * @return A short name to be displayed by tools,
- * or null if not defined
+ * @return A short name to be displayed by tools, or null if not defined
*/
public String getDisplayName() {
@@ -381,8 +328,7 @@ public class TagInfo {
/**
* Get the path to the small icon.
*
- * @return Path to a small icon to be displayed by tools,
- * or null if not defined
+ * @return Path to a small icon to be displayed by tools, or null if not defined
*/
public String getSmallIcon() {
@@ -392,8 +338,7 @@ public class TagInfo {
/**
* Get the path to the large icon.
*
- * @return Path to a large icon to be displayed by tools,
- * or null if not defined
+ * @return Path to a large icon to be displayed by tools, or null if not defined
*/
public String getLargeIcon() {
@@ -403,9 +348,8 @@ public class TagInfo {
/**
* Get TagVariableInfo objects associated with this TagInfo.
*
- * @return Array of TagVariableInfo objects corresponding to
- * variables declared by this tag, or a zero length
- * array if no variables have been declared
+ * @return Array of TagVariableInfo objects corresponding to variables declared by this tag, or a zero length array
+ * if no variables have been declared
*/
public TagVariableInfo[] getTagVariableInfos() {
@@ -419,6 +363,7 @@ public class TagInfo {
* Get dynamicAttributes associated with this TagInfo.
*
* @return True if tag handler supports dynamic attributes
+ *
* @since JSP 2.0
*/
public boolean hasDynamicAttributes() {
@@ -428,21 +373,21 @@ public class TagInfo {
/*
* private fields for 1.1 info
*/
- private final String tagName; // the name of the tag
- private final String tagClassName;
- private final String bodyContent;
- private final String infoString;
- private TagLibraryInfo tagLibrary;
- private TagExtraInfo tagExtraInfo; // instance of TagExtraInfo
+ private final String tagName; // the name of the tag
+ private final String tagClassName;
+ private final String bodyContent;
+ private final String infoString;
+ private TagLibraryInfo tagLibrary;
+ private TagExtraInfo tagExtraInfo; // instance of TagExtraInfo
private final TagAttributeInfo[] attributeInfo;
/*
* private fields for 1.2 info
*/
- private final String displayName;
- private final String smallIcon;
- private final String largeIcon;
- private final TagVariableInfo[] tagVariableInfo;
+ private final String displayName;
+ private final String smallIcon;
+ private final String largeIcon;
+ private final TagVariableInfo[] tagVariableInfo;
/*
* Additional private fields for 2.0 info
diff --git a/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java b/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
index a52760edfa..354ce8fe2e 100644
--- a/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagLibraryInfo.java
@@ -18,20 +18,16 @@ package jakarta.servlet.jsp.tagext;
/**
- * Translation-time information associated with a taglib directive, and its
- * underlying TLD file. Most of the information is directly from the TLD, except
- * for the prefix and the uri values used in the taglib directive
+ * Translation-time information associated with a taglib directive, and its underlying TLD file. Most of the information
+ * is directly from the TLD, except for the prefix and the uri values used in the taglib directive
*/
public abstract class TagLibraryInfo {
/**
- * Constructor. This will invoke the constructors for TagInfo, and
- * TagAttributeInfo after parsing the TLD file.
+ * Constructor. This will invoke the constructors for TagInfo, and TagAttributeInfo after parsing the TLD file.
*
- * @param prefix
- * the prefix actually used by the taglib directive
- * @param uri
- * the URI actually used by the taglib directive
+ * @param prefix the prefix actually used by the taglib directive
+ * @param uri the URI actually used by the taglib directive
*/
protected TagLibraryInfo(String prefix, String uri) {
this.prefix = prefix;
@@ -41,8 +37,7 @@ public abstract class TagLibraryInfo {
// ==== methods accessing taglib information =======
/**
- * The value of the uri attribute from the taglib directive for this
- * library.
+ * The value of the uri attribute from the taglib directive for this library.
*
* @return the value of the uri attribute
*/
@@ -62,9 +57,8 @@ public abstract class TagLibraryInfo {
// ==== methods using the TLD data =======
/**
- * The preferred short name (prefix) as indicated in the TLD. This may be
- * used by authoring tools as the preferred prefix to use when creating an
- * taglib directive for this library.
+ * The preferred short name (prefix) as indicated in the TLD. This may be used by authoring tools as the preferred
+ * prefix to use when creating an taglib directive for this library.
*
* @return the preferred short name for the library
*/
@@ -73,9 +67,8 @@ public abstract class TagLibraryInfo {
}
/**
- * The "reliable" URN indicated in the TLD (the uri element). This may be
- * used by authoring tools as a global identifier to use when creating a
- * taglib directive for this library.
+ * The "reliable" URN indicated in the TLD (the uri element). This may be used by authoring tools as a global
+ * identifier to use when creating a taglib directive for this library.
*
* @return a reliable URN to a TLD like this
*/
@@ -96,6 +89,7 @@ public abstract class TagLibraryInfo {
* A string describing the required version of the JSP container.
*
* @return the (minimal) required version of the JSP container.
+ *
* @see jakarta.servlet.jsp.JspEngineInfo
*/
public String getRequiredVersion() {
@@ -105,9 +99,8 @@ public abstract class TagLibraryInfo {
/**
* An array describing the tags that are defined in this tag library.
*
- * @return the TagInfo objects corresponding to the tags defined by this tag
- * library, or a zero length array if this tag library defines no
- * tags
+ * @return the TagInfo objects corresponding to the tags defined by this tag library, or a zero length array if this
+ * tag library defines no tags
*/
public TagInfo[] getTags() {
return tags;
@@ -116,9 +109,9 @@ public abstract class TagLibraryInfo {
/**
* An array describing the tag files that are defined in this tag library.
*
- * @return the TagFileInfo objects corresponding to the tag files defined by
- * this tag library, or a zero length array if this tag library
- * defines no tags files
+ * @return the TagFileInfo objects corresponding to the tag files defined by this tag library, or a zero length
+ * array if this tag library defines no tags files
+ *
* @since JSP 2.0
*/
public TagFileInfo[] getTagFiles() {
@@ -126,13 +119,11 @@ public abstract class TagLibraryInfo {
}
/**
- * Get the TagInfo for a given tag name, looking through all the tags in
- * this tag library.
+ * Get the TagInfo for a given tag name, looking through all the tags in this tag library.
+ *
+ * @param shortname The short name (no prefix) of the tag
*
- * @param shortname
- * The short name (no prefix) of the tag
- * @return the TagInfo for the tag with the specified short name, or null if
- * no such tag is found
+ * @return the TagInfo for the tag with the specified short name, or null if no such tag is found
*/
public TagInfo getTag(String shortname) {
TagInfo tags[] = getTags();
@@ -150,13 +141,12 @@ public abstract class TagLibraryInfo {
}
/**
- * Get the TagFileInfo for a given tag name, looking through all the tag
- * files in this tag library.
+ * Get the TagFileInfo for a given tag name, looking through all the tag files in this tag library.
+ *
+ * @param shortname The short name (no prefix) of the tag
+ *
+ * @return the TagFileInfo for the specified Tag file, or null if no Tag file is found
*
- * @param shortname
- * The short name (no prefix) of the tag
- * @return the TagFileInfo for the specified Tag file, or null if no Tag
- * file is found
* @since JSP 2.0
*/
public TagFileInfo getTagFile(String shortname) {
@@ -177,8 +167,9 @@ public abstract class TagLibraryInfo {
/**
* An array describing the functions that are defined in this tag library.
*
- * @return the functions defined in this tag library, or a zero length array
- * if the tag library defines no functions.
+ * @return the functions defined in this tag library, or a zero length array if the tag library defines no
+ * functions.
+ *
* @since JSP 2.0
*/
public FunctionInfo[] getFunctions() {
@@ -186,13 +177,12 @@ public abstract class TagLibraryInfo {
}
/**
- * Get the FunctionInfo for a given function name, looking through all the
- * functions in this tag library.
+ * Get the FunctionInfo for a given function name, looking through all the functions in this tag library.
+ *
+ * @param name The name (no prefix) of the function
+ *
+ * @return the FunctionInfo for the function with the given name, or null if no such function exists
*
- * @param name
- * The name (no prefix) of the function
- * @return the FunctionInfo for the function with the given name, or null if
- * no such function exists
* @since JSP 2.0
*/
public FunctionInfo getFunction(String name) {
@@ -210,17 +200,15 @@ public abstract class TagLibraryInfo {
}
/**
- * Returns an array of TagLibraryInfo objects representing the entire set of
- * tag libraries (including this TagLibraryInfo) imported by taglib
- * directives in the translation unit that references this TagLibraryInfo.
- * If a tag library is imported more than once and bound to different
- * prefixes, only the TagLibraryInfo bound to the first prefix must be
- * included in the returned array.
+ * Returns an array of TagLibraryInfo objects representing the entire set of tag libraries (including this
+ * TagLibraryInfo) imported by taglib directives in the translation unit that references this TagLibraryInfo. If a
+ * tag library is imported more than once and bound to different prefixes, only the TagLibraryInfo bound to the
+ * first prefix must be included in the returned array.
+ *
+ * @return Array of TagLibraryInfo objects representing the entire set of tag libraries (including this
+ * TagLibraryInfo) imported by taglib directives in the translation unit that references this
+ * TagLibraryInfo.
*
- * @return Array of TagLibraryInfo objects representing the entire set of
- * tag libraries (including this TagLibraryInfo) imported by taglib
- * directives in the translation unit that references this
- * TagLibraryInfo.
* @since JSP 2.1
*/
public abstract jakarta.servlet.jsp.tagext.TagLibraryInfo[] getTagLibraryInfos();
@@ -233,8 +221,7 @@ public abstract class TagLibraryInfo {
protected String prefix;
/**
- * The value of the uri attribute from the taglib directive for this
- * library.
+ * The value of the uri attribute from the taglib directive for this library.
*/
protected String uri;
diff --git a/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java b/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
index 64ba3fabb8..478d9ee558 100644
--- a/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
+++ b/java/jakarta/servlet/jsp/tagext/TagLibraryValidator.java
@@ -21,111 +21,79 @@ import java.util.HashMap;
import java.util.Map;
/**
- * Translation-time validator class for a JSP page.
- * A validator operates on the XML view associated with the JSP page.
- *
+ * Translation-time validator class for a JSP page. A validator operates on the XML view associated with the JSP page.
* <p>
- * The TLD file associates a TagLibraryValidator class and some init
- * arguments with a tag library.
- *
+ * The TLD file associates a TagLibraryValidator class and some init arguments with a tag library.
* <p>
- * The JSP container is responsible for locating an appropriate
- * instance of the appropriate subclass by
- *
+ * The JSP container is responsible for locating an appropriate instance of the appropriate subclass by
* <ul>
- * <li> new a fresh instance, or reuse an available one
- * <li> invoke the setInitParams(Map) method on the instance
+ * <li>new a fresh instance, or reuse an available one
+ * <li>invoke the setInitParams(Map) method on the instance
* </ul>
- *
- * once initialized, the validate(String, String, PageData) method will
- * be invoked, where the first two arguments are the prefix
- * and uri for this tag library in the XML View. The prefix is intended
- * to make it easier to produce an error message. However, it is not
- * always accurate. In the case where a single URI is mapped to more
- * than one prefix in the XML view, the prefix of the first URI is provided.
- * Therefore, to provide high quality error messages in cases where the
- * tag elements themselves are checked, the prefix parameter should be
- * ignored and the actual prefix of the element should be used instead.
- * TagLibraryValidators should always use the uri to identify elements
- * as belonging to the tag library, not the prefix.
- *
+ * once initialized, the validate(String, String, PageData) method will be invoked, where the first two arguments are
+ * the prefix and uri for this tag library in the XML View. The prefix is intended to make it easier to produce an error
+ * message. However, it is not always accurate. In the case where a single URI is mapped to more than one prefix in the
+ * XML view, the prefix of the first URI is provided. Therefore, to provide high quality error messages in cases where
+ * the tag elements themselves are checked, the prefix parameter should be ignored and the actual prefix of the element
+ * should be used instead. TagLibraryValidators should always use the uri to identify elements as belonging to the tag
+ * library, not the prefix.
* <p>
- * A TagLibraryValidator instance
- * may create auxiliary objects internally to perform
- * the validation (e.g. an XSchema validator) and may reuse it for all
- * the pages in a given translation run.
- *
+ * A TagLibraryValidator instance may create auxiliary objects internally to perform the validation (e.g. an XSchema
+ * validator) and may reuse it for all the pages in a given translation run.
* <p>
- * The JSP container is not guaranteed to serialize invocations of
- * validate() method, and TagLibraryValidators should perform any
- * synchronization they may require.
- *
+ * The JSP container is not guaranteed to serialize invocations of validate() method, and TagLibraryValidators should
+ * perform any synchronization they may require.
* <p>
- * As of JSP 2.0, a JSP container must provide a jsp:id attribute to
- * provide higher quality validation errors.
- * The container will track the JSP pages
- * as passed to the container, and will assign to each element
- * a unique "id", which is passed as the value of the jsp:id
- * attribute. Each XML element in the XML view available will
- * be extended with this attribute. The TagLibraryValidator
- * can then use the attribute in one or more ValidationMessage
- * objects. The container then, in turn, can use these
- * values to provide more precise information on the location
- * of an error.
- *
+ * As of JSP 2.0, a JSP container must provide a jsp:id attribute to provide higher quality validation errors. The
+ * container will track the JSP pages as passed to the container, and will assign to each element a unique "id", which
+ * is passed as the value of the jsp:id attribute. Each XML element in the XML view available will be extended with this
+ * attribute. The TagLibraryValidator can then use the attribute in one or more ValidationMessage objects. The container
+ * then, in turn, can use these values to provide more precise information on the location of an error.
* <p>
- * The actual prefix of the <code>id</code> attribute may or may not be
- * <code>jsp</code> but it will always map to the namespace
- * <code>http://java.sun.com/JSP/Page</code>. A TagLibraryValidator
- * implementation must rely on the uri, not the prefix, of the <code>id</code>
- * attribute.
+ * The actual prefix of the <code>id</code> attribute may or may not be <code>jsp</code> but it will always map to the
+ * namespace <code>http://java.sun.com/JSP/Page</code>. A TagLibraryValidator implementation must rely on the uri, not
+ * the prefix, of the <code>id</code> attribute.
*/
public abstract class TagLibraryValidator {
/**
- * Sole constructor. (For invocation by subclass constructors,
- * typically implicit.)
+ * Sole constructor. (For invocation by subclass constructors, typically implicit.)
*/
public TagLibraryValidator() {
// NOOP by default
}
/**
- * Set the init data in the TLD for this validator.
- * Parameter names are keys, and parameter values are the values.
+ * Set the init data in the TLD for this validator. Parameter names are keys, and parameter values are the values.
*
* @param map A Map describing the init parameters
*/
- public void setInitParameters(Map<String, Object> map) {
+ public void setInitParameters(Map<String,Object> map) {
initParameters = Collections.unmodifiableMap(new HashMap<>(map));
}
/**
- * Get the init parameters data as an immutable Map.
- * Parameter names are keys, and parameter values are the values.
+ * Get the init parameters data as an immutable Map. Parameter names are keys, and parameter values are the values.
*
* @return The init parameters as an immutable map.
*/
- public Map<String, Object> getInitParameters() {
+ public Map<String,Object> getInitParameters() {
return initParameters;
}
/**
- * Validate a JSP page.
- * This will get invoked once per unique tag library URI in the
- * XML view. This method will return null if the page is valid; otherwise
- * the method should return an array of ValidationMessage objects.
- * An array of length zero is also interpreted as no errors.
+ * Validate a JSP page. This will get invoked once per unique tag library URI in the XML view. This method will
+ * return null if the page is valid; otherwise the method should return an array of ValidationMessage objects. An
+ * array of length zero is also interpreted as no errors.
+ *
+ * @param prefix the first prefix with which the tag library is associated, in the XML view. Note that some tags may
+ * use a different prefix if the namespace is redefined.
+ * @param uri the tag library's unique identifier
+ * @param page the JspData page object
*
- * @param prefix the first prefix with which the tag library is
- * associated, in the XML view. Note that some tags may use
- * a different prefix if the namespace is redefined.
- * @param uri the tag library's unique identifier
- * @param page the JspData page object
- * @return A null object, or zero length array if no errors, an array
- * of ValidationMessages otherwise.
+ * @return A null object, or zero length array if no errors, an array of ValidationMessages otherwise.
*/
public ValidationMessage[] validate(String prefix, String uri, PageData page) {
return null;
@@ -139,6 +107,6 @@ public abstract class TagLibraryValidator {
}
// Private data
- private Map<String, Object> initParameters;
+ private Map<String,Object> initParameters;
}
diff --git a/java/jakarta/servlet/jsp/tagext/TagSupport.java b/java/jakarta/servlet/jsp/tagext/TagSupport.java
index 13fa5ded3e..7fda1d03d2 100644
--- a/java/jakarta/servlet/jsp/tagext/TagSupport.java
+++ b/java/jakarta/servlet/jsp/tagext/TagSupport.java
@@ -27,53 +27,37 @@ import jakarta.servlet.jsp.PageContext;
/**
* A base class for defining new tag handlers implementing Tag.
- *
- * <p> The TagSupport class is a utility class intended to be used as
- * the base class for new tag handlers. The TagSupport class
- * implements the Tag and IterationTag interfaces and adds additional
- * convenience methods including getter methods for the properties in
- * Tag. TagSupport has one static method that is included to
- * facilitate coordination among cooperating tags.
- *
- * <p> Many tag handlers will extend TagSupport and only redefine a
- * few methods.
+ * <p>
+ * The TagSupport class is a utility class intended to be used as the base class for new tag handlers. The TagSupport
+ * class implements the Tag and IterationTag interfaces and adds additional convenience methods including getter methods
+ * for the properties in Tag. TagSupport has one static method that is included to facilitate coordination among
+ * cooperating tags.
+ * <p>
+ * Many tag handlers will extend TagSupport and only redefine a few methods.
*/
public class TagSupport implements IterationTag, Serializable {
private static final long serialVersionUID = 1L;
/**
- * Find the instance of a given class type that is closest to a given
- * instance.
- * This method uses the getParent method from the Tag
- * interface.
- * This method is used for coordination among cooperating tags.
- *
+ * Find the instance of a given class type that is closest to a given instance. This method uses the getParent
+ * method from the Tag interface. This method is used for coordination among cooperating tags.
* <p>
- * The current version of the specification only provides one formal
- * way of indicating the observable type of a tag handler: its
- * tag handler implementation class, described in the tag-class
- * subelement of the tag element. This is extended in an
- * informal manner by allowing the tag library author to
- * indicate in the description subelement an observable type.
- * The type should be a subtype of the tag handler implementation
- * class or void.
- * This additional constraint can be exploited by a
- * specialized container that knows about that specific tag library,
- * as in the case of the JSP standard tag library.
- *
+ * The current version of the specification only provides one formal way of indicating the observable type of a tag
+ * handler: its tag handler implementation class, described in the tag-class subelement of the tag element. This is
+ * extended in an informal manner by allowing the tag library author to indicate in the description subelement an
+ * observable type. The type should be a subtype of the tag handler implementation class or void. This additional
+ * constraint can be exploited by a specialized container that knows about that specific tag library, as in the case
+ * of the JSP standard tag library.
* <p>
- * When a tag library author provides information on the
- * observable type of a tag handler, client programmatic code
- * should adhere to that constraint. Specifically, the Class
- * passed to findAncestorWithClass should be a subtype of the
- * observable type.
+ * When a tag library author provides information on the observable type of a tag handler, client programmatic code
+ * should adhere to that constraint. Specifically, the Class passed to findAncestorWithClass should be a subtype of
+ * the observable type.
*
- *
- * @param from The instance from where to start looking.
+ * @param from The instance from where to start looking.
* @param klass The subclass of Tag or interface to be matched
- * @return the nearest ancestor that implements the interface
- * or is an instance of the class specified
+ *
+ * @return the nearest ancestor that implements the interface or is an instance of the class specified
*/
public static final Tag findAncestorWithClass(Tag from, Class<?> klass) {
boolean isInterface = false;
@@ -90,8 +74,7 @@ public class TagSupport implements IterationTag, Serializable {
return null;
}
- if ((isInterface && klass.isInstance(tag)) ||
- ((Class<?>)klass).isAssignableFrom(tag.getClass())) {
+ if ((isInterface && klass.isInstance(tag)) || ((Class<?>) klass).isAssignableFrom(tag.getClass())) {
return tag;
}
from = tag;
@@ -99,12 +82,8 @@ public class TagSupport implements IterationTag, Serializable {
}
/**
- * Default constructor, all subclasses are required to define only
- * a public constructor with the same signature, and to call the
- * superclass constructor.
- *
- * This constructor is called by the code generated by the JSP
- * translator.
+ * Default constructor, all subclasses are required to define only a public constructor with the same signature, and
+ * to call the superclass constructor. This constructor is called by the code generated by the JSP translator.
*/
public TagSupport() {
// NOOP by default
@@ -114,6 +93,7 @@ public class TagSupport implements IterationTag, Serializable {
* Default processing of the start tag, returning SKIP_BODY.
*
* @return SKIP_BODY
+ *
* @throws JspException if an error occurs while processing this tag
*
* @see Tag#doStartTag()
@@ -127,6 +107,7 @@ public class TagSupport implements IterationTag, Serializable {
* Default processing of the end tag returning EVAL_PAGE.
*
* @return EVAL_PAGE
+ *
* @throws JspException if an error occurs while processing this tag
*
* @see Tag#doEndTag()
@@ -141,6 +122,7 @@ public class TagSupport implements IterationTag, Serializable {
* Default processing for a body.
*
* @return SKIP_BODY
+ *
* @throws JspException if an error occurs while processing this tag
*
* @see IterationTag#doAfterBody()
@@ -162,7 +144,7 @@ public class TagSupport implements IterationTag, Serializable {
public void release() {
parent = null;
id = null;
- if( values != null ) {
+ if (values != null) {
values.clear();
}
values = null;
@@ -172,6 +154,7 @@ public class TagSupport implements IterationTag, Serializable {
* Set the nesting tag of this tag.
*
* @param t The parent Tag.
+ *
* @see Tag#setParent(Tag)
*/
@Override
@@ -181,6 +164,7 @@ public class TagSupport implements IterationTag, Serializable {
/**
* The Tag instance most closely enclosing this tag instance.
+ *
* @see Tag#getParent()
*
* @return the parent tag instance or null
@@ -212,6 +196,7 @@ public class TagSupport implements IterationTag, Serializable {
* Set the page context.
*
* @param pageContext The PageContext.
+ *
* @see Tag#setPageContext
*/
@Override
@@ -236,6 +221,7 @@ public class TagSupport implements IterationTag, Serializable {
* Get a the value associated with a key.
*
* @param k The string key.
+ *
* @return The value associated with the key, or null.
*/
public Object getValue(String k) {
@@ -259,8 +245,8 @@ public class TagSupport implements IterationTag, Serializable {
/**
* Enumerate the keys for the values kept by this tag handler.
*
- * @return An enumeration of all the keys for the values set,
- * or null or an empty Enumeration if no values have been set.
+ * @return An enumeration of all the keys for the values set, or null or an empty Enumeration if no values have been
+ * set.
*/
public Enumeration<String> getValues() {
if (values == null) {
@@ -277,7 +263,7 @@ public class TagSupport implements IterationTag, Serializable {
/**
* Map of object values keyed by Strings for this tag.
*/
- private Map<String, Object> values;
+ private Map<String,Object> values;
/**
* The value of the id attribute of this tag; or null.
diff --git a/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java b/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
index 5d0a44e30f..fb6edd350a 100644
--- a/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/TagVariableInfo.java
@@ -17,29 +17,22 @@
package jakarta.servlet.jsp.tagext;
/**
- * Variable information for a tag in a Tag Library; This class is instantiated
- * from the Tag Library Descriptor file (TLD) and is available only at
- * translation time. This object should be immutable. This information is only
- * available in JSP 1.2 format TLDs or above.
+ * Variable information for a tag in a Tag Library; This class is instantiated from the Tag Library Descriptor file
+ * (TLD) and is available only at translation time. This object should be immutable. This information is only available
+ * in JSP 1.2 format TLDs or above.
*/
public class TagVariableInfo {
/**
* Constructor for TagVariableInfo.
*
- * @param nameGiven
- * value of <name-given>
- * @param nameFromAttribute
- * value of <name-from-attribute>
- * @param className
- * value of <variable-class>
- * @param declare
- * value of <declare>
- * @param scope
- * value of <scope>
+ * @param nameGiven value of <name-given>
+ * @param nameFromAttribute value of <name-from-attribute>
+ * @param className value of <variable-class>
+ * @param declare value of <declare>
+ * @param scope value of <scope>
*/
- public TagVariableInfo(String nameGiven, String nameFromAttribute,
- String className, boolean declare, int scope) {
+ public TagVariableInfo(String nameGiven, String nameFromAttribute, String className, boolean declare, int scope) {
this.nameGiven = nameGiven;
this.nameFromAttribute = nameFromAttribute;
this.className = className;
@@ -57,10 +50,8 @@ public class TagVariableInfo {
}
/**
- * The body of the <name-from-attribute> element. This is the name of
- * an attribute whose (translation-time) value will give the name of the
- * variable. One of <name-given> or <name-from-attribute> is
- * required.
+ * The body of the <name-from-attribute> element. This is the name of an attribute whose (translation-time)
+ * value will give the name of the variable. One of <name-given> or <name-from-attribute> is required.
*
* @return The attribute whose value defines the variable name
*/
@@ -71,8 +62,7 @@ public class TagVariableInfo {
/**
* The body of the <variable-class> element.
*
- * @return The name of the class of the variable or 'java.lang.String' if
- * not defined in the TLD.
+ * @return The name of the class of the variable or 'java.lang.String' if not defined in the TLD.
*/
public String getClassName() {
return className;
@@ -81,8 +71,7 @@ public class TagVariableInfo {
/**
* The body of the <declare> element.
*
- * @return Whether the variable is to be declared or not. If not defined in
- * the TLD, 'true' will be returned.
+ * @return Whether the variable is to be declared or not. If not defined in the TLD, 'true' will be returned.
*/
public boolean getDeclare() {
return declare;
@@ -91,8 +80,7 @@ public class TagVariableInfo {
/**
* The body of the <scope> element.
*
- * @return The scope to give the variable. NESTED scope will be returned if
- * not defined in the TLD.
+ * @return The scope to give the variable. NESTED scope will be returned if not defined in the TLD.
*/
public int getScope() {
return scope;
diff --git a/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java b/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
index e03414cf8b..94a13245dc 100644
--- a/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
+++ b/java/jakarta/servlet/jsp/tagext/TryCatchFinally.java
@@ -17,13 +17,12 @@
package jakarta.servlet.jsp.tagext;
-
/**
- * The auxiliary interface of a Tag, IterationTag or BodyTag tag
- * handler that wants additional hooks for managing resources.
- *
- * <p>This interface provides two new methods: doCatch(Throwable)
- * and doFinally(). The prototypical invocation is as follows:
+ * The auxiliary interface of a Tag, IterationTag or BodyTag tag handler that wants additional hooks for managing
+ * resources.
+ * <p>
+ * This interface provides two new methods: doCatch(Throwable) and doFinally(). The prototypical invocation is as
+ * follows:
*
* <pre>
* h = get a Tag(); // get a tag handler, perhaps from pool
@@ -54,43 +53,33 @@ package jakarta.servlet.jsp.tagext;
public interface TryCatchFinally {
/**
- * Invoked if a Throwable occurs while evaluating the BODY
- * inside a tag or in any of the following methods:
- * Tag.doStartTag(), Tag.doEndTag(),
- * IterationTag.doAfterBody() and BodyTag.doInitBody().
- *
- * <p>This method is not invoked if the Throwable occurs during
- * one of the setter methods.
- *
- * <p>This method may throw an exception (the same or a new one)
- * that will be propagated further up the nest chain. If an exception
- * is thrown, doFinally() will be invoked.
- *
- * <p>This method is intended to be used to respond to an exceptional
- * condition.
+ * Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods:
+ * Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().
+ * <p>
+ * This method is not invoked if the Throwable occurs during one of the setter methods.
+ * <p>
+ * This method may throw an exception (the same or a new one) that will be propagated further up the nest chain. If
+ * an exception is thrown, doFinally() will be invoked.
+ * <p>
+ * This method is intended to be used to respond to an exceptional condition.
*
* @param t The throwable exception navigating through this tag.
- * @throws Throwable if the exception is to be rethrown further up
- * the nest chain.
+ *
+ * @throws Throwable if the exception is to be rethrown further up the nest chain.
*/
void doCatch(Throwable t) throws Throwable;
/**
- * Invoked in all cases after doEndTag() for any class implementing
- * Tag, IterationTag or BodyTag. This method is invoked even if
- * an exception has occurred in the BODY of the tag,
- * or in any of the following methods:
- * Tag.doStartTag(), Tag.doEndTag(),
- * IterationTag.doAfterBody() and BodyTag.doInitBody().
- *
- * <p>This method is not invoked if the Throwable occurs during
- * one of the setter methods.
- *
- * <p>This method should not throw an Exception.
- *
- * <p>This method is intended to maintain per-invocation data
- * integrity and resource management actions.
+ * Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag. This method is
+ * invoked even if an exception has occurred in the BODY of the tag, or in any of the following methods:
+ * Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().
+ * <p>
+ * This method is not invoked if the Throwable occurs during one of the setter methods.
+ * <p>
+ * This method should not throw an Exception.
+ * <p>
+ * This method is intended to maintain per-invocation data integrity and resource management actions.
*/
void doFinally();
diff --git a/java/jakarta/servlet/jsp/tagext/ValidationMessage.java b/java/jakarta/servlet/jsp/tagext/ValidationMessage.java
index 3d0ce82c9e..c231ec09d8 100644
--- a/java/jakarta/servlet/jsp/tagext/ValidationMessage.java
+++ b/java/jakarta/servlet/jsp/tagext/ValidationMessage.java
@@ -19,34 +19,25 @@ package jakarta.servlet.jsp.tagext;
/**
* A validation message from either TagLibraryValidator or TagExtraInfo.
* <p>
- * As of JSP 2.0, a JSP container must support a jsp:id attribute to provide
- * higher quality validation errors. The container will track the JSP pages as
- * passed to the container, and will assign to each element a unique "id", which
- * is passed as the value of the jsp:id attribute. Each XML element in the XML
- * view available will be extended with this attribute. The TagLibraryValidator
- * can then use the attribute in one or more ValidationMessage objects. The
- * container then, in turn, can use these values to provide more precise
- * information on the location of an error.
+ * As of JSP 2.0, a JSP container must support a jsp:id attribute to provide higher quality validation errors. The
+ * container will track the JSP pages as passed to the container, and will assign to each element a unique "id", which
+ * is passed as the value of the jsp:id attribute. Each XML element in the XML view available will be extended with this
+ * attribute. The TagLibraryValidator can then use the attribute in one or more ValidationMessage objects. The container
+ * then, in turn, can use these values to provide more precise information on the location of an error.
* <p>
- * The actual prefix of the <code>id</code> attribute may or may not be
- * <code>jsp</code> but it will always map to the namespace
- * <code>http://java.sun.com/JSP/Page</code>. A TagLibraryValidator
- * implementation must rely on the uri, not the prefix, of the <code>id</code>
- * attribute.
+ * The actual prefix of the <code>id</code> attribute may or may not be <code>jsp</code> but it will always map to the
+ * namespace <code>http://java.sun.com/JSP/Page</code>. A TagLibraryValidator implementation must rely on the uri, not
+ * the prefix, of the <code>id</code> attribute.
*/
public class ValidationMessage {
/**
- * Create a ValidationMessage. The message String should be non-null. The
- * value of id may be null, if the message is not specific to any XML
- * element, or if no jsp:id attributes were passed on. If non-null, the
- * value of id must be the value of a jsp:id attribute for the PageData
- * passed into the validate() method.
+ * Create a ValidationMessage. The message String should be non-null. The value of id may be null, if the message is
+ * not specific to any XML element, or if no jsp:id attributes were passed on. If non-null, the value of id must be
+ * the value of a jsp:id attribute for the PageData passed into the validate() method.
*
- * @param id
- * Either null, or the value of a jsp:id attribute.
- * @param message
- * A localized validation message.
+ * @param id Either null, or the value of a jsp:id attribute.
+ * @param message A localized validation message.
*/
public ValidationMessage(String id, String message) {
this.id = id;
diff --git a/java/jakarta/servlet/jsp/tagext/VariableInfo.java b/java/jakarta/servlet/jsp/tagext/VariableInfo.java
index b3e929e800..e3409ec51c 100644
--- a/java/jakarta/servlet/jsp/tagext/VariableInfo.java
+++ b/java/jakarta/servlet/jsp/tagext/VariableInfo.java
@@ -17,76 +17,61 @@
package jakarta.servlet.jsp.tagext;
/**
- * Information on the scripting variables that are created/modified by a tag (at
- * run-time). This information is provided by TagExtraInfo classes and it is
- * used by the translation phase of JSP.
+ * Information on the scripting variables that are created/modified by a tag (at run-time). This information is provided
+ * by TagExtraInfo classes and it is used by the translation phase of JSP.
* <p>
- * Scripting variables generated by a custom action have an associated scope of
- * either AT_BEGIN, NESTED, or AT_END.
+ * Scripting variables generated by a custom action have an associated scope of either AT_BEGIN, NESTED, or AT_END.
* <p>
- * The class name (VariableInfo.getClassName) in the returned objects is used to
- * determine the types of the scripting variables. Note that because scripting
- * variables are assigned their values from scoped attributes which cannot be of
- * primitive types, "boxed" types such as
- * <code>java.lang.Integer</code> must be used instead of primitives.
+ * The class name (VariableInfo.getClassName) in the returned objects is used to determine the types of the scripting
+ * variables. Note that because scripting variables are assigned their values from scoped attributes which cannot be of
+ * primitive types, "boxed" types such as <code>java.lang.Integer</code> must be used instead of primitives.
* <p>
* The class name may be a Fully Qualified Class Name, or a short class name.
* <p>
- * If a Fully Qualified Class Name is provided, it should refer to a class that
- * should be in the CLASSPATH for the Web Application (see Servlet 2.4
- * specification - essentially it is WEB-INF/lib and WEB-INF/classes). Failure
- * to be so will lead to a translation-time error.
+ * If a Fully Qualified Class Name is provided, it should refer to a class that should be in the CLASSPATH for the Web
+ * Application (see Servlet 2.4 specification - essentially it is WEB-INF/lib and WEB-INF/classes). Failure to be so
+ * will lead to a translation-time error.
* <p>
- * If a short class name is given in the VariableInfo objects, then the class
- * name must be that of a public class in the context of the import directives
- * of the page where the custom action appears. The class must also be in the
- * CLASSPATH for the Web Application (see Servlet 2.4 specification -
- * essentially it is WEB-INF/lib and WEB-INF/classes). Failure to be so will
- * lead to a translation-time error.
+ * If a short class name is given in the VariableInfo objects, then the class name must be that of a public class in the
+ * context of the import directives of the page where the custom action appears. The class must also be in the CLASSPATH
+ * for the Web Application (see Servlet 2.4 specification - essentially it is WEB-INF/lib and WEB-INF/classes). Failure
+ * to be so will lead to a translation-time error.
* <p>
* <B>Usage Comments</B>
* <p>
- * Frequently a fully qualified class name will refer to a class that is known
- * to the tag library and thus, delivered in the same JAR file as the tag
- * handlers. In most other remaining cases it will refer to a class that is in
- * the platform on which the JSP processor is built. Using fully
- * qualified class names in this manner makes the usage relatively resistant to
- * configuration errors.
+ * Frequently a fully qualified class name will refer to a class that is known to the tag library and thus, delivered in
+ * the same JAR file as the tag handlers. In most other remaining cases it will refer to a class that is in the platform
+ * on which the JSP processor is built. Using fully qualified class names in this manner makes the usage relatively
+ * resistant to configuration errors.
* <p>
- * A short name is usually generated by the tag library based on some attributes
- * passed through from the custom action user (the author), and it is thus less
- * robust: for instance a missing import directive in the referring JSP page
- * will lead to an invalid short name class and a translation error.
+ * A short name is usually generated by the tag library based on some attributes passed through from the custom action
+ * user (the author), and it is thus less robust: for instance a missing import directive in the referring JSP page will
+ * lead to an invalid short name class and a translation error.
* <p>
* <B>Synchronization Protocol</B>
* <p>
- * The result of the invocation on getVariableInfo is an array of VariableInfo
- * objects. Each such object describes a scripting variable by providing its
- * name, its type, whether the variable is new or not, and what its scope is.
- * Scope is best described through a picture:
+ * The result of the invocation on getVariableInfo is an array of VariableInfo objects. Each such object describes a
+ * scripting variable by providing its name, its type, whether the variable is new or not, and what its scope is. Scope
+ * is best described through a picture:
* <p>
- * <IMG src="doc-files/VariableInfo-1.gif"
- * alt="NESTED, AT_BEGIN and AT_END Variable Scopes">
+ * <IMG src="doc-files/VariableInfo-1.gif" alt="NESTED, AT_BEGIN and AT_END Variable Scopes">
* <p>
* The JSP 2.0 specification defines the interpretation of 3 values:
* <ul>
- * <li>NESTED, if the scripting variable is available between the start tag and
- * the end tag of the action that defines it.
- * <li>AT_BEGIN, if the scripting variable is available from the start tag of
- * the action that defines it until the end of the scope.
- * <li>AT_END, if the scripting variable is available after the end tag of the
- * action that defines it until the end of the scope.
+ * <li>NESTED, if the scripting variable is available between the start tag and the end tag of the action that defines
+ * it.
+ * <li>AT_BEGIN, if the scripting variable is available from the start tag of the action that defines it until the end
+ * of the scope.
+ * <li>AT_END, if the scripting variable is available after the end tag of the action that defines it until the end of
+ * the scope.
* </ul>
- * The scope value for a variable implies what methods may affect its value and
- * thus where synchronization is needed as illustrated by the table below.
- * <b>Note:</b> the synchronization of the variable(s) will occur <em>after</em>
- * the respective method has been called. <blockquote>
+ * The scope value for a variable implies what methods may affect its value and thus where synchronization is needed as
+ * illustrated by the table below. <b>Note:</b> the synchronization of the variable(s) will occur <em>after</em> the
+ * respective method has been called. <blockquote>
* <table style="background-color:#999999">
- * <caption>Variable Synchronization Points</caption>
- * <tbody>
+ * <caption>Variable Synchronization Points</caption> <tbody>
* <tr>
- * <td colspan="6" style="background-color:#999999">
- * <u><b>Variable Synchronization Points</b></u><br>
+ * <td colspan="6" style="background-color:#999999"><u><b>Variable Synchronization Points</b></u><br>
* </td>
* </tr>
* <tr>
@@ -128,11 +113,9 @@ package jakarta.servlet.jsp.tagext;
* <tr>
* <td style="background-color:#c0c0c0"><b>BodyTag<br>
* </b></td>
- * <td style="background-color:#ffffff">AT_BEGIN,
- * NESTED<sup>1</sup><br>
+ * <td style="background-color:#ffffff">AT_BEGIN, NESTED<sup>1</sup><br>
* </td>
- * <td style="background-color:#ffffff">AT_BEGIN,
- * NESTED<sup>1</sup><br>
+ * <td style="background-color:#ffffff">AT_BEGIN, NESTED<sup>1</sup><br>
* </td>
* <td style="background-color:#ffffff">AT_BEGIN, NESTED<br>
* </td>
@@ -157,21 +140,18 @@ package jakarta.servlet.jsp.tagext;
* </tr>
* </tbody>
* </table>
- * <sup>1</sup> Called after <code>doStartTag()</code> if
- * <code>EVAL_BODY_INCLUDE</code> is returned, or after
+ * <sup>1</sup> Called after <code>doStartTag()</code> if <code>EVAL_BODY_INCLUDE</code> is returned, or after
* <code>doInitBody()</code> otherwise. </blockquote>
* <p>
* <B>Variable Information in the TLD</B>
* <p>
- * Scripting variable information can also be encoded directly for most cases
- * into the Tag Library Descriptor using the <variable> subelement of the
- * <tag> element. See the JSP specification.
+ * Scripting variable information can also be encoded directly for most cases into the Tag Library Descriptor using the
+ * <variable> subelement of the <tag> element. See the JSP specification.
*/
public class VariableInfo {
/**
- * Scope information that scripting variable is visible only within the
- * start/end tags.
+ * Scope information that scripting variable is visible only within the start/end tags.
*/
public static final int NESTED = 0;
@@ -186,21 +166,14 @@ public class VariableInfo {
public static final int AT_END = 2;
/**
- * Constructor These objects can be created (at translation time) by the
- * TagExtraInfo instances.
+ * Constructor These objects can be created (at translation time) by the TagExtraInfo instances.
*
- * @param varName
- * The name of the scripting variable
- * @param className
- * The type of this variable
- * @param declare
- * If true, it is a new variable (in some languages this will
- * require a declaration)
- * @param scope
- * Indication on the lexical scope of the variable
+ * @param varName The name of the scripting variable
+ * @param className The type of this variable
+ * @param declare If true, it is a new variable (in some languages this will require a declaration)
+ * @param scope Indication on the lexical scope of the variable
*/
- public VariableInfo(String varName, String className, boolean declare,
- int scope) {
+ public VariableInfo(String varName, String className, boolean declare, int scope) {
this.varName = varName;
this.className = className;
this.declare = declare;
@@ -228,8 +201,7 @@ public class VariableInfo {
}
/**
- * Returns whether this is a new variable. If so, in some languages this
- * will require a declaration.
+ * Returns whether this is a new variable. If so, in some languages this will require a declaration.
*
* @return whether this is a new variable.
*/
@@ -240,8 +212,8 @@ public class VariableInfo {
/**
* Returns the lexical scope of the variable.
*
- * @return the lexical scope of the variable, either AT_BEGIN, AT_END, or
- * NESTED.
+ * @return the lexical scope of the variable, either AT_BEGIN, AT_END, or NESTED.
+ *
* @see #AT_BEGIN
* @see #AT_END
* @see #NESTED
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org