]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman-Common/src/org/splat/service/ProjectElementServiceImpl.java
Salome HOME
Refactoring of Database, replacing SQL by DAOs calls. Methods for search by criteria...
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / service / ProjectElementServiceImpl.java
1 /*****************************************************************************
2  * Company         EURIWARE
3  * Application     SIMAN
4  * File            $Id$ 
5  * Creation date   07.10.2012
6  * @author         $Author$
7  * @version        $Revision$
8  *****************************************************************************/
9
10 package org.splat.service;
11
12 import java.util.Iterator;
13 import java.util.List;
14
15 import org.splat.dal.bo.som.ProjectElement;
16 import org.splat.service.technical.ProjectSettingsService;
17 import org.splat.som.Step;
18
19 /**
20  * Project element service implementation.
21  * @author RKV
22  * 
23  */
24 public class ProjectElementServiceImpl implements ProjectElementService {
25
26         /**
27          * Injected project settings service.
28          */
29         private ProjectSettingsService _projectSettingsService;
30
31         /** 
32          * {@inheritDoc}
33          * @see org.splat.service.ProjectElementService#getFirstStep(org.splat.dal.bo.som.ProjectElement)
34          */
35         public Step getFirstStep(ProjectElement elem) {
36                 return getSteps(elem)[0];
37         }
38
39         public Step getLastStep(ProjectElement elem) {
40                 Step[] mystep = getSteps(elem); // For getting the folders length, if null
41                 return mystep[mystep.length - 1];
42         }
43
44         /** 
45          * {@inheritDoc}
46          * @see org.splat.service.ProjectElementService#getSteps(org.splat.dal.bo.som.ProjectElement)
47          */
48         public Step[] getSteps(ProjectElement elem) {
49                 if (elem.getFolders() == null) {
50                         List<ProjectSettingsService.Step> steps = getProjectSettings()
51                                         .getStepsOf(elem.getClass());
52                         Iterator<ProjectSettingsService.Step> nstep = steps.iterator();
53
54                         elem.setFolders(new Step[steps.size()]);
55                         for (int i = 0; i < elem.getFolders().length; i++) {
56                                 elem.getFolders()[i] = new Step(nstep.next(), elem);
57                         }
58                 }
59                 return elem.getFolders(); // No protection against this object corruption as it would not corrupt the database
60         }
61
62         /**
63          * Get project settings.
64          * 
65          * @return Project settings service
66          */
67         private ProjectSettingsService getProjectSettings() {
68                 return _projectSettingsService;
69         }
70
71         /**
72          * Set project settings service.
73          * 
74          * @param projectSettingsService
75          *            project settings service
76          */
77         public void setProjectSettings(ProjectSettingsService projectSettingsService) {
78                 _projectSettingsService = projectSettingsService;
79         }
80 }