KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > banners > factories > BannerFactory


1 package com.dotmarketing.portlets.banners.factories;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5 import java.util.Set JavaDoc;
6 import java.util.TreeMap JavaDoc;
7 import com.dotmarketing.cache.BannerCache;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpSession JavaDoc;
10
11 import com.dotmarketing.db.DbConnectionFactory;
12 import com.dotmarketing.db.DotHibernate;
13 import com.dotmarketing.listeners.BannersListener;
14 import com.dotmarketing.portlets.banners.model.Banner;
15 import com.dotmarketing.portlets.categories.factories.CategoryFactory;
16 import com.dotmarketing.portlets.categories.model.Category;
17 import com.dotmarketing.portlets.entities.factories.EntityFactory;
18 import com.dotmarketing.portlets.entities.model.Entity;
19 import com.dotmarketing.util.Config;
20 import com.dotmarketing.util.Logger;
21
22
23 /**
24  *
25  * @author will
26  */

27 public class BannerFactory {
28
29     public static java.util.List JavaDoc getActiveBanners() {
30         DotHibernate dh = new DotHibernate(Banner.class);
31         dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where active = ? and start_date <= ? and end_date >= ?");
32         dh.setParam(true);
33         java.util.Date JavaDoc d = new java.util.Date JavaDoc();
34         dh.setParam(d);
35         dh.setParam(d);
36         return ( java.util.List JavaDoc ) dh.list();
37     }
38
39     /**
40      * Method saveBanner.
41      */

42     public static void saveBanner(Banner b) {
43         
44         Logger.debug(TreeMap JavaDoc.class, "class name in saveBanner=" + b.getClass());
45         DotHibernate.saveOrUpdate(b);
46     }
47     
48     public static Banner getBanner(String JavaDoc id) {
49         long x = 0;
50         try {
51             x=Long.parseLong(id);
52         }
53         catch(Exception JavaDoc e){}
54         DotHibernate dh = new DotHibernate(Banner.class);
55         dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where banner.inode=?");
56         dh.setParam(x);
57         return (Banner) dh.load();
58         
59     }
60
61     public static java.util.List JavaDoc getBannersByOrderAndKeywords(String JavaDoc keywords, String JavaDoc orderby) {
62         DotHibernate dh = new DotHibernate(Banner.class);
63         dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where title like '%" + keywords + "%' order by " + orderby);
64         return (java.util.List JavaDoc) dh.list();
65     }
66
67     public static java.util.List JavaDoc getBannersByOrder(String JavaDoc orderby) {
68         DotHibernate dh = new DotHibernate(Banner.class);
69         dh.setQuery("from banner in class com.dotmarketing.portlets.banners.model.Banner where active = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " order by " + orderby);
70         return (java.util.List JavaDoc) dh.list();
71     }
72     
73     public static List JavaDoc getBanners(String JavaDoc path, String JavaDoc placement) {
74         DotHibernate dh = new DotHibernate(Banner.class);
75         
76         String JavaDoc query = "from banner in class com.dotmarketing.portlets.banners.model.Banner where path = ? and placement like '%" + placement + "%' and active = " + DbConnectionFactory.getDBTrue();
77         dh.setQuery(query);
78         dh.setParam(path);
79         return (java.util.List JavaDoc) dh.list();
80     }
81     
82     public static List JavaDoc getBannersWithOrder(String JavaDoc path, String JavaDoc placement)
83     {
84         ArrayList JavaDoc banners = new ArrayList JavaDoc();
85         Entity entity = EntityFactory.getEntity("Banner");
86         List JavaDoc categories = EntityFactory.getEntityCategories(entity);
87         Category category = (Category) categories.get(0);
88         List JavaDoc<Category> childrenCategories = CategoryFactory.getChildrenCategories(category,"sort_order");
89         for(Category childCategory : childrenCategories)
90         {
91             String JavaDoc categoryName = childCategory.getKey();
92             banners.addAll(getBanners(path,categoryName));
93         }
94         return banners;
95     }
96
97     public static List JavaDoc getBannerList(String JavaDoc path, String JavaDoc placement) {
98         
99         List JavaDoc banners = new ArrayList JavaDoc();
100         try {
101
102             while (banners.size()==0 && path!=null && path.length()>0) {
103     
104                 banners = BannerCache.getBannersFromCache(path, placement);
105                 
106                 
107                 if (banners.size()>0) {
108                     return banners;
109                 }
110     
111                 if (path.endsWith(Config.getStringProperty("VELOCITY_PAGE_EXTENSION"))) {
112                     path = path.substring(0,path.lastIndexOf("/")+1);
113                 }
114                 else {
115                     int idx1 = path.lastIndexOf("/");
116                     path = path.substring(0,path.length()-1);
117                     idx1 = path.lastIndexOf("/");
118                     if (idx1 != -1) {
119                         path = path.substring(0,idx1+1);
120                     }
121                     else {
122                         path = "";
123                     }
124                 }
125             }
126         }
127         catch (Exception JavaDoc e) {
128             Logger.error(BannerFactory.class, e.toString(), e);
129             e.printStackTrace(System.out);
130         }
131         return banners;
132     }
133     
134     private static void addBannerToSession (HttpServletRequest JavaDoc req, Banner banner) {
135         HttpSession JavaDoc session = req.getSession();
136         Logger.debug(BannerFactory.class, "addBannerToSession: session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY) != null: " + (session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY) != null));
137         Set JavaDoc banners = (Set JavaDoc) session.getAttribute(BannersListener.BANNERS_ATTRIBUTE_KEY);
138
139         Logger.debug(BannerFactory.class, "addBannerToSession: session.getAttribute(banners.contains(banner): " +banners.contains(banner));
140         if (!banners.contains(banner)) {
141             banners.add(banner);
142         }
143     }
144     
145     public static void updateBannerViews(HttpServletRequest JavaDoc req, Banner banner) {
146         Logger.debug(BannerFactory.class, "updateBannerViews: banner: " + banner.getInode());
147         Logger.debug(BannerFactory.class, "updateBannerViews: before banner.getNmbrViews(): " + banner.getNmbrViews());
148         addBannerToSession (req, banner);
149         banner.setNmbrViews(banner.getNmbrViews()+1);
150         Logger.debug(BannerFactory.class, "updateBannerViews: after banner.getNmbrViews(): " + banner.getNmbrViews());
151     }
152     
153     public static void updateBannerClicks(HttpServletRequest JavaDoc req, Banner banner) {
154         addBannerToSession (req, banner);
155         banner.setNmbrClicks(banner.getNmbrClicks()+1);
156     }
157 }
158
Popular Tags