]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman-Common/src/org/splat/service/KnowledgeElementTypeServiceImpl.java
Salome HOME
More business logic has been moved from BO to services. ServiceLocator is created...
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / service / KnowledgeElementTypeServiceImpl.java
1 /*****************************************************************************
2  * Company         OPEN CASCADE
3  * Application     SIMAN
4  * File            $Id$ 
5  * Creation date   19.10.2012
6  * @author         $Author$
7  * @version        $Revision$
8  * @copyright      OPEN CASCADE 2012
9  *****************************************************************************/
10
11 package org.splat.service; 
12
13 import java.util.List;
14
15 import org.hibernate.criterion.Order;
16 import org.hibernate.criterion.Restrictions;
17 import org.splat.dal.bo.som.KnowledgeElementType;
18 import org.splat.dal.bo.som.ProgressState;
19 import org.splat.dal.dao.som.KnowledgeElementTypeDAO;
20
21 /**
22  * KnowledgeElementTypeService implementation for working with knowledge types.
23  *
24  * @author <a href="mailto:roman.kozlov@opencascade.com">Roman Kozlov (RKV)</a>
25  */
26 public class KnowledgeElementTypeServiceImpl implements
27                 KnowledgeElementTypeService {
28
29         /**
30          * Injected knowledge element type DAO.
31          */
32         private KnowledgeElementTypeDAO _knowledgeElementTypeDAO;
33
34         /**
35          * Create a knowledge element type with the given name.
36          * 
37          * @param name
38          *            the new type name
39          * @return the created knowledge type
40          */
41         public KnowledgeElementType createType(String name) {
42                 // TODO: Check for duplicate definition
43                 KnowledgeElementType kelt = new KnowledgeElementType(name);
44                 getKnowledgeElementTypeDAO().create(kelt);
45                 return kelt;
46         }
47
48         /**
49          * Get all knowledge types from the database.
50          * 
51          * @return the list of all knowledge types
52          */
53         public List<KnowledgeElementType> selectAllTypes() {
54                 return getKnowledgeElementTypeDAO().getAll(Order.asc("rid"));
55         }
56
57         /**
58          * Get knowledge types which have the given progress state.
59          * 
60          * @param state
61          *            the progress state
62          * @return the list of found knowledge types
63          */
64         public List<KnowledgeElementType> selectTypesWhere(ProgressState state) {
65                 return getKnowledgeElementTypeDAO().getFilteredList(
66                                 Restrictions.eq("state", state), Order.asc("rid"));
67         }
68
69         /**
70          * Find a knowledge type by its name.
71          * 
72          * @param name
73          *            the knowledge type name
74          * @return the found knowledge type
75          */
76         public KnowledgeElementType selectType(String name) {
77                 return getKnowledgeElementTypeDAO().findByCriteria(
78                                 Restrictions.eq("name", name));
79         }
80
81         /**
82          * Get a knowledge type by its id.
83          * 
84          * @param index
85          *            the id of a knowledge type
86          * @return the found knowledge type
87          */
88         public KnowledgeElementType selectType(long index) {
89                 return getKnowledgeElementTypeDAO().get(index);
90         }
91
92         /**
93          * Get the knowledgeElementTypeDAO.
94          * 
95          * @return the knowledgeElementTypeDAO
96          */
97         public KnowledgeElementTypeDAO getKnowledgeElementTypeDAO() {
98                 return _knowledgeElementTypeDAO;
99         }
100
101         /**
102          * Set the knowledgeElementTypeDAO.
103          * 
104          * @param knowledgeElementTypeDAO
105          *            the knowledgeElementTypeDAO to set
106          */
107         public void setKnowledgeElementTypeDAO(
108                         KnowledgeElementTypeDAO knowledgeElementTypeDAO) {
109                 _knowledgeElementTypeDAO = knowledgeElementTypeDAO;
110         }
111
112 }