Salome HOME
Id now is Long instead of Integer. First unit test is created. hibernate-3.5.jar...
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / service / KnowledgeElementServiceImpl.java
1 /*****************************************************************************
2  * Company         EURIWARE
3  * Application     SIMAN
4  * File            $Id$ 
5  * Creation date   06.10.2012
6  * @author         $Author$
7  * @version        $Revision$
8  *****************************************************************************/
9
10 package org.splat.service; 
11
12 import org.splat.dal.bo.som.KnowledgeElement;
13 import org.splat.dal.bo.som.ProgressState;
14 import org.splat.dal.dao.kernel.GenericDAO;
15 import org.splat.dal.dao.som.Database;
16 import org.splat.dal.dao.som.KnowledgeElementDAO;
17 import org.splat.kernel.InvalidPropertyException;
18 import org.splat.service.technical.IndexService;
19
20 /**
21  * @author RKV
22  *
23  */
24 public class KnowledgeElementServiceImpl implements KnowledgeElementService {
25
26         private IndexService _indexService;
27         private KnowledgeElementDAO _knowledgeElementDAO;
28
29         public boolean approve(KnowledgeElement knowledgeElement) {
30                 // -------------------------
31                 if (knowledgeElement.getProgressState() != ProgressState.inCHECK)
32                         return false;
33                 knowledgeElement.setProgressState(ProgressState.APPROVED);
34                 return update(knowledgeElement);
35         }
36
37         public boolean demote(KnowledgeElement knowledgeElement) {
38                 // ------------------------
39                 if (knowledgeElement.getProgressState() != ProgressState.APPROVED
40                                 && knowledgeElement.getProgressState() != ProgressState.inCHECK)
41                         return false;
42                 knowledgeElement.setProgressState(ProgressState.inDRAFT);
43                 return update(knowledgeElement);
44         }
45
46         protected boolean update(KnowledgeElement knowledgeElement) {
47                 // -----------------------------
48                 try {
49                         getKnowledgeElementDAO().update(knowledgeElement);
50                         getIndexService().update(knowledgeElement);
51                         return true;
52                 } catch (Exception error) {
53                         // logger.error("Unable to re-index the knowledge '" + getIndex() + "', reason:", error);
54                         return false;
55                 }
56         }
57
58         public boolean promote (KnowledgeElement knowledgeElement) {
59 //  -------------------------
60       if  (knowledgeElement.getProgressState() != ProgressState.inDRAFT) return false;      
61       knowledgeElement.setProgressState(ProgressState.inCHECK);
62       return  update(knowledgeElement);
63     }
64
65     public void rename (KnowledgeElement knowledgeElement, String title) throws InvalidPropertyException {
66       if (title.length() == 0) throw new InvalidPropertyException("name");
67       knowledgeElement.setTitle(title);
68       update(knowledgeElement);
69     }
70
71         public KnowledgeElement selectKnowledgeElement(long index) {
72                 // -----------------------------------------------------------------
73                 StringBuffer query = new StringBuffer(
74                                 "from KnowledgeElement where rid='").append(index).append("'");
75                 KnowledgeElement result = (KnowledgeElement) Database.getSession()
76                                 .createQuery(query.toString()).uniqueResult();
77
78                 result.getOwnerScenario().getOwnerStudy().loadWorkflow();
79                 return result;
80         }
81
82         /**
83          * @return
84          */
85         public IndexService getIndexService() {
86                 return _indexService;
87         }
88
89         public void setIndexService(IndexService indexService) {
90                 _indexService = indexService;
91         }
92
93         /**
94          * @return
95          */
96         public KnowledgeElementDAO getKnowledgeElementDAO() {
97                 return _knowledgeElementDAO;
98         }
99         
100     public void setKnowledgeElementDAO(KnowledgeElementDAO knowledgeElementDAO) {
101                 _knowledgeElementDAO = knowledgeElementDAO;
102         }
103 }