1 25 29 package org.jresearch.gossip.tags; 30 31 import java.util.Date ; 32 import java.util.HashMap ; 33 34 import javax.servlet.jsp.JspException ; 35 import javax.servlet.jsp.tagext.TagSupport ; 36 37 import org.apache.log.Logger; 38 import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; 39 import org.jresearch.gossip.IConst; 40 import org.jresearch.gossip.beans.user.User; 41 import org.jresearch.gossip.exception.SystemException; 42 import org.jresearch.gossip.log.avalon.JGossipLog; 43 44 49 public class LastVisitTag extends TagSupport { 50 51 54 private Logger log; 55 56 private String intime; 57 58 private Date inTime; 59 60 private String tid; 61 62 private String sender; 63 64 67 public LastVisitTag() { 68 super(); 69 try { 70 log = JGossipLog.getInstance().getAppLogger(); 71 } catch (SystemException e) { 72 } 73 } 74 75 81 private void eval() throws JspException { 82 inTime = (Date ) ExpressionEvaluatorManager.evaluate("intime", intime, 83 Date .class, this, pageContext); 84 85 sender = (String ) ExpressionEvaluatorManager.evaluate("sender", sender, 86 String .class, this, pageContext); 87 88 tid = ExpressionEvaluatorManager.evaluate("tid", tid, Integer .class, 89 this, pageContext).toString(); 90 } 91 92 100 public int doStartTag() throws JspException { 101 eval(); 102 103 try { 104 User user = (User) pageContext.getSession().getAttribute( 105 IConst.SESSION.USER_KEY); 106 107 Date lastvisit = null; 108 HashMap visited = (HashMap ) pageContext.getSession().getAttribute( 109 IConst.SESSION.LAST_INTIME); 110 111 if ((!visited.isEmpty()) && visited.containsKey(tid)) { 112 lastvisit = (Date ) visited.get(tid); 113 } else { 114 lastvisit = user.getIntime(); 115 } 116 117 String username = (user.getName() != null) ? user.getName() : " "; 118 119 if (lastvisit.before(getIntime()) && (!username.equals(sender))) { 120 pageContext.setAttribute(IConst.PAGE.HAVE_AN_UPDATED_TOPICS, 121 IConst.VALUES.TRUE); 122 123 return super.EVAL_BODY_INCLUDE; 124 } 125 } catch (Exception ex) { 126 if (log.isErrorEnabled()) { 127 log.error("LastVisitTag::", ex); 128 } 129 throw new JspException ("error in LastVisitTag tag:", ex); 130 } 131 132 return (SKIP_BODY); 133 } 134 135 140 private Date getIntime() { 141 return inTime; 142 } 143 144 149 public String getSender() { 150 return sender; 151 } 152 153 158 public String getTid() { 159 return tid; 160 } 161 162 167 public void setIntime(String string) { 168 intime = string; 169 } 170 171 176 public void setSender(String string) { 177 sender = string; 178 } 179 180 185 public void setTid(String string) { 186 tid = string; 187 } 188 } 189 | Popular Tags |