1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package net.sf.pmr.agilePlanning.service;
36
37 import java.util.Date;
38 import java.util.Set;
39
40 import net.sf.pmr.agilePlanning.AgilePlanningObjectFactory;
41 import net.sf.pmr.agilePlanning.domain.release.Release;
42 import net.sf.pmr.agilePlanning.domain.release.ReleaseRepository;
43 import net.sf.pmr.agilePlanning.domain.release.ReleaseValidator;
44 import net.sf.pmr.keopsframework.domain.validation.Errors;
45
46 /***
47 * @author Arnaud Prost (arnaud.prost@gmail.com)
48 */
49 public class ReleaseServiceImpl implements ReleaseService {
50
51 /***
52 * Validator
53 */
54 private ReleaseValidator releaseValidator;
55
56 /***
57 * Repository
58 */
59 private ReleaseRepository releaseRepository;
60
61 /***
62 * constructor
63 * @param releaseValidator releaseValidator
64 * @param releaseRepository releaseValidator
65 */
66 public ReleaseServiceImpl(final ReleaseValidator releaseValidator, final ReleaseRepository releaseRepository) {
67 super();
68 this.releaseValidator = releaseValidator;
69 this.releaseRepository = releaseRepository;
70 }
71
72 /***
73 * @see net.sf.pmr.agilePlanning.service.ReleaseService#add(int, String, java.util.Date)
74 */
75 public Errors add(final int projectPersistanceId, final String number, final Date date) {
76
77
78 Release release = AgilePlanningObjectFactory.getRelease();
79 release.getBasicProject().setPersistanceId(projectPersistanceId);
80 release.setDate(date);
81 release.setNumber(number);
82
83
84 Errors errors = releaseValidator.validate(release);
85
86
87 if (!errors.hasErrors()) {
88 releaseRepository.addOrUpdate(release);
89 }
90
91 return errors;
92 }
93
94
95
96
97
98 /***
99 * @see net.sf.pmr.agilePlanning.service.ReleaseService#findByPersistanceId(int)
100 */
101 public Release findByPersistanceId(final int persistanceId) {
102 return releaseRepository.findByPersistanceId(persistanceId);
103 }
104
105 /***
106 * @see net.sf.pmr.agilePlanning.service.ReleaseService#findByProjectPersistanceId(int)
107 */
108 public Set findByProjectPersistanceId(final int projectPersistanceId) {
109 return releaseRepository.findByProjectPersistanceId(projectPersistanceId);
110 }
111
112 /***
113 * @see net.sf.pmr.agilePlanning.service.ReleaseService#update(int, java.lang.String, java.util.Date, int, long)
114 */
115 public Errors update(final int projectPersistanceId, final String number, final Date date, final int persistanceId, final long persistanceVersion) {
116
117
118 Release release = AgilePlanningObjectFactory.getRelease();
119 release.getBasicProject().setPersistanceId(projectPersistanceId);
120 release.setDate(date);
121 release.setNumber(number);
122 release.setPersistanceId(persistanceId);
123 release.setPersistanceVersion(persistanceVersion);
124
125
126 Errors errors = releaseValidator.validate(release);
127
128
129 if (!errors.hasErrors()) {
130 releaseRepository.addOrUpdate(release);
131 }
132
133 return errors;
134 }
135
136 }