javax.servlet.jsp.tagext
public class: TagAdapter [javadoc |
source]
java.lang.Object
javax.servlet.jsp.tagext.TagAdapter
All Implemented Interfaces:
Tag
Wraps any SimpleTag and exposes it using a Tag interface. This is used
to allow collaboration between classic Tag handlers and SimpleTag
handlers.
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.
Constructor: |
public TagAdapter(SimpleTag adaptee) {
if( adaptee == null ) {
// Cannot wrap a null adaptee.
throw new IllegalArgumentException();
}
this.simpleTagAdaptee = adaptee;
}
Creates a new TagAdapter that wraps the given SimpleTag and
returns the parent tag when getParent() is called. Parameters:
adaptee - The SimpleTag being adapted as a Tag.
|
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from javax.servlet.jsp.tagext.TagAdapter Detail: |
public int doEndTag() throws JspException {
throw new UnsupportedOperationException(
"Illegal to invoke doEndTag() on TagAdapter wrapper" );
}
|
public int doStartTag() throws JspException {
throw new UnsupportedOperationException(
"Illegal to invoke doStartTag() on TagAdapter wrapper" );
}
|
public JspTag getAdaptee() {
return this.simpleTagAdaptee;
}
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. |
public Tag getParent() {
if (!parentDetermined) {
JspTag adapteeParent = simpleTagAdaptee.getParent();
if (adapteeParent != null) {
if (adapteeParent instanceof Tag) {
this.parent = (Tag) adapteeParent;
} else {
// Must be SimpleTag - no other types defined.
this.parent = new TagAdapter((SimpleTag) adapteeParent);
}
}
parentDetermined = true;
}
return this.parent;
}
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). |
public void release() {
throw new UnsupportedOperationException(
"Illegal to invoke release() on TagAdapter wrapper" );
}
|
public void setPageContext(PageContext pc) {
throw new UnsupportedOperationException(
"Illegal to invoke setPageContext() on TagAdapter wrapper" );
}
|
public void setParent(Tag parentTag) {
throw new UnsupportedOperationException(
"Illegal to invoke setParent() on TagAdapter wrapper" );
}
Must not be called. The parent of this tag is always
getAdaptee().getParent(). |