You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2002/10/18 23:51:07 UTC
cvs commit: jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext SimpleTagSupport.java
kinman 2002/10/18 14:51:07
Modified: jsr152/src/share/javax/servlet/jsp/tagext
SimpleTagSupport.java
Log:
- Patch by Jan Luehe
Adjust the semantics of SimpleTagSupport.findAncestorWithClass()
to use the return value of getAdaptee() when comparing class
types, and for the final return value.
Revision Changes Path
1.3 +23 -14 jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/SimpleTagSupport.java
Index: SimpleTagSupport.java
===================================================================
RCS file: /home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/tagext/SimpleTagSupport.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SimpleTagSupport.java 19 Aug 2002 16:29:51 -0000 1.2
+++ SimpleTagSupport.java 18 Oct 2002 21:51:07 -0000 1.3
@@ -167,6 +167,12 @@
* 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
+ * <tt>TagAdapter.getAdaptee()</tt> - instead of the TagAdpater itself -
+ * is compared to <tt>klass</tt>. If the tag handler matches, it - and
+ * not its TagAdapter - is returned.
+ *
* <p>
* The current version of the specification only provides one formal
* way of indicating the observable type of a tag handler: its
@@ -198,31 +204,34 @@
{
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 tag = null;
+ JspTag parent = null;
if( from instanceof SimpleTag ) {
- tag = ((SimpleTag)from).getParent();
+ parent = ((SimpleTag)from).getParent();
}
else if( from instanceof Tag ) {
- tag = ((Tag)from).getParent();
+ parent = ((Tag)from).getParent();
}
-
- if (tag == null) {
+ if (parent == null) {
return null;
}
- if ((isInterface && klass.isInstance(tag)) ||
- klass.isAssignableFrom(tag.getClass()))
- return tag;
- else
- from = tag;
+ if (parent instanceof TagAdapter) {
+ parent = ((TagAdapter) parent).getAdaptee();
+ }
+
+ if ((isInterface && klass.isInstance(parent))
+ || klass.isAssignableFrom(parent.getClass())) {
+ return parent;
+ }
+
+ from = parent;
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>