1 6 package com.dotmarketing.factories; 7 8 import java.util.Date ; 9 10 import javax.servlet.http.HttpServletRequest ; 11 import javax.servlet.http.HttpSession ; 12 13 import org.apache.commons.logging.LogFactory; 14 15 import com.dotmarketing.beans.Clickstream; 16 import com.dotmarketing.beans.ClickstreamRequest; 17 import com.dotmarketing.beans.Host; 18 import com.dotmarketing.cache.VirtualLinksCache; 19 import com.dotmarketing.db.DotHibernate; 20 import com.dotmarketing.portlets.languagesmanager.factories.LanguageFactory; 21 import com.dotmarketing.util.Config; 22 import com.dotmarketing.util.UtilMethods; 23 import com.dotmarketing.util.WebKeys; 24 25 29 30 public class ClickstreamRequestFactory { 31 32 public static ClickstreamRequest getClickstreamRequest(HttpServletRequest request, Date timestamp) { 33 ClickstreamRequest cr = new ClickstreamRequest(); 34 cr.setProtocol(request.getProtocol()); 35 cr.setServerName(request.getServerName()); 36 cr.setServerPort(request.getServerPort()); 37 if(request.getAttribute(WebKeys.VIRTUAL_LINK) != null){ 38 LogFactory.getLog(ClickstreamRequestFactory.class).info("ClickstreamRequest found virtual link pointer = " + request.getAttribute(WebKeys.VIRTUAL_LINK)); 39 cr.setRequestURI((String ) request.getAttribute(WebKeys.VIRTUAL_LINK)); 40 }else 41 { 42 Host host = HostFactory.getCurrentHost(request); 44 String uri = request.getRequestURI(); 45 String pointer = null; 46 if (uri.endsWith("/")) 47 { 48 if(uri.equals("/")) 49 { 50 pointer = VirtualLinksCache.getPathFromCache(host.getHostname() + ":/cmsHomePage"); 51 if (!UtilMethods.isSet(pointer)) 52 { 53 pointer = VirtualLinksCache.getPathFromCache("/cmsHomePage"); 54 } 55 } 56 else 57 { 58 uri = uri.substring(0, uri.length() - 1); 59 pointer = VirtualLinksCache.getPathFromCache(host.getHostname() + ":" + uri); 60 if (!UtilMethods.isSet(pointer)) 61 { 62 pointer = VirtualLinksCache.getPathFromCache(uri); 63 } 64 } 65 } 66 uri = (pointer != null ? pointer : request.getRequestURI()); 68 String vpe = Config.getStringProperty("VELOCITY_PAGE_EXTENSION"); 69 if(!uri.endsWith("." + vpe) && uri.substring(uri.lastIndexOf("/")).indexOf(".") == -1) 70 { 71 uri += (uri.endsWith("/") ? "index." + vpe : "/index." + vpe); 73 } 74 cr.setRequestURI(uri); 75 } 76 cr.setQueryString(request.getQueryString()); 77 cr.setRemoteUser(request.getRemoteUser()); 78 HttpSession session = request.getSession(); 79 80 long languageId = LanguageFactory.getDefaultLanguage().getId(); 81 if(session.getAttribute(WebKeys.HTMLPAGE_LANGUAGE)!=null){ 82 languageId = Long.parseLong(session.getAttribute(WebKeys.HTMLPAGE_LANGUAGE).toString()); 83 } 84 85 cr.setLanguageId(languageId); 87 cr.setTimestamp(timestamp); 88 return cr; 89 } 90 91 public static void save(ClickstreamRequest clickstreamRequest) { 92 DotHibernate.save(clickstreamRequest); 93 } 94 95 public static java.util.List getClickstreamRequestsByRequestURI(String requestUri) { 96 DotHibernate dh = new DotHibernate(ClickstreamRequest.class); 97 dh.setSQLQuery("SELECT {clickstream_request.*} FROM clickstream_request WHERE request_uri = ? ORDER BY timestampper"); 98 dh.setParam(requestUri); 99 return dh.list(); 100 } 101 102 public static java.util.List getClickstreamRequestsByClickStream(Clickstream cs) { 103 DotHibernate dh = new DotHibernate(ClickstreamRequest.class); 104 dh.setSQLQuery("SELECT {clickstream_request.*} FROM clickstream_request WHERE clickstream_id = ? ORDER BY timestampper"); 105 dh.setParam(cs.getClickstreamId()); 106 return dh.list(); 107 108 } 109 110 111 112 113 } 114 | Popular Tags |