1 /*****************************************************************************
5 * Creation date 07.10.2012
8 *****************************************************************************/
10 package org.splat.service;
12 import java.util.Iterator;
13 import java.util.List;
15 import org.splat.dal.bo.som.ProjectElement;
16 import org.splat.service.technical.ProjectSettingsService;
17 import org.splat.service.technical.ProjectSettingsServiceImpl;
18 import org.splat.som.Step;
24 public class ProjectElementServiceImpl implements ProjectElementService {
26 private ProjectSettingsService _projectSettingsService;
28 public Step getFirstStep(ProjectElement elem) {
29 // ---------------------------
30 return getSteps(elem)[0];
33 public Step getLastStep(ProjectElement elem) {
34 // --------------------------
35 Step[] mystep = getSteps(elem); // For getting the folders length, if null
36 return mystep[mystep.length - 1];
39 public Step[] getSteps(ProjectElement elem) {
40 // -------------------------
41 if (elem.getFolders() == null) {
42 List<ProjectSettingsService.Step> steps = getProjectSettings()
43 .getStepsOf(elem.getClass());
44 Iterator<ProjectSettingsService.Step> nstep = steps.iterator();
46 elem.setFolders(new Step[steps.size()]);
47 for (int i = 0; i < elem.getFolders().length; i++) {
48 elem.getFolders()[i] = new Step(nstep.next(), elem);
51 return elem.getFolders(); // No protection against this object corruption as it would not corrupt the database
55 * Get project settings.
57 * @return Project settings service
59 private ProjectSettingsService getProjectSettings() {
60 return _projectSettingsService;
64 * Set project settings service.
66 * @param projectSettingsService
67 * project settings service
69 public void setProjectSettings(ProjectSettingsService projectSettingsService) {
70 _projectSettingsService = projectSettingsService;