KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.contineo.documan.dao;
2
3 import java.util.Collection JavaDoc;
4
5 import org.apache.log4j.Level;
6 import org.apache.log4j.Logger;
7 import org.apache.ojb.broker.PBKey;
8 import org.apache.ojb.broker.PersistenceBroker;
9 import org.apache.ojb.broker.PersistenceBrokerFactory;
10 import org.apache.ojb.broker.query.Criteria;
11 import org.apache.ojb.broker.query.QueryByCriteria;
12 import org.contineo.core.LoggingManager;
13 import org.contineo.documan.Keywords;
14
15 /**
16  * Created on 31.08.2004
17  * @author Michael Scholz
18  */

19 public class KeywordDAO {
20     
21     private PersistenceBroker broker = null;
22     private PBKey pbkey;
23     private Logger logger;
24
25     /**
26      *
27      */

28     public KeywordDAO() {
29         logger = LoggingManager.getLogger(this.getClass());
30         pbkey = new PBKey("contineo");
31     }
32
33     /**
34      * This method selects all keywords of a given document.
35      * @param docid - ID of the document.
36      */

37     public Collection JavaDoc findByDocId(int docid) {
38         Collection JavaDoc coll = null;
39         try {
40             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
41             Criteria crit = new Criteria();
42             crit.addEqualTo("co_docid", new Integer JavaDoc(docid));
43             QueryByCriteria query = new QueryByCriteria(org.contineo.documan.Keywords.class, crit);
44             query.addOrderBy("co_docid",true);
45             coll = broker.getCollectionByQuery(query);
46         } catch (Exception JavaDoc e) {
47             if (logger.isEnabledFor(Level.ERROR))
48                 logger.error(e.getMessage());
49         } finally {
50             if (broker != null) broker.close();
51         }
52         return coll;
53     }
54     
55     /**
56      * This method selects all keywords starting with a specified letter.
57      * @param letter - First letter of the wanted keywords.
58      */

59     public Collection JavaDoc<Keywords> findByFirstLetter(String JavaDoc letter, String JavaDoc username) {
60         Collection JavaDoc<Keywords> coll = null;
61         try {
62             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
63             DocumentDAO docDao = new DocumentDAO();
64             Collection JavaDoc precoll = docDao.findByUserName(username);
65             if (precoll == null || precoll.size() == 0)
66                 return null;
67             Criteria crit = new Criteria();
68             crit.addIn("co_docid", precoll);
69             crit.addLike("co_keyword", letter + "%");
70             QueryByCriteria query = new QueryByCriteria(org.contineo.documan.Keywords.class, crit);
71             query.addOrderBy("co_keyword", true);
72             coll = broker.getCollectionByQuery(query);
73         } catch (Exception JavaDoc e) {
74             if (logger.isEnabledFor(Level.ERROR))
75                 logger.error(e.getMessage());
76         } finally {
77             if (broker != null) broker.close();
78         }
79         return coll;
80     }
81 }
82
Popular Tags