1 53 54 package com.Yasna.forum.tags; 55 56 import javax.servlet.jsp.tagext.*; 57 import com.Yasna.forum.*; 58 import javax.servlet.jsp.*; 59 import java.util.*; 60 61 66 public class CategoriesLoopTag extends TagSupport implements BooleanTag { 67 68 boolean hasCategories; 69 private Iterator categoryIterator; 70 private Category category; 71 private String name; 72 private final String BLANK = " "; 73 private String id; 74 75 public int doStartTag() throws JspException { 76 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken()); 77 categoryIterator = forumFactory.categories(); 78 hasCategories = categoryIterator.hasNext(); 79 if (hasCategories) { 80 category = (Category)categoryIterator.next(); 81 name = category.getName(); 82 pageContext.setAttribute(id, this, PageContext.PAGE_SCOPE); 83 } 84 return EVAL_BODY_INCLUDE; 85 } 86 87 92 public String getName() { 93 String toReturn = name; 94 name = BLANK; 95 return toReturn; 96 } 97 98 102 public Category getCategory() { 103 return category; 104 } 105 106 public int doAfterBody() throws JspException { 107 if (categoryIterator.hasNext()) { 108 category = (Category) categoryIterator.next(); 109 name = category.getName(); 110 return EVAL_BODY_AGAIN; 111 } else { 112 return SKIP_BODY; 113 } 114 } 115 116 public int doEndTag() throws JspException { 117 return EVAL_PAGE; 118 } 119 120 public void release() { 121 category = null; 122 categoryIterator = null; 123 } 124 125 131 private Authorization getAuthToken() { 132 YazdState js = (YazdState) pageContext.getAttribute("yazdUserState",PageContext.SESSION_SCOPE); 133 return js.getAuthorization(); 134 } 135 136 140 public boolean getValue() { 141 return hasCategories; 142 } 143 144 148 public void setId(String id) { 149 this.id = id; 150 } 151 152 } | Popular Tags |