1 5 6 package com.raptus.owxv3.libtags; 7 8 import java.util.Hashtable ; 9 10 import javax.servlet.http.*; 11 import javax.servlet.jsp.*; 12 import javax.servlet.jsp.tagext.TagSupport ; 13 14 import com.raptus.owxv3.*; 15 16 37 public class GroupVarsTag extends TagSupport 38 { 39 private final String GROUP_VARS_KEY = "com.raptus.owxv3.GROUP_VARS_KEY"; 40 41 44 protected String group; 45 public void setGroup(String s) { group = s; } 46 public String getGroup() { return group; } 47 48 51 protected String var; 52 public void setVar(String s) { var = s; } 53 public String getVar() { return var; } 54 55 59 protected String value; 60 public void setValue(String s) { value = s; } 61 public String getValue() { return value; } 62 63 72 protected String action; 73 public void setAction(String s) { action = s; } 74 public String getAction() { return action; } 75 76 79 public int doStartTag() throws JspException 80 { 81 HttpServletRequest req=(HttpServletRequest) pageContext.getRequest(); 82 HttpSession session=req.getSession(); 83 Hashtable gvlist = getValidGVList(session); 84 boolean considerBody = false; 85 86 JspWriter out = pageContext.getOut(); 87 try 88 { 89 if(action.equalsIgnoreCase("activate")) 90 { 91 considerBody = processActivate(gvlist); 92 } 93 else if(action.equalsIgnoreCase("getvalue")) 94 { 95 out.print(processGetValue(gvlist)); 96 } 97 else if(action.equalsIgnoreCase("equal")) 98 { 99 considerBody = processEqual(gvlist, false); 100 } 101 else if(action.equalsIgnoreCase("notequal")) 102 { 103 considerBody = processEqual(gvlist, true); 104 } 105 } 106 catch(Exception e) { 107 LoggingManager.log("Exception while processing logic." + e.getMessage(), this); 108 } 109 if(considerBody == true) 111 { 112 return (EVAL_BODY_INCLUDE); 113 } 114 else 115 { 116 return (SKIP_BODY); 117 } 118 119 } 120 121 126 public int doEndTag() throws JspException 127 { 128 return (EVAL_PAGE); 129 } 130 131 136 protected Hashtable getValidGVList(HttpSession session) 137 { 138 Hashtable gvlist = (Hashtable ) session.getAttribute(GROUP_VARS_KEY); 139 if(gvlist == null) 140 { 141 gvlist = new Hashtable (); 142 session.setAttribute(GROUP_VARS_KEY, gvlist); 143 } 144 145 return(gvlist); 146 } 147 148 153 protected boolean processActivate(Hashtable gvlist) 154 { 155 PairOfObjects po = new PairOfObjects(var, value); 156 gvlist.put(group, po); 157 158 return false; 159 } 160 161 166 protected String processGetValue(Hashtable gvlist) 167 { 168 PairOfObjects po = (PairOfObjects) gvlist.get(group); if(po != null && ((String ) po.getObjectOne()).equals(var)) return (String ) po.getObjectTwo(); 172 return value; 173 } 174 175 181 protected boolean processEqual(Hashtable gvlist, boolean invers) 182 { 183 PairOfObjects po = (PairOfObjects) gvlist.get(group); 184 if(po != null && 185 ((String ) po.getObjectOne()).equals(var) && 186 ((String ) po.getObjectTwo()).equals(value) ) 187 { 188 return !invers; 189 } 190 191 return false; 192 } 193 194 } | Popular Tags |