1 /*****************************************************************************
5 * Creation date 12.03.2013
8 * @copyright OPEN CASCADE 2012-2014
9 *****************************************************************************/
11 package org.splat.service.technical;
13 import java.util.ArrayList;
14 import java.util.List;
16 import org.splat.dal.bo.som.ProjectElement;
19 * Study steps configuration service.
21 * @author <a href="mailto:roman.kozlov@opencascade.com">Roman Kozlov (RKV)</a>
23 public class StepsConfigServiceImpl implements StepsConfigService {
26 * Ordered list of (transient) study steps.
28 private transient final List<ProjectSettingsService.Step> _steps = new ArrayList<ProjectSettingsService.Step>();
31 * Get steps of the given project element (study or scenario).
34 * the project element (study or scenario)
35 * @return the list of steps
37 public List<ProjectSettingsService.Step> getStepsOf(
38 final Class<? extends ProjectElement> level) {
39 List<ProjectSettingsService.Step> result = new ArrayList<ProjectSettingsService.Step>();
41 for (int i = 0; i < _steps.size(); i++) {
42 ProjectSettingsService.Step step = _steps.get(i);
43 if (step.appliesTo(level)) {
51 * Check whether the workflow step involves a project element(s) of the given level.
56 * the project element level
57 * @return true if there are project element's steps of the given level before the given step
59 public boolean stepInvolves(final int stepNum,
60 final Class<? extends ProjectElement> level) {
62 for (int i = 0; i < _steps.size(); i++) {
63 ProjectSettingsService.Step step = _steps.get(i);
64 if (step.appliesTo(level) && step.getNumber() <= stepNum) {
77 public List<ProjectSettingsService.Step> getSteps() {