KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * ArticleDAO.java
3  *
4  * Created on 3. Juli 2004, 23:31
5  */

6
7 package org.contineo.documan.dao;
8
9 import java.util.Collection JavaDoc;
10 import org.apache.log4j.Level;
11 import org.apache.log4j.Logger;
12 import org.apache.ojb.broker.PBKey;
13 import org.apache.ojb.broker.PersistenceBroker;
14 import org.apache.ojb.broker.PersistenceBrokerFactory;
15 import org.apache.ojb.broker.query.Criteria;
16 import org.apache.ojb.broker.query.Query;
17 import org.apache.ojb.broker.query.QueryByCriteria;
18 import org.contineo.core.LoggingManager;
19 import org.contineo.documan.Article;
20
21 /**
22  *
23  * @author Michael Scholz
24  */

25 public class ArticleDAO {
26
27     /**
28      * @uml.property name="broker"
29      * @uml.associationEnd
30      */

31     private PersistenceBroker broker = null;
32
33     /**
34      * @uml.property name="pbkey"
35      * @uml.associationEnd
36      */

37     private PBKey pbkey;
38
39     /**
40      * @uml.property name="logger"
41      * @uml.associationEnd
42      */

43     private Logger logger;
44
45     
46     /** Creates a new instance of ArticleDAO */
47     public ArticleDAO() {
48         logger = LoggingManager.getLogger(this.getClass());
49         pbkey = new PBKey("contineo");
50     }
51     
52     /**
53      * This method persists a article object.
54      * @param article Article to be stored.
55      * @return True if successfully stored in a database.
56      */

57     public boolean store(Article article) {
58         boolean result = true;
59         try {
60             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
61             broker.beginTransaction();
62             broker.store(article);
63             broker.commitTransaction();
64         }
65         catch (Exception JavaDoc e) {
66             broker.abortTransaction();
67             if (logger.isEnabledFor(Level.ERROR))
68                 logger.error(e.getMessage());
69             result = false;
70         } finally {
71             if (broker != null) broker.close();
72         }
73         return result;
74     }
75     
76     /**
77      * This method deletes an article.
78      * @param articleid ArticleID of the article which should be delete.
79      */

80     public boolean delete(int articleid) {
81         boolean result = true;
82         try {
83             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
84             Criteria crit = new Criteria();
85             crit.addEqualTo("co_articleid", new Integer JavaDoc(articleid));
86             Query query = new QueryByCriteria(org.contineo.documan.Article.class, crit);
87             broker.beginTransaction();
88             broker.deleteByQuery(query);
89             broker.commitTransaction();
90         }
91         catch (Exception JavaDoc e) {
92             broker.abortTransaction();
93             if (logger.isEnabledFor(Level.ERROR))
94                 logger.error(e.getMessage());
95             result = false;
96         } finally {
97             if (broker != null) broker.close();
98         }
99         return result;
100     }
101     
102     /**
103      * This method finds an article by its primarykey.
104      * @param articleid Primarykey of the article.
105      * @return Article with given primarykey.
106      */

107     public Article findByPrimaryKey(int articleid) {
108         Article article = new Article();
109         try {
110             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
111             Criteria crit = new Criteria();
112             crit.addEqualTo("co_articleid", new Integer JavaDoc(articleid));
113             Query query = new QueryByCriteria(org.contineo.documan.Article.class, crit);
114             article = (Article)broker.getObjectByQuery(query);
115         }
116         catch (Exception JavaDoc e) {
117             if (logger.isEnabledFor(Level.ERROR))
118                 logger.error(e.getMessage());
119         } finally {
120             if (broker != null) broker.close();
121         }
122         return article;
123     }
124     
125     /**
126      * This method selects all articles of for a given document.
127      * @param docid - ID of the document.
128      */

129     public Collection JavaDoc findByDocId(int docid) {
130         Collection JavaDoc coll = null;
131         try {
132             broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
133             Criteria crit = new Criteria();
134             crit.addEqualTo("co_docid", new Integer JavaDoc(docid));
135             QueryByCriteria query = new QueryByCriteria(org.contineo.documan.Article.class, crit);
136             query.addOrderBy("co_articledate",true);
137             coll = broker.getCollectionByQuery(query);
138         } catch (Exception JavaDoc e) {
139             if (logger.isEnabledFor(Level.ERROR))
140                 logger.error(e.getMessage());
141         } finally {
142             if (broker != null) broker.close();
143         }
144         return coll;
145     }
146 }
147
Popular Tags