1 /*****************************************************************************
5 * Creation date 06.10.2012
8 *****************************************************************************/
10 package org.splat.service;
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;
24 public class KnowledgeElementServiceImpl implements KnowledgeElementService {
26 private IndexService _indexService;
27 private KnowledgeElementDAO _knowledgeElementDAO;
29 public boolean approve(KnowledgeElement knowledgeElement) {
30 // -------------------------
31 if (knowledgeElement.getProgressState() != ProgressState.inCHECK)
33 knowledgeElement.setProgressState(ProgressState.APPROVED);
34 return update(knowledgeElement);
37 public boolean demote(KnowledgeElement knowledgeElement) {
38 // ------------------------
39 if (knowledgeElement.getProgressState() != ProgressState.APPROVED
40 && knowledgeElement.getProgressState() != ProgressState.inCHECK)
42 knowledgeElement.setProgressState(ProgressState.inDRAFT);
43 return update(knowledgeElement);
46 protected boolean update(KnowledgeElement knowledgeElement) {
47 // -----------------------------
49 getKnowledgeElementDAO().update(knowledgeElement);
50 getIndexService().update(knowledgeElement);
52 } catch (Exception error) {
53 // logger.error("Unable to re-index the knowledge '" + getIndex() + "', reason:", error);
58 public boolean promote (KnowledgeElement knowledgeElement) {
59 // -------------------------
60 if (knowledgeElement.getProgressState() != ProgressState.inDRAFT) return false;
61 knowledgeElement.setProgressState(ProgressState.inCHECK);
62 return update(knowledgeElement);
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);
74 public IndexService getIndexService() {
78 public void setIndexService(IndexService indexService) {
79 _indexService = indexService;
85 public KnowledgeElementDAO getKnowledgeElementDAO() {
86 return _knowledgeElementDAO;
89 public void setKnowledgeElementDAO(KnowledgeElementDAO knowledgeElementDAO) {
90 _knowledgeElementDAO = knowledgeElementDAO;