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.som.Step;
20 * Project element service implementation.
24 public class ProjectElementServiceImpl implements ProjectElementService {
27 * Injected project settings service.
29 private ProjectSettingsService _projectSettingsService;
33 * @see org.splat.service.ProjectElementService#getFirstStep(org.splat.dal.bo.som.ProjectElement)
35 public Step getFirstStep(ProjectElement elem) {
36 return getSteps(elem)[0];
39 public Step getLastStep(ProjectElement elem) {
40 Step[] mystep = getSteps(elem); // For getting the folders length, if null
41 return mystep[mystep.length - 1];
46 * @see org.splat.service.ProjectElementService#getSteps(org.splat.dal.bo.som.ProjectElement)
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();
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);
59 return elem.getFolders(); // No protection against this object corruption as it would not corrupt the database
63 * Get project settings.
65 * @return Project settings service
67 private ProjectSettingsService getProjectSettings() {
68 return _projectSettingsService;
72 * Set project settings service.
74 * @param projectSettingsService
75 * project settings service
77 public void setProjectSettings(ProjectSettingsService projectSettingsService) {
78 _projectSettingsService = projectSettingsService;