KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > factories > ClickstreamRequestFactory


1 /*
2  * Created on Jun 1, 2004
3  *
4  * Window - Preferences - Java - Code Generation - Code and Comments
5  */

6 package com.dotmarketing.factories;
7
8 import java.util.Date JavaDoc;
9
10 import javax.servlet.http.HttpServletRequest JavaDoc;
11 import javax.servlet.http.HttpSession JavaDoc;
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 /**
26  * @author rocco
27  *
28  */

29
30 public class ClickstreamRequestFactory {
31     
32     public static ClickstreamRequest getClickstreamRequest(HttpServletRequest JavaDoc request, Date JavaDoc 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 JavaDoc) request.getAttribute(WebKeys.VIRTUAL_LINK));
40         }else
41         {
42             //To fix the virtual links problem
43
Host host = HostFactory.getCurrentHost(request);
44             String JavaDoc uri = request.getRequestURI();
45             String JavaDoc 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             //end fix virtual links problem
67
uri = (pointer != null ? pointer : request.getRequestURI());
68             String JavaDoc vpe = Config.getStringProperty("VELOCITY_PAGE_EXTENSION");
69             if(!uri.endsWith("." + vpe) && uri.substring(uri.lastIndexOf("/")).indexOf(".") == -1)
70             {
71                 //Calculate the default URI example index.dot
72
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 JavaDoc 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         // String languageCode = "en";
86
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 JavaDoc getClickstreamRequestsByRequestURI(String JavaDoc 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 JavaDoc 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