Salome HOME
Siman codebase is refactored. Spring beans are introduced in the context.
[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         /**
72          * @return
73          */
74         public IndexService getIndexService() {
75                 return _indexService;
76         }
77
78         public void setIndexService(IndexService indexService) {
79                 _indexService = indexService;
80         }
81
82         /**
83          * @return
84          */
85         public KnowledgeElementDAO getKnowledgeElementDAO() {
86                 return _knowledgeElementDAO;
87         }
88         
89     public void setKnowledgeElementDAO(KnowledgeElementDAO knowledgeElementDAO) {
90                 _knowledgeElementDAO = knowledgeElementDAO;
91         }
92 }