KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > categories > factories > CategoryFactory


1 package com.dotmarketing.portlets.categories.factories;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8
9 import com.dotmarketing.beans.Inode;
10 import com.dotmarketing.db.DotHibernate;
11 import com.dotmarketing.exception.DotRuntimeException;
12 import com.dotmarketing.factories.InodeFactory;
13 import com.dotmarketing.portlets.categories.model.Category;
14 import com.dotmarketing.portlets.entities.factories.EntityFactory;
15 import com.dotmarketing.portlets.entities.model.Entity;
16 import com.dotmarketing.util.Logger;
17
18 /**
19  *
20  * @author will
21  */

22 public class CategoryFactory {
23
24     public static Category getCategory(String JavaDoc id) {
25         try {
26             return getCategory(Integer.parseInt(id));
27         } catch (Exception JavaDoc e) {
28             return new Category();
29         }
30     }
31
32     public static void deleteCategoryFromHash(Inode o) {
33
34     }
35
36     public static Category getCategory(long id) {
37
38         DotHibernate dh = new DotHibernate(Category.class);
39         dh
40                 .setQuery("from category in class com.dotmarketing.portlets.categories.model.Category where category.inode = ? ");
41         dh.setParam(id);
42         return (Category) dh.load();
43
44     }
45
46     public static Category getCategoryByName(String JavaDoc name) {
47         DotHibernate dh = new DotHibernate(Category.class);
48         dh
49                 .setQuery("from category in class com.dotmarketing.portlets.categories.model.Category where category_name like ? ");
50         dh.setParam(name);
51
52         return (Category) dh.load();
53     }
54
55     public static Category getCategoryByKey(String JavaDoc name) {
56
57         DotHibernate dh = new DotHibernate(Category.class);
58         dh
59                 .setQuery("from category in class com.dotmarketing.portlets.categories.model.Category where category_key = ? ");
60         dh.setParam(name);
61
62         return (Category) dh.load();
63     }
64
65     public static Category getCategoryByNameAndParent(String JavaDoc name, Inode i) {
66
67 // we need this here because category names need to be sql escaped
68
try {
69             String JavaDoc tableName = "category";
70             DotHibernate dh = new DotHibernate(Category.class);
71             String JavaDoc sql = "SELECT {" + tableName + ".*} from " + tableName + " " + tableName + ", tree tree, inode "
72                     + tableName + "_1_ where tree.parent = ? and tree.child = " + tableName + ".inode and " + tableName
73                     + "_1_.inode = " + tableName + ".inode and category_name = ?";
74
75             dh.setSQLQuery(sql);
76
77             // dh.setQuery("from inode in class " + c.getName() + " where ? in
78
// inode.parents.elements");
79
dh.setParam(i.getInode());
80             dh.setParam(name);
81             return (Category) dh.load();
82         } catch (Exception JavaDoc e) {
83             Logger.error(CategoryFactory.class, "getCategoryByNameAndParent failed:" + e, e);
84             throw new DotRuntimeException(e.toString());
85         }
86
87     }
88
89     public static Category getParentCategory(Category cat) {
90         return (Category) InodeFactory.getParentOfClass(cat, Category.class);
91     }
92
93     public static List JavaDoc getSiblingCategories(Category cat) {
94         Category parent = getParentCategory(cat);
95         if (parent.getInode() > 0) {
96             return getChildrenCategories(parent);
97         } else {
98             return getTopLevelCategories();
99         }
100     }
101
102     public static java.util.List JavaDoc getOrphanCategories() {
103         DotHibernate dh = new DotHibernate(Category.class);
104         dh
105                 .setQuery("from category in class com.dotmarketing.portlets.categories.model.Category where size(category.parents) =0 and size(category.children) = 0 order by sort_order");
106
107         return dh.list();
108     }
109
110     public static Category getTopCategoryByName(String JavaDoc name) {
111
112         DotHibernate dh = new DotHibernate(Category.class);
113         dh
114                 .setSQLQuery("SELECT {category.*} from category category left join tree tree on category.inode = tree.child, inode category_1_ where tree.child is null and category_1_.inode = category.inode and category_name like ? order by category.sort_order");
115         // dh.setQuery("from category in class
116
// com.dotmarketing.portlets.categories.model.Category where
117
// category_name like ? and size(category.parents) =0 ");
118
dh.setParam(name);
119         return (Category) dh.load();
120
121     }
122
123     public static java.util.List JavaDoc getTopLevelCategories() {
124
125         DotHibernate dh = new DotHibernate(Category.class);
126         dh
127                 .setSQLQuery("SELECT {category.*} from category category left join tree tree on category.inode = tree.child, inode category_1_ where tree.child is null and category_1_.inode = category.inode order by category.sort_order");
128         return dh.list();
129
130     }
131
132     public static void flushCachedPageCategories() {
133
134     }
135
136     public static java.util.List JavaDoc getChildrenCategories(Inode o) {
137
138         return InodeFactory.getChildrenClassByOrder(o, Category.class, "sort_order");
139
140     }
141
142     public static java.util.List JavaDoc getChildrenCategories(String JavaDoc o) {
143
144         return getChildrenCategories(InodeFactory.getInode(o, Category.class));
145
146     }
147
148     public static java.util.List JavaDoc getChildrenCategories(Inode o, String JavaDoc orderby) {
149
150         return InodeFactory.getChildrenClass(o, Category.class, orderby);
151
152     }
153
154     @SuppressWarnings JavaDoc("unchecked")
155     public static List JavaDoc getCategoryTree(Category cat, List JavaDoc l) {
156
157         try {
158             if (cat.getInode() > 0) {
159                 l.add(0, cat);
160             }
161             Category parent = (Category) InodeFactory.getParentsOfClass(cat, Category.class).get(0);
162             return getCategoryTree(parent, l);
163         } catch (Exception JavaDoc e) {
164             Category fakeCat = new Category();
165             fakeCat.setCategoryName("Top Level");
166             l.add(0, fakeCat);
167             return l;
168         }
169     }
170
171     public static java.util.List JavaDoc getUserCategories() {
172         // Category cat = CategoryFactory.getCategoryByName("");
173
Entity entity = EntityFactory.getEntity("UserProxy");
174         List JavaDoc cats = EntityFactory.getEntityCategories(entity);
175         return cats;
176     }
177
178     public static void AddUserCategoriesToRequest(HttpServletRequest JavaDoc request) {
179
180         // Category cat = CategoryFactory.getCategoryByName("");
181

182         Entity entity = EntityFactory.getEntity("UserProxy");
183         List JavaDoc cats = EntityFactory.getEntityCategories(entity);
184         List JavaDoc<Category> newCats = new ArrayList JavaDoc<Category>();
185         Iterator JavaDoc catsIter = cats.iterator();
186
187         while (catsIter.hasNext()) {
188             Category category = (Category) catsIter.next();
189             List JavaDoc children = InodeFactory.getChildrenClassByOrder(category, Category.class, "sort_order");
190             if (children.size() > 0) {
191                 request.setAttribute(String.valueOf(category.getInode()), children);
192                 newCats.add(category);
193             }
194         }
195         request.setAttribute("categories", newCats);
196     }
197
198     public static void AddCategoriesToRequest(String JavaDoc entityName, HttpServletRequest JavaDoc request) {
199
200         Entity entity = EntityFactory.getEntity(entityName);
201         List JavaDoc cats = EntityFactory.getEntityCategories(entity);
202         List JavaDoc<Category> newCats = new ArrayList JavaDoc<Category>();
203         Iterator JavaDoc catsIter = cats.iterator();
204
205         while (catsIter.hasNext()) {
206             Category category = (Category) catsIter.next();
207             List JavaDoc children = InodeFactory.getChildrenClassByOrder(category, Category.class, "sort_order");
208             if (children.size() > 0) {
209                 request.setAttribute(String.valueOf(category.getInode()), children);
210                 newCats.add(category);
211             }
212         }
213         request.setAttribute(entityName, newCats);
214     }
215 }
216
Popular Tags