1 7 package org.contineo.documan.dao; 8 9 import java.util.ArrayList ; 10 import java.util.Collection ; 11 import java.util.Iterator ; 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 28 public class TermDAO { 29 30 34 private PersistenceBroker broker = null; 35 36 40 private PBKey pbkey; 41 42 46 private Logger logger; 47 48 public TermDAO() { 49 logger = LoggingManager.getLogger(this.getClass()); 50 pbkey = new PBKey("contineo"); 51 } 52 53 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 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 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 (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 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 109 public Collection findByStem(int menuid) { 110 Collection result = new ArrayList (); 111 try { 112 Collection coll = findByMenuid(menuid); 113 Collection <String > preColl = new ArrayList <String >(); 114 Iterator 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 (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 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 147 public Collection findByMenuid(int menuid) { 148 Collection result = new ArrayList (); 149 try { 150 broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey); 151 Criteria crit = new Criteria(); 152 crit.addEqualTo("co_menuid", new Integer (menuid)); 153 Query query = new QueryByCriteria(org.contineo.documan.Term.class, crit); 154 result = broker.getCollectionByQuery(query); 155 } 156 catch (Exception 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
|