KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.dotmarketing.factories;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6
7 import net.sf.hibernate.HibernateException;
8
9 import com.dotmarketing.beans.Inode;
10 import com.dotmarketing.beans.Tree;
11 import com.dotmarketing.db.DotHibernate;
12 import com.dotmarketing.util.Logger;
13
14 /**
15  *
16  * @author maria
17  */

18 public class TreeFactory {
19
20     public static Tree getTree(String JavaDoc x) {
21         try {
22             return (Tree) new DotHibernate(Tree.class).load(Long.parseLong(x));
23         } catch (Exception JavaDoc e) {
24             return (Tree) new DotHibernate(Tree.class).load(x);
25         }
26     }
27
28     public static Tree getTree(Inode parent, Inode child) {
29         String JavaDoc relationType = "child";
30         return getTree(parent, child, relationType);
31     }
32
33     public static Tree getTree(long parent, long child) {
34         String JavaDoc relationType = "child";
35         return getTree(parent, child, relationType);
36     }
37
38     public static Tree getTree(long parent, long child, String JavaDoc relationType) {
39         try {
40             DotHibernate dh = new DotHibernate(Tree.class);
41             dh
42                     .setQuery("from tree in class com.dotmarketing.beans.Tree where parent = ? and child = ? and relation_type = ?");
43             dh.setParam(parent);
44             dh.setParam(child);
45             dh.setParam(relationType);
46
47             return (Tree) dh.load();
48         } catch (Exception JavaDoc e) {
49             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
50         }
51
52         return new Tree();
53     }
54
55     public static Tree getTree(Inode parent, Inode child, String JavaDoc relationType) {
56         return getTree(parent.getInode(), child.getInode(), relationType);
57     }
58
59     public static Tree getTreeByChildAndRelationType(Inode child, String JavaDoc relationType) {
60         try {
61             DotHibernate dh = new DotHibernate(Tree.class);
62             dh.setQuery("from tree in class com.dotmarketing.beans.Tree where child = ? and relation_type = ?");
63             dh.setParam(child.getInode());
64             dh.setParam(relationType);
65
66             return (Tree) dh.load();
67         } catch (Exception JavaDoc e) {
68             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
69         }
70
71         return new Tree();
72     }
73
74     public static Tree getTreeByParentAndRelationType(Inode parent, String JavaDoc relationType) {
75         try {
76             DotHibernate dh = new DotHibernate(Tree.class);
77             dh.setQuery("from tree in class com.dotmarketing.beans.Tree where parent = ? and relation_type = ?");
78             dh.setParam(parent.getInode());
79             dh.setParam(relationType);
80
81             return (Tree) dh.load();
82         } catch (Exception JavaDoc e) {
83             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
84         }
85
86         return new Tree();
87     }
88
89     @SuppressWarnings JavaDoc("unchecked")
90     public static List JavaDoc<Tree> getTreesByParentAndRelationType(Inode parent, String JavaDoc relationType) {
91         try {
92             DotHibernate dh = new DotHibernate(Tree.class);
93             dh
94                     .setQuery("from tree in class com.dotmarketing.beans.Tree where parent = ? and relation_type = ? order by tree_order asc");
95             dh.setParam(parent.getInode());
96             dh.setParam(relationType);
97
98             return dh.list();
99         } catch (Exception JavaDoc e) {
100             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
101         }
102
103         return new ArrayList JavaDoc<Tree>();
104     }
105
106     @SuppressWarnings JavaDoc("unchecked")
107     public static List JavaDoc<Tree> getTreesByChildAndRelationType(Inode child, String JavaDoc relationType) {
108         try {
109             DotHibernate dh = new DotHibernate(Tree.class);
110             dh
111                     .setQuery("from tree in class com.dotmarketing.beans.Tree where child = ? and relation_type = ? order by tree_order asc");
112             dh.setParam(child.getInode());
113             dh.setParam(relationType);
114
115             return dh.list();
116         } catch (Exception JavaDoc e) {
117             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
118         }
119
120         return new ArrayList JavaDoc<Tree>();
121     }
122
123     @SuppressWarnings JavaDoc("unchecked")
124     public static List JavaDoc<Tree> getTreesByRelationType(String JavaDoc relationType) {
125         try {
126             DotHibernate dh = new DotHibernate(Tree.class);
127             dh.setQuery("from tree in class com.dotmarketing.beans.Tree where relation_type = ?");
128             dh.setParam(relationType);
129
130             return dh.list();
131         } catch (Exception JavaDoc e) {
132             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
133         }
134
135         return new ArrayList JavaDoc<Tree>();
136     }
137
138     @SuppressWarnings JavaDoc("unchecked")
139     public static List JavaDoc<Tree> getTreesByParent(Inode inode) {
140         try {
141             DotHibernate dh = new DotHibernate(Tree.class);
142             dh.setQuery("from tree in class com.dotmarketing.beans.Tree where parent = ?");
143             dh.setParam(inode.getInode());
144
145             return dh.list();
146         } catch (Exception JavaDoc e) {
147             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
148         }
149
150         return new ArrayList JavaDoc<Tree>();
151     }
152
153     public static List JavaDoc getTreesByChild(Inode inode) {
154         try {
155             DotHibernate dh = new DotHibernate(Tree.class);
156             dh.setQuery("from tree in class com.dotmarketing.beans.Tree where child = ?");
157             dh.setParam(inode.getInode());
158
159             return dh.list();
160         } catch (Exception JavaDoc e) {
161             Logger.warn(TreeFactory.class, "getTree failed:" + e, e);
162         }
163
164         return new ArrayList JavaDoc();
165     }
166
167     public static void swapTrees(Inode i1, Inode i2) throws HibernateException {
168
169         List JavaDoc<Tree> newTrees = new ArrayList JavaDoc<Tree>();
170
171         // Removing actual trees and creating the new ones
172
Iterator JavaDoc it = getTreesByParent(i1).iterator();
173         while (it.hasNext()) {
174             Tree tree = (Tree) it.next();
175             newTrees.add(new Tree(i2.getInode(), tree.getChild(), tree.getRelationType(), tree.getTreeOrder()));
176             deleteTree(tree);
177         }
178
179         it = getTreesByChild(i1).iterator();
180         while (it.hasNext()) {
181             Tree tree = (Tree) it.next();
182             newTrees.add(new Tree(tree.getParent(), i2.getInode(), tree.getRelationType(), tree.getTreeOrder()));
183             deleteTree(tree);
184         }
185
186         it = getTreesByParent(i2).iterator();
187         while (it.hasNext()) {
188             Tree tree = (Tree) it.next();
189             newTrees.add(new Tree(i1.getInode(), tree.getChild(), tree.getRelationType(), tree.getTreeOrder()));
190             deleteTree(tree);
191         }
192
193         it = getTreesByChild(i2).iterator();
194         while (it.hasNext()) {
195             Tree tree = (Tree) it.next();
196             newTrees.add(new Tree(tree.getParent(), i1.getInode(), tree.getRelationType(), tree.getTreeOrder()));
197             deleteTree(tree);
198         }
199
200         // Saving new trees
201
it = newTrees.iterator();
202         while (it.hasNext()) {
203             Tree tree = (Tree) it.next();
204             saveTree(tree);
205         }
206         DotHibernate.flush();
207         DotHibernate.getSession().refresh(i1);
208         DotHibernate.getSession().refresh(i2);
209
210     }
211
212     public static void deleteTree(Tree tree) {
213         DotHibernate.delete(tree);
214     }
215
216     public static void deleteTreesByParent(Inode parent) {
217         DotHibernate.delete("from tree in class com.dotmarketing.beans.Tree where tree.parent = " + parent.getInode());
218     }
219
220     public static void deleteTreesByChild(Inode child) {
221         DotHibernate.delete("from tree in class com.dotmarketing.beans.Tree where tree.child = " + child.getInode());
222     }
223
224     public static void deleteTreesByRelationType(String JavaDoc relationType) {
225         DotHibernate
226                 .delete("from tree in class com.dotmarketing.beans.Tree where tree.relation_type = " + relationType);
227     }
228
229     public static void saveTree(Tree tree) {
230         DotHibernate.saveOrUpdate(tree);
231     }
232
233 }
234
Popular Tags