Salome HOME
Copyrights update 2015.
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / service / KnowledgeElementTypeService.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-2015
9  *****************************************************************************/
10
11 package org.splat.service;
12
13 import java.util.List;
14
15 import org.splat.dal.bo.som.KnowledgeElementType;
16 import org.splat.dal.bo.som.ProgressState;
17
18 /**
19  * The service interface for working with knowledge element types.
20  * 
21  * @author <a href="mailto:roman.kozlov@opencascade.com">Roman Kozlov (RKV)</a>
22  */
23 public interface KnowledgeElementTypeService {
24
25         /**
26          * Find a knowledge type by its name.
27          * 
28          * @param name
29          *            the knowledge type name
30          * @return the found knowledge type
31          */
32         KnowledgeElementType selectType(String name);
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         KnowledgeElementType createType(String name);
42
43         /**
44          * Get all knowledge types from the database.
45          * 
46          * @return the list of all knowledge types
47          */
48         List<KnowledgeElementType> selectAllTypes();
49
50         /**
51          * Get knowledge types which have the given progress state.
52          * 
53          * @param state
54          *            the progress state
55          * @return the list of found knowledge types
56          */
57         List<KnowledgeElementType> selectTypesWhere(ProgressState state);
58
59         /**
60          * Get a knowledge type by its id.
61          * 
62          * @param index
63          *            the id of a knowledge type
64          * @return the found knowledge type
65          */
66         KnowledgeElementType selectType(long index);
67
68         /**
69          * Approve the knowledge type.
70          * 
71          * @param kelt
72          *            the knowledge type to approve
73          * @return true if approval succeeded
74          */
75         boolean approve(KnowledgeElementType kelt);
76
77         /**
78          * Reserves this type for the management of simulation contexts. For being able to get the studies in which simulation contexts are
79          * used, all study scenarios are indexed through this knowledge element type, whether they include knowledge elements or not.
80          * 
81          * @param kelt
82          *            the knowledge type to approve
83          * @return true if approval succeeded
84          */
85         boolean reserve(KnowledgeElementType kelt);
86 }