001
014
015 package com.liferay.taglib;
016
017 import javax.servlet.jsp.JspException;
018 import javax.servlet.jsp.PageContext;
019 import javax.servlet.jsp.tagext.Tag;
020
021
028 public class TagSupport implements Tag {
029
030 public static Tag findAncestorWithClass(Tag fromTag, Class<?> clazz) {
031 if ((fromTag == null) || (clazz == null) ||
032 (!Tag.class.isAssignableFrom(clazz) && !clazz.isInterface())) {
033
034 return null;
035 }
036
037 while (true) {
038 Tag parentTag = fromTag.getParent();
039
040 if (parentTag == null) {
041 return null;
042 }
043
044 if (clazz.isInstance(parentTag)) {
045 return parentTag;
046 }
047
048 fromTag = parentTag;
049 }
050 }
051
052 @Override
053 @SuppressWarnings("unused")
054 public int doEndTag() throws JspException {
055 return EVAL_PAGE;
056 }
057
058 @Override
059 @SuppressWarnings("unused")
060 public int doStartTag() throws JspException {
061 return SKIP_BODY;
062 }
063
064 @Override
065 public Tag getParent() {
066 return _parent;
067 }
068
069 @Override
070 public void release() {
071 _parent = null;
072 }
073
074 @Override
075 public void setPageContext(PageContext pageContext) {
076 this.pageContext = pageContext;
077 }
078
079 @Override
080 public void setParent(Tag tag) {
081 _parent = tag;
082 }
083
084 protected PageContext pageContext;
085
086 private Tag _parent;
087
088 }