KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > documan > dao > TermDAO


1 /*
2  * Created on 21.03.2004
3  *
4  * To change the template for this generated file go to
5  * Window>Preferences>Java>Code Generation>Code and Comments
6  */

7 package org.contineo.documan.dao;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Collection JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import org.apache.log4j.Level;
13 import org.apache.log4j.Logger;
14 import org.apache.ojb.broker.PBKey;
15 import org.apache.ojb.broker.PersistenceBroker;
16 import org.apache.ojb.broker.PersistenceBrokerFactory;
17 import org.apache.ojb.broker.query.Criteria;
18 import org.apache.ojb.broker.query.Query;
19 import org.apache.ojb.broker.query.QueryByCriteria;
20 import org.contineo.core.LoggingManager;
21 import org.contineo.documan.Term;
22 /**
23  * @author Michael Scholz
24  *
25  * To change the template for this generated type comment go to
26  * Window>Preferences>Java>Code Generation>Code and Comments
27  */

28 public class TermDAO {
29
30     /**
31      * @uml.property name="broker"
32      * @uml.associationEnd
33      */

34     private PersistenceBroker broker = null;
35
36     /**
37      * @uml.property name="pbkey"
38      * @uml.associationEnd
39      */

40     private PBKey pbkey;
41
42     /**
43      * @uml.property name="logger"
44      * @uml.associationEnd
45      */

46     private Logger logger;
47
48     public TermDAO() {
49         logger = LoggingManager.getLogger(this.getClass());
50         pbkey = new PBKey("contineo");
51     }
52     
53     /**
54      * This method persist a term-object.
55      * @param term
56      * @return
57      */

58     public boolean store(Term term) {
59         boolean result = true;
60         try {
61             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
62             broker.beginTransaction();
63             broker.store(term);
64             broker.commitTransaction();
65         }
66         catch (Exception JavaDoc e) {
67             broker.abortTransaction();
68             if (logger.isEnabledFor(Level.ERROR))
69                 logger.error(e.getMessage());
70             result = false;
71         } finally {
72             if (broker != null) broker.close();
73         }
74         return result;
75     }
76     
77     /**
78      * This method deletes all terms of a document.
79      * @param menuid - Id of the document.
80      * @return
81      */

82     public boolean delete(int menuid) {
83         boolean result = true;
84         try {
85             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
86             Criteria crit = new Criteria();
87             crit.addEqualTo("co_menuid", new Integer JavaDoc(menuid));
88             Query query = new QueryByCriteria(org.contineo.documan.Term.class, crit);
89             broker.beginTransaction();
90             broker.deleteByQuery(query);
91             broker.commitTransaction();
92         }
93         catch (Exception JavaDoc e) {
94             broker.abortTransaction();
95             if (logger.isEnabledFor(Level.ERROR))
96                 logger.error(e.getMessage());
97             result = false;
98         } finally {
99             if (broker != null) broker.close();
100         }
101         return result;
102     }
103     
104     /**
105      * This method selects one term of a document which has a same stem like a reference document.
106      * @param docid - ID of reference document.
107      * @return
108      */

109     public Collection JavaDoc findByStem(int menuid) {
110         Collection JavaDoc result = new ArrayList JavaDoc();
111         try {
112             Collection JavaDoc coll = findByMenuid(menuid);
113             Collection JavaDoc<String JavaDoc> preColl = new ArrayList JavaDoc<String JavaDoc>();
114             Iterator JavaDoc iter = coll.iterator();
115             while (iter.hasNext()) {
116                 Term term = (Term)iter.next();
117                 preColl.add(term.getStem());
118             }
119             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
120             Criteria crit = new Criteria();
121             if (preColl.size() != 0) {
122                 crit.addIn("co_stem", preColl);
123             }
124             crit.addNotEqualTo("co_menuid", new Integer JavaDoc(menuid));
125             QueryByCriteria query = new QueryByCriteria(org.contineo.documan.Term.class, crit);
126             query.addGroupBy("co_menuid");
127             query.addGroupBy("co_stem");
128             query.addGroupBy("co_value");
129             query.addGroupBy("co_wordcount");
130             query.addGroupBy("co_word");
131             result = broker.getCollectionByQuery(query);
132         }
133         catch (Exception JavaDoc e) {
134             if (logger.isEnabledFor(Level.ERROR))
135                 logger.error(e.getMessage());
136         } finally {
137             if (broker != null) broker.close();
138         }
139         return result;
140     }
141     
142     /**
143      * Finds all term entries of a document.
144      * @param docid ID of the document
145      * @return
146      */

147     public Collection JavaDoc findByMenuid(int menuid) {
148         Collection JavaDoc result = new ArrayList JavaDoc();
149         try {
150             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
151             Criteria crit = new Criteria();
152             crit.addEqualTo("co_menuid", new Integer JavaDoc(menuid));
153             Query query = new QueryByCriteria(org.contineo.documan.Term.class, crit);
154             result = broker.getCollectionByQuery(query);
155         }
156         catch (Exception JavaDoc e) {
157             if (logger.isEnabledFor(Level.ERROR))
158                 logger.error(e.getMessage());
159         } finally {
160             if (broker != null) broker.close();
161         }
162         return result;
163     }
164 }
165
Popular Tags