1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
package org.kuali.student.lum.program.service.assembler; |
17 |
|
|
18 |
|
import static org.apache.commons.lang.StringUtils.isEmpty; |
19 |
|
|
20 |
|
import java.util.ArrayList; |
21 |
|
import java.util.HashMap; |
22 |
|
import java.util.Iterator; |
23 |
|
import java.util.List; |
24 |
|
import java.util.Map; |
25 |
|
|
26 |
|
import org.kuali.student.common.assembly.BaseDTOAssemblyNode; |
27 |
|
import org.kuali.student.common.assembly.BaseDTOAssemblyNode.NodeOperation; |
28 |
|
import org.kuali.student.common.assembly.data.AssemblyException; |
29 |
|
import org.kuali.student.common.dto.DtoConstants; |
30 |
|
import org.kuali.student.common.dto.RichTextInfo; |
31 |
|
import org.kuali.student.common.exceptions.DoesNotExistException; |
32 |
|
import org.kuali.student.common.exceptions.InvalidParameterException; |
33 |
|
import org.kuali.student.common.exceptions.MissingParameterException; |
34 |
|
import org.kuali.student.common.exceptions.OperationFailedException; |
35 |
|
import org.kuali.student.common.util.UUIDHelper; |
36 |
|
import org.kuali.student.lum.lu.dto.AdminOrgInfo; |
37 |
|
import org.kuali.student.lum.lu.dto.CluCluRelationInfo; |
38 |
|
import org.kuali.student.lum.lu.dto.CluIdentifierInfo; |
39 |
|
import org.kuali.student.lum.lu.dto.CluInfo; |
40 |
|
import org.kuali.student.lum.lu.dto.CluPublicationInfo; |
41 |
|
import org.kuali.student.lum.lu.dto.CluResultInfo; |
42 |
|
import org.kuali.student.lum.lu.dto.FieldInfo; |
43 |
|
import org.kuali.student.lum.lu.dto.LuCodeInfo; |
44 |
|
import org.kuali.student.lum.lu.service.LuService; |
45 |
|
import org.kuali.student.lum.program.dto.CredentialProgramInfo; |
46 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramAtpAssembly; |
47 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramBasicOrgAssembly; |
48 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramCodeAssembly; |
49 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramCommonAssembly; |
50 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramCredentialAssembly; |
51 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramFullOrgAssembly; |
52 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramIdentifierAssembly; |
53 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramPublicationAssembly; |
54 |
|
import org.kuali.student.lum.program.dto.assembly.ProgramRequirementAssembly; |
55 |
|
import org.kuali.student.lum.service.assembler.CluAssemblerUtils; |
56 |
|
|
|
|
| 81.1% |
Uncovered Elements: 123 (651) |
Complexity: 182 |
Complexity Density: 0.41 |
|
57 |
|
public class ProgramAssemblerUtils { |
58 |
|
|
59 |
|
private LuService luService; |
60 |
|
private CluAssemblerUtils cluAssemblerUtils; |
61 |
|
|
62 |
|
|
63 |
|
|
64 |
|
|
65 |
|
@param |
66 |
|
@param |
67 |
|
@return |
68 |
|
@throws |
69 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (10) |
Complexity: 2 |
Complexity Density: 0.25 |
|
70 |
135
|
public ProgramCommonAssembly assembleBasics(CluInfo clu, ProgramCommonAssembly program) throws AssemblyException {... |
71 |
|
|
72 |
135
|
if (program instanceof CredentialProgramInfo) { |
73 |
6
|
((CredentialProgramInfo)program).setCredentialProgramType(clu.getType()); |
74 |
|
} |
75 |
|
else { |
76 |
129
|
program.setType(clu.getType()); |
77 |
|
} |
78 |
135
|
program.setState(clu.getState()); |
79 |
135
|
program.setMetaInfo(clu.getMetaInfo()); |
80 |
135
|
program.setAttributes(clu.getAttributes()); |
81 |
135
|
program.setId(clu.getId()); |
82 |
|
|
83 |
135
|
return program; |
84 |
|
} |
85 |
|
|
86 |
|
|
87 |
|
|
88 |
|
|
89 |
|
@param |
90 |
|
@param |
91 |
|
@param |
92 |
|
@return |
93 |
|
@throws |
94 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (10) |
Complexity: 2 |
Complexity Density: 0.25 |
|
95 |
61
|
public CluInfo disassembleBasics(CluInfo clu, ProgramCommonAssembly program) throws AssemblyException {... |
96 |
|
|
97 |
61
|
if (program instanceof CredentialProgramInfo) { |
98 |
2
|
clu.setType (((CredentialProgramInfo)program).getCredentialProgramType()); |
99 |
|
} |
100 |
|
else { |
101 |
59
|
clu.setType(program.getType()); |
102 |
|
} |
103 |
61
|
clu.setId(UUIDHelper.genStringUUID(program.getId())); |
104 |
|
|
105 |
|
|
106 |
61
|
clu.setState(program.getState()); |
107 |
61
|
clu.setMetaInfo(program.getMetaInfo()); |
108 |
61
|
clu.setAttributes(program.getAttributes()); |
109 |
61
|
return clu; |
110 |
|
|
111 |
|
} |
112 |
|
|
113 |
|
|
|
|
| 87.5% |
Uncovered Elements: 1 (8) |
Complexity: 4 |
Complexity Density: 0.67 |
|
114 |
78
|
public ProgramRequirementAssembly assembleRequirements(CluInfo clu, ProgramRequirementAssembly program) throws AssemblyException {... |
115 |
|
|
116 |
78
|
try { |
117 |
78
|
List<String> requirements = luService.getRelatedCluIdsByCluId(clu.getId(), ProgramAssemblerConstants.HAS_PROGRAM_REQUIREMENT); |
118 |
78
|
if (requirements != null && requirements.size() > 0) { |
119 |
7
|
program.setProgramRequirements(requirements); |
120 |
|
} |
121 |
|
} |
122 |
|
catch (Exception e) |
123 |
|
{ |
124 |
0
|
throw new AssemblyException("Error assembling program requirements", e); |
125 |
|
} |
126 |
|
|
127 |
78
|
return program; |
128 |
|
} |
129 |
|
|
130 |
|
|
|
|
| 87.5% |
Uncovered Elements: 4 (32) |
Complexity: 10 |
Complexity Density: 0.45 |
|
131 |
14
|
public CluInfo disassembleRequirements(CluInfo clu, ProgramRequirementAssembly program, NodeOperation operation, BaseDTOAssemblyNode<?, ?> result, boolean stateChanged) throws AssemblyException {... |
132 |
14
|
try { |
133 |
14
|
List<String> requirements = program.getProgramRequirements (); |
134 |
|
|
135 |
14
|
if (requirements != null && !requirements.isEmpty()) { |
136 |
14
|
if (stateChanged){ |
137 |
0
|
addUpdateRequirementStateNodes(requirements, program.getState(), result); |
138 |
|
} |
139 |
|
|
140 |
14
|
Map<String, String> currentRelations = null; |
141 |
|
|
142 |
14
|
if (!NodeOperation.CREATE.equals(operation)) { |
143 |
2
|
currentRelations = getCluCluRelations(clu.getId(), ProgramAssemblerConstants.HAS_PROGRAM_REQUIREMENT); |
144 |
|
} |
145 |
|
|
146 |
14
|
for (String requirementId : requirements){ |
147 |
27
|
List<BaseDTOAssemblyNode<?, ?>> reqResults = addAllRelationNodes(clu.getId(), requirementId, ProgramAssemblerConstants.HAS_PROGRAM_REQUIREMENT, operation, currentRelations); |
148 |
27
|
if (reqResults != null && reqResults.size()> 0) { |
149 |
26
|
result.getChildNodes().addAll(reqResults); |
150 |
|
} |
151 |
|
} |
152 |
|
|
153 |
14
|
if(currentRelations != null && currentRelations.size() > 0){ |
154 |
1
|
for (Map.Entry<String, String> entry : currentRelations.entrySet()) { |
155 |
|
|
156 |
|
|
157 |
2
|
CluCluRelationInfo relationToDelete = new CluCluRelationInfo(); |
158 |
2
|
relationToDelete.setId( entry.getValue() ); |
159 |
2
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationToDeleteNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
160 |
|
null); |
161 |
2
|
relationToDeleteNode.setNodeData(relationToDelete); |
162 |
2
|
relationToDeleteNode.setOperation(NodeOperation.DELETE); |
163 |
2
|
result.getChildNodes().add(relationToDeleteNode); |
164 |
|
} |
165 |
|
} |
166 |
|
} |
167 |
|
} catch (Exception e) { |
168 |
0
|
throw new AssemblyException("Error while disassembling program requirements", e); |
169 |
|
} |
170 |
|
|
171 |
14
|
return clu; |
172 |
|
|
173 |
|
} |
174 |
|
|
175 |
|
|
176 |
|
|
177 |
|
|
178 |
|
@param |
179 |
|
@param |
180 |
|
@throws |
181 |
|
@throws |
182 |
|
@throws |
183 |
|
|
|
|
| 0% |
Uncovered Elements: 8 (8) |
Complexity: 2 |
Complexity Density: 0.25 |
|
184 |
0
|
private void addUpdateRequirementStateNodes(List<String> requirements, String state, BaseDTOAssemblyNode<?, ?> result) throws InvalidParameterException, MissingParameterException, OperationFailedException {... |
185 |
0
|
for (String requirementId:requirements){ |
186 |
0
|
try { |
187 |
0
|
CluInfo requirementClu = luService.getClu(requirementId); |
188 |
0
|
requirementClu.setState(state); |
189 |
0
|
BaseDTOAssemblyNode<Object, CluInfo> reqCluNode = new BaseDTOAssemblyNode<Object, CluInfo>(null); |
190 |
0
|
reqCluNode.setNodeData(requirementClu); |
191 |
0
|
reqCluNode.setOperation(NodeOperation.UPDATE); |
192 |
0
|
result.getChildNodes().add(reqCluNode); |
193 |
|
} catch (DoesNotExistException e){ |
194 |
|
|
195 |
|
} |
196 |
|
} |
197 |
|
} |
198 |
|
|
199 |
|
|
200 |
|
|
201 |
|
|
202 |
|
@param |
203 |
|
@param |
204 |
|
@return |
205 |
|
@throws |
206 |
|
|
|
|
| 82.8% |
Uncovered Elements: 5 (29) |
Complexity: 8 |
Complexity Density: 0.53 |
|
207 |
135
|
public ProgramIdentifierAssembly assembleIdentifiers(CluInfo clu, ProgramIdentifierAssembly program) throws AssemblyException {... |
208 |
|
|
209 |
135
|
if (clu.getOfficialIdentifier() != null) { |
210 |
135
|
if (clu.getOfficialIdentifier().getShortName() != null) { |
211 |
135
|
program.setShortTitle(clu.getOfficialIdentifier().getShortName()); |
212 |
|
} |
213 |
135
|
if (clu.getOfficialIdentifier().getLongName() != null) { |
214 |
135
|
program.setLongTitle(clu.getOfficialIdentifier().getLongName()); |
215 |
|
} |
216 |
135
|
if (clu.getOfficialIdentifier().getCode() != null) { |
217 |
135
|
program.setCode(clu.getOfficialIdentifier().getCode()); |
218 |
|
} |
219 |
|
} |
220 |
135
|
if (clu.getAlternateIdentifiers() != null) { |
221 |
135
|
for (CluIdentifierInfo cluIdInfo : clu.getAlternateIdentifiers()) { |
222 |
224
|
String idInfoType = cluIdInfo.getType(); |
223 |
224
|
if (ProgramAssemblerConstants.TRANSCRIPT.equals(idInfoType)) { |
224 |
130
|
program.setTranscriptTitle(cluIdInfo.getShortName()); |
225 |
94
|
} else if (ProgramAssemblerConstants.DIPLOMA.equals(idInfoType)) { |
226 |
72
|
program.setDiplomaTitle(cluIdInfo.getShortName()); |
227 |
|
} |
228 |
|
} |
229 |
|
} |
230 |
135
|
return program; |
231 |
|
} |
232 |
|
|
233 |
|
|
234 |
|
|
235 |
|
|
236 |
|
|
237 |
|
@param |
238 |
|
@param |
239 |
|
@param |
240 |
|
@return |
241 |
|
@throws |
242 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (55) |
Complexity: 10 |
Complexity Density: 0.27 |
|
243 |
52
|
public CluInfo disassembleIdentifiers(CluInfo clu, ProgramIdentifierAssembly program, NodeOperation operation) throws AssemblyException {... |
244 |
|
|
245 |
52
|
CluIdentifierInfo official = null != clu.getOfficialIdentifier() ? clu.getOfficialIdentifier() : new CluIdentifierInfo(); |
246 |
|
|
247 |
52
|
official.setCode(program.getCode()); |
248 |
52
|
official.setLongName(program.getLongTitle()); |
249 |
52
|
official.setShortName(program.getShortTitle()); |
250 |
52
|
official.setState(program.getState()); |
251 |
|
|
252 |
52
|
official.setType(ProgramAssemblerConstants.OFFICIAL); |
253 |
|
|
254 |
52
|
if (program instanceof CredentialProgramInfo) { |
255 |
2
|
CredentialProgramInfo cred = (CredentialProgramInfo)program; |
256 |
2
|
official.setLevel(cred.getProgramLevel()); |
257 |
|
} |
258 |
|
|
259 |
52
|
clu.setOfficialIdentifier(official); |
260 |
|
|
261 |
|
|
262 |
52
|
CluIdentifierInfo diplomaInfo = null; |
263 |
52
|
CluIdentifierInfo transcriptInfo = null; |
264 |
111
|
for(Iterator<CluIdentifierInfo> iter = clu.getAlternateIdentifiers().iterator();iter.hasNext();){ |
265 |
59
|
CluIdentifierInfo cluIdentifier = iter.next(); |
266 |
59
|
if (ProgramAssemblerConstants.DIPLOMA.equals(cluIdentifier.getType())) { |
267 |
19
|
diplomaInfo = cluIdentifier; |
268 |
19
|
diplomaInfo.setState(program.getState()); |
269 |
40
|
} else if (ProgramAssemblerConstants.TRANSCRIPT.equals(cluIdentifier.getType())) { |
270 |
34
|
transcriptInfo = cluIdentifier; |
271 |
34
|
transcriptInfo.setState(program.getState()); |
272 |
|
} |
273 |
|
} |
274 |
|
|
275 |
52
|
if (program.getDiplomaTitle() != null) { |
276 |
29
|
if (diplomaInfo == null) { |
277 |
10
|
diplomaInfo = new CluIdentifierInfo(); |
278 |
10
|
diplomaInfo.setState(program.getState()); |
279 |
10
|
clu.getAlternateIdentifiers().add(diplomaInfo); |
280 |
|
} |
281 |
29
|
diplomaInfo.setCode(official.getCode()); |
282 |
29
|
diplomaInfo.setShortName(program.getDiplomaTitle()); |
283 |
29
|
diplomaInfo.setType(ProgramAssemblerConstants.DIPLOMA); |
284 |
|
} |
285 |
|
|
286 |
52
|
if (program.getTranscriptTitle() != null) { |
287 |
51
|
if (transcriptInfo == null) { |
288 |
17
|
transcriptInfo = new CluIdentifierInfo(); |
289 |
17
|
transcriptInfo.setState(program.getState()); |
290 |
17
|
clu.getAlternateIdentifiers().add(transcriptInfo); |
291 |
|
} |
292 |
51
|
transcriptInfo.setCode(official.getCode()); |
293 |
51
|
transcriptInfo.setShortName(program.getTranscriptTitle()); |
294 |
51
|
transcriptInfo.setType(ProgramAssemblerConstants.TRANSCRIPT); |
295 |
|
} |
296 |
52
|
return clu; |
297 |
|
} |
298 |
|
|
299 |
|
|
300 |
|
|
301 |
|
|
302 |
|
@param |
303 |
|
@param |
304 |
|
@return |
305 |
|
@throws |
306 |
|
|
|
|
| 92% |
Uncovered Elements: 2 (25) |
Complexity: 7 |
Complexity Density: 0.54 |
|
307 |
135
|
public ProgramCodeAssembly assembleLuCodes(CluInfo clu, ProgramCodeAssembly program) throws AssemblyException {... |
308 |
|
|
309 |
135
|
if (clu.getLuCodes() != null) { |
310 |
135
|
for (LuCodeInfo codeInfo : clu.getLuCodes()) { |
311 |
506
|
if (ProgramAssemblerConstants.CIP_2000.equals(codeInfo.getType())) { |
312 |
94
|
program.setCip2000Code(codeInfo.getValue()); |
313 |
412
|
} else if (ProgramAssemblerConstants.CIP_2010.equals(codeInfo.getType())) { |
314 |
94
|
program.setCip2010Code(codeInfo.getValue()); |
315 |
318
|
} else if (ProgramAssemblerConstants.HEGIS.equals(codeInfo.getType())) { |
316 |
94
|
program.setHegisCode(codeInfo.getValue()); |
317 |
224
|
} else if (ProgramAssemblerConstants.UNIVERSITY_CLASSIFICATION.equals(codeInfo.getType())) { |
318 |
130
|
program.setUniversityClassification(codeInfo.getValue()); |
319 |
94
|
} else if (ProgramAssemblerConstants.SELECTIVE_ENROLLMENT.equals(codeInfo.getType())) { |
320 |
94
|
program.setSelectiveEnrollmentCode(codeInfo.getValue()); |
321 |
|
} |
322 |
|
} |
323 |
|
} |
324 |
|
|
325 |
135
|
return program; |
326 |
|
} |
327 |
|
|
328 |
|
|
329 |
|
|
330 |
|
|
331 |
|
|
332 |
|
@param |
333 |
|
@param |
334 |
|
@param |
335 |
|
@throws |
336 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
|
337 |
52
|
public CluInfo disassembleLuCodes(CluInfo clu, ProgramCodeAssembly program, NodeOperation operation) throws AssemblyException {... |
338 |
|
|
339 |
52
|
clu.setLuCodes(new ArrayList<LuCodeInfo>()); |
340 |
|
|
341 |
52
|
addLuCodeFromProgram(ProgramAssemblerConstants.CIP_2000, program.getCip2000Code(), clu.getLuCodes()); |
342 |
52
|
addLuCodeFromProgram(ProgramAssemblerConstants.CIP_2010, program.getCip2010Code(), clu.getLuCodes()); |
343 |
52
|
addLuCodeFromProgram(ProgramAssemblerConstants.HEGIS, program.getHegisCode(), clu.getLuCodes()); |
344 |
52
|
addLuCodeFromProgram(ProgramAssemblerConstants.UNIVERSITY_CLASSIFICATION, program.getUniversityClassification(), clu.getLuCodes()); |
345 |
52
|
addLuCodeFromProgram(ProgramAssemblerConstants.SELECTIVE_ENROLLMENT, program.getSelectiveEnrollmentCode(), clu.getLuCodes()); |
346 |
|
|
347 |
52
|
return clu; |
348 |
|
|
349 |
|
} |
350 |
|
|
351 |
|
|
352 |
|
|
353 |
|
|
354 |
|
@param |
355 |
|
@param |
356 |
|
@return |
357 |
|
@throws |
358 |
|
|
|
|
| 95.5% |
Uncovered Elements: 1 (22) |
Complexity: 6 |
Complexity Density: 0.5 |
|
359 |
135
|
public ProgramBasicOrgAssembly assembleBasicAdminOrgs(CluInfo clu, ProgramBasicOrgAssembly program) throws AssemblyException {... |
360 |
|
|
361 |
135
|
if (clu.getAdminOrgs() != null) { |
362 |
135
|
clearProgramAdminOrgs(program); |
363 |
135
|
for (AdminOrgInfo cluOrg : clu.getAdminOrgs()) { |
364 |
1465
|
if (cluOrg.getType().equals(ProgramAssemblerConstants.CURRICULUM_OVERSIGHT_DIVISION)) { |
365 |
169
|
program.getDivisionsContentOwner().add(cluOrg.getOrgId()); |
366 |
|
} |
367 |
1296
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.STUDENT_OVERSIGHT_DIVISION)) { |
368 |
169
|
program.getDivisionsStudentOversight().add(cluOrg.getOrgId()) ; |
369 |
|
} |
370 |
1127
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.CURRICULUM_OVERSIGHT_UNIT)) { |
371 |
169
|
program.getUnitsContentOwner().add(cluOrg.getOrgId()) ; |
372 |
|
} |
373 |
958
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.STUDENT_OVERSIGHT_UNIT)) { |
374 |
220
|
program.getUnitsStudentOversight().add(cluOrg.getOrgId()) ; |
375 |
|
} |
376 |
|
} |
377 |
|
} |
378 |
135
|
return program; |
379 |
|
} |
380 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (27) |
Complexity: 7 |
Complexity Density: 0.47 |
|
381 |
94
|
public ProgramFullOrgAssembly assembleFullOrgs(CluInfo clu, ProgramFullOrgAssembly program) throws AssemblyException {... |
382 |
|
|
383 |
94
|
clearFullAdminOrgs(program); |
384 |
94
|
for (AdminOrgInfo cluOrg : clu.getAdminOrgs()) { |
385 |
1259
|
if (cluOrg.getType().equals(ProgramAssemblerConstants.DEPLOYMENT_DIVISION)) { |
386 |
119
|
program.getDivisionsDeployment().add(cluOrg.getOrgId()) ; |
387 |
|
} |
388 |
1140
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.FINANCIAL_RESOURCES_DIVISION)) { |
389 |
119
|
program.getDivisionsFinancialResources().add(cluOrg.getOrgId()) ; |
390 |
|
} |
391 |
1021
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.FINANCIAL_CONTROL_DIVISION)) { |
392 |
119
|
program.getDivisionsFinancialControl().add(cluOrg.getOrgId()) ; |
393 |
|
} |
394 |
902
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.DEPLOYMENT_UNIT)) { |
395 |
119
|
program.getUnitsDeployment().add(cluOrg.getOrgId()) ; |
396 |
|
} |
397 |
783
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.FINANCIAL_RESOURCES_UNIT)) { |
398 |
119
|
program.getUnitsFinancialResources().add(cluOrg.getOrgId()) ; |
399 |
|
} |
400 |
664
|
else if (cluOrg.getType().equals(ProgramAssemblerConstants.FINANCIAL_CONTROL_UNIT)) { |
401 |
137
|
program.getUnitsFinancialControl().add(cluOrg.getOrgId()) ; |
402 |
|
} |
403 |
|
} |
404 |
94
|
return program; |
405 |
|
} |
406 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
407 |
135
|
private void clearProgramAdminOrgs(ProgramBasicOrgAssembly program) {... |
408 |
135
|
program.setDivisionsContentOwner(new ArrayList<String>()); |
409 |
135
|
program.setDivisionsStudentOversight(new ArrayList<String>()); |
410 |
135
|
program.setUnitsContentOwner(new ArrayList<String>()); |
411 |
135
|
program.setUnitsStudentOversight(new ArrayList<String>()); |
412 |
|
} |
413 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
414 |
94
|
private void clearFullAdminOrgs(ProgramFullOrgAssembly program) {... |
415 |
94
|
program.setDivisionsDeployment(new ArrayList<String>()); |
416 |
94
|
program.setDivisionsFinancialResources(new ArrayList<String>()); |
417 |
94
|
program.setDivisionsFinancialControl(new ArrayList<String>()); |
418 |
94
|
program.setUnitsDeployment(new ArrayList<String>()); |
419 |
94
|
program.setUnitsFinancialResources(new ArrayList<String>()); |
420 |
94
|
program.setUnitsFinancialControl(new ArrayList<String>()); |
421 |
|
} |
422 |
|
|
423 |
|
|
424 |
|
|
425 |
|
|
426 |
|
@param |
427 |
|
@param |
428 |
|
@param |
429 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (22) |
Complexity: 3 |
Complexity Density: 0.17 |
|
430 |
52
|
public CluInfo disassembleAdminOrgs(CluInfo clu, ProgramBasicOrgAssembly program, NodeOperation operation){... |
431 |
|
|
432 |
|
|
433 |
52
|
clu.setAdminOrgs(new ArrayList<AdminOrgInfo>()); |
434 |
|
|
435 |
52
|
newBuildAdminOrgs(clu, program.getDivisionsContentOwner(), ProgramAssemblerConstants.CURRICULUM_OVERSIGHT_DIVISION); |
436 |
52
|
newBuildAdminOrgs(clu, program.getDivisionsStudentOversight(), ProgramAssemblerConstants.STUDENT_OVERSIGHT_DIVISION ); |
437 |
52
|
newBuildAdminOrgs(clu, program.getUnitsContentOwner(), ProgramAssemblerConstants.CURRICULUM_OVERSIGHT_UNIT); |
438 |
52
|
newBuildAdminOrgs(clu, program.getUnitsStudentOversight(), ProgramAssemblerConstants.STUDENT_OVERSIGHT_UNIT ); |
439 |
52
|
if (program instanceof CredentialProgramInfo) { |
440 |
2
|
List<String> institutionOrgs = new ArrayList<String>(); |
441 |
2
|
institutionOrgs.add(((CredentialProgramInfo)program).getInstitution().getOrgId()); |
442 |
2
|
newBuildAdminOrgs(clu, institutionOrgs , ProgramAssemblerConstants.INSTITUTION) ; |
443 |
|
} |
444 |
52
|
if (program instanceof ProgramFullOrgAssembly) { |
445 |
35
|
ProgramFullOrgAssembly fullOrg = (ProgramFullOrgAssembly) program; |
446 |
35
|
newBuildAdminOrgs(clu, fullOrg.getDivisionsDeployment(), ProgramAssemblerConstants.DEPLOYMENT_DIVISION); |
447 |
35
|
newBuildAdminOrgs(clu, fullOrg.getDivisionsFinancialResources(), ProgramAssemblerConstants.FINANCIAL_RESOURCES_DIVISION); |
448 |
35
|
newBuildAdminOrgs(clu, fullOrg.getDivisionsFinancialControl(), ProgramAssemblerConstants.FINANCIAL_CONTROL_DIVISION); |
449 |
35
|
newBuildAdminOrgs(clu, fullOrg.getUnitsDeployment(), ProgramAssemblerConstants.DEPLOYMENT_UNIT); |
450 |
35
|
newBuildAdminOrgs(clu, fullOrg.getUnitsFinancialResources(), ProgramAssemblerConstants.FINANCIAL_RESOURCES_UNIT); |
451 |
35
|
newBuildAdminOrgs(clu, fullOrg.getUnitsFinancialControl(), ProgramAssemblerConstants.FINANCIAL_CONTROL_UNIT); |
452 |
|
|
453 |
|
} |
454 |
52
|
return clu; |
455 |
|
|
456 |
|
} |
457 |
|
|
|
|
| 88.9% |
Uncovered Elements: 1 (9) |
Complexity: 2 |
Complexity Density: 0.29 |
|
458 |
420
|
private CluInfo newBuildAdminOrgs(CluInfo clu, List<String> orgIds, String type) {... |
459 |
|
|
460 |
420
|
if (null != orgIds) { |
461 |
420
|
for (String orgId : orgIds) { |
462 |
622
|
AdminOrgInfo subjectOrg = new AdminOrgInfo(); |
463 |
622
|
subjectOrg.setType(type); |
464 |
622
|
subjectOrg.setOrgId(orgId); |
465 |
622
|
clu.getAdminOrgs().add(subjectOrg); |
466 |
|
} |
467 |
|
} |
468 |
420
|
return clu; |
469 |
|
} |
470 |
|
|
471 |
|
|
472 |
|
|
473 |
|
|
474 |
|
@param |
475 |
|
@param |
476 |
|
@return |
477 |
|
@throws |
478 |
|
|
|
|
| 88.9% |
Uncovered Elements: 1 (9) |
Complexity: 3 |
Complexity Density: 0.33 |
|
479 |
60
|
public List<String> assembleResultOptions(String cluId) throws AssemblyException {... |
480 |
60
|
List<String> resultOptions = null; |
481 |
60
|
try{ |
482 |
60
|
List<CluResultInfo> cluResults = luService.getCluResultByClu(cluId); |
483 |
|
|
484 |
60
|
List<String> resultTypes = new ArrayList<String>(); |
485 |
60
|
resultTypes.add(ProgramAssemblerConstants.DEGREE_RESULTS); |
486 |
60
|
resultTypes.add(ProgramAssemblerConstants.CERTIFICATE_RESULTS); |
487 |
|
|
488 |
60
|
resultOptions = cluAssemblerUtils.assembleCluResults(resultTypes, cluResults); |
489 |
|
|
490 |
|
} catch (DoesNotExistException e){ |
491 |
|
} catch (Exception e) { |
492 |
0
|
throw new AssemblyException("Error getting major results", e); |
493 |
|
} |
494 |
60
|
return resultOptions; |
495 |
|
} |
496 |
|
|
497 |
|
|
498 |
|
|
499 |
|
|
500 |
|
@param |
501 |
|
@param |
502 |
|
@return |
503 |
|
@throws |
504 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (13) |
Complexity: 4 |
Complexity Density: 0.57 |
|
505 |
135
|
public ProgramAtpAssembly assembleAtps(CluInfo clu, ProgramAtpAssembly program) throws AssemblyException {... |
506 |
|
|
507 |
135
|
if (clu.getExpectedFirstAtp() != null) { |
508 |
130
|
program.setStartTerm(clu.getExpectedFirstAtp()); |
509 |
|
} |
510 |
135
|
if (clu.getLastAtp() != null) { |
511 |
130
|
program.setEndTerm(clu.getLastAtp()); |
512 |
|
} |
513 |
135
|
if (clu.getLastAdmitAtp() != null) { |
514 |
130
|
program.setEndProgramEntryTerm(clu.getLastAdmitAtp()); |
515 |
|
} |
516 |
135
|
return program; |
517 |
|
} |
518 |
|
|
519 |
|
|
520 |
|
|
521 |
|
|
522 |
|
|
523 |
|
@param |
524 |
|
@param |
525 |
|
@return |
526 |
|
@throws |
527 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
528 |
52
|
public CluInfo disassembleAtps(CluInfo clu, ProgramAtpAssembly program, NodeOperation operation) throws AssemblyException {... |
529 |
|
|
530 |
52
|
clu.setExpectedFirstAtp(program.getStartTerm()); |
531 |
52
|
clu.setLastAtp(program.getEndTerm()); |
532 |
52
|
clu.setLastAdmitAtp(program.getEndProgramEntryTerm()); |
533 |
|
|
534 |
52
|
return clu; |
535 |
|
|
536 |
|
} |
537 |
|
|
538 |
|
|
539 |
|
|
540 |
|
|
541 |
|
@param |
542 |
|
@param |
543 |
|
@return |
544 |
|
@throws |
545 |
|
|
|
|
| 89.5% |
Uncovered Elements: 2 (19) |
Complexity: 9 |
Complexity Density: 0.69 |
|
546 |
116
|
public ProgramPublicationAssembly assemblePublications(CluInfo clu, ProgramPublicationAssembly program) throws AssemblyException {... |
547 |
|
|
548 |
|
|
549 |
116
|
if (clu.getReferenceURL() != null) { |
550 |
116
|
program.setReferenceURL(clu.getReferenceURL()); |
551 |
|
} |
552 |
|
|
553 |
116
|
try { |
554 |
116
|
List<CluPublicationInfo> cluPublications = luService.getCluPublicationsByCluId(clu.getId()); |
555 |
|
|
556 |
116
|
List<String> targets = new ArrayList<String>(); |
557 |
|
|
558 |
116
|
for (CluPublicationInfo cluPublication : cluPublications) { |
559 |
104
|
if (cluPublication.getType().equals(ProgramAssemblerConstants.CATALOG)) { |
560 |
83
|
assembleCatalogDescr(program, cluPublication); |
561 |
|
} |
562 |
|
else { |
563 |
21
|
targets.add(cluPublication.getType()); |
564 |
|
} |
565 |
|
} |
566 |
|
|
567 |
116
|
if (targets != null && !targets.isEmpty()) { |
568 |
12
|
program.setCatalogPublicationTargets(targets); |
569 |
|
} |
570 |
|
} catch (DoesNotExistException e) { |
571 |
|
} catch (InvalidParameterException e) { |
572 |
|
} catch (MissingParameterException e) { |
573 |
|
} catch (OperationFailedException e) { |
574 |
0
|
throw new AssemblyException("Error getting publication targets", e); |
575 |
|
} |
576 |
116
|
return program; |
577 |
|
} |
578 |
|
|
|
|
| 88.9% |
Uncovered Elements: 1 (9) |
Complexity: 2 |
Complexity Density: 0.29 |
|
579 |
83
|
private void assembleCatalogDescr(ProgramPublicationAssembly program, CluPublicationInfo cluPublication) {... |
580 |
|
|
581 |
83
|
for (FieldInfo fieldInfo : cluPublication.getVariants()) { |
582 |
73
|
if (fieldInfo.getId().equals(ProgramAssemblerConstants.CATALOG_DESCR)) { |
583 |
73
|
RichTextInfo desc = new RichTextInfo(); |
584 |
73
|
desc.setPlain(fieldInfo.getValue()); |
585 |
73
|
desc.setFormatted(fieldInfo.getValue()); |
586 |
73
|
program.setCatalogDescr(desc); |
587 |
73
|
break; |
588 |
|
} |
589 |
|
} |
590 |
|
} |
591 |
|
|
|
|
| 85.7% |
Uncovered Elements: 7 (49) |
Complexity: 12 |
Complexity Density: 0.34 |
|
592 |
50
|
private List<BaseDTOAssemblyNode<?, ?>> disassembleCatalogDescr(ProgramPublicationAssembly program, NodeOperation operation) throws AssemblyException {... |
593 |
|
|
594 |
50
|
List<BaseDTOAssemblyNode<?, ?>> results = new ArrayList<BaseDTOAssemblyNode<?, ?>>(); |
595 |
|
|
596 |
50
|
CluPublicationInfo currentPubInfo = null; |
597 |
|
|
598 |
50
|
try { |
599 |
|
|
600 |
|
|
601 |
50
|
if (!NodeOperation.CREATE.equals(operation)) { |
602 |
34
|
List<CluPublicationInfo> pubs = luService.getCluPublicationsByCluId(program.getId()); |
603 |
34
|
for (CluPublicationInfo pubInfo : pubs) { |
604 |
30
|
if (pubInfo.getType().equals(ProgramAssemblerConstants.CATALOG)) { |
605 |
19
|
currentPubInfo = pubInfo; |
606 |
|
} |
607 |
|
} |
608 |
|
} |
609 |
|
|
610 |
50
|
if (program.getCatalogDescr() != null) { |
611 |
|
|
612 |
43
|
if (NodeOperation.CREATE == operation |
613 |
|
|| (NodeOperation.UPDATE == operation && currentPubInfo == null )) { |
614 |
|
|
615 |
24
|
CluPublicationInfo pubInfo = buildCluPublicationInfo(program.getId(), ProgramAssemblerConstants.CATALOG); |
616 |
24
|
pubInfo.setState(program.getState()); |
617 |
24
|
FieldInfo variant = new FieldInfo(); |
618 |
24
|
variant.setId(ProgramAssemblerConstants.CATALOG_DESCR); |
619 |
24
|
variant.setValue(program.getCatalogDescr() .getPlain()); |
620 |
24
|
pubInfo.getVariants().add(variant); |
621 |
|
|
622 |
24
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
623 |
|
null); |
624 |
24
|
pubNode.setNodeData(pubInfo); |
625 |
24
|
pubNode.setOperation(NodeOperation.CREATE); |
626 |
|
|
627 |
24
|
results.add(pubNode); |
628 |
19
|
} else if (NodeOperation.UPDATE == operation |
629 |
|
&& currentPubInfo != null) { |
630 |
|
|
631 |
19
|
CluPublicationInfo pubInfo = currentPubInfo; |
632 |
19
|
pubInfo.setState(program.getState()); |
633 |
19
|
for (FieldInfo fieldInfo : pubInfo.getVariants()) { |
634 |
19
|
if (fieldInfo.getId().equals(ProgramAssemblerConstants.CATALOG_DESCR)) { |
635 |
19
|
fieldInfo.setValue(program.getCatalogDescr() .getPlain()); |
636 |
19
|
break; |
637 |
|
} |
638 |
|
} |
639 |
|
|
640 |
19
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
641 |
|
null); |
642 |
19
|
pubNode.setNodeData(pubInfo); |
643 |
19
|
pubNode.setOperation(NodeOperation.UPDATE); |
644 |
|
|
645 |
19
|
results.add(pubNode); |
646 |
|
|
647 |
|
} |
648 |
0
|
else if (NodeOperation.DELETE == operation ) { |
649 |
|
|
650 |
0
|
deletePublicationInfo(results, currentPubInfo); |
651 |
|
} |
652 |
|
} |
653 |
|
} catch (Exception e) { |
654 |
0
|
throw new AssemblyException(e); |
655 |
|
} |
656 |
50
|
return results; |
657 |
|
} |
658 |
|
|
|
|
| 0% |
Uncovered Elements: 6 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
|
659 |
0
|
private void deletePublicationInfo(List<BaseDTOAssemblyNode<?, ?>> results, CluPublicationInfo currentPubInfo) {... |
660 |
0
|
CluPublicationInfo descrToDelete = new CluPublicationInfo(); |
661 |
0
|
descrToDelete.setId(currentPubInfo.getId()); |
662 |
0
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubToDeleteNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
663 |
|
null); |
664 |
0
|
pubToDeleteNode.setNodeData(descrToDelete); |
665 |
0
|
pubToDeleteNode.setOperation(NodeOperation.DELETE); |
666 |
0
|
results.add(pubToDeleteNode); |
667 |
|
} |
668 |
|
|
669 |
|
|
670 |
|
|
671 |
|
|
672 |
|
@param |
673 |
|
@param |
674 |
|
@param |
675 |
|
@return |
676 |
|
@throws |
677 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (13) |
Complexity: 5 |
Complexity Density: 0.56 |
|
678 |
50
|
public CluInfo disassemblePublications(CluInfo clu, ProgramPublicationAssembly program, NodeOperation operation, BaseDTOAssemblyNode<?, ?> result) throws AssemblyException {... |
679 |
|
|
680 |
50
|
clu.setReferenceURL(program.getReferenceURL()); |
681 |
50
|
clu.setState(program.getState()); |
682 |
|
|
683 |
50
|
List<BaseDTOAssemblyNode<?, ?>> targetResults = disassemblePublicationTargets(program, operation); |
684 |
50
|
if (targetResults != null && targetResults.size()> 0) { |
685 |
21
|
result.getChildNodes().addAll(targetResults); |
686 |
|
} |
687 |
|
|
688 |
50
|
List<BaseDTOAssemblyNode<?, ?>> descrResults = disassembleCatalogDescr(program, operation) ; |
689 |
50
|
if (descrResults != null && descrResults.size()> 0) { |
690 |
43
|
result.getChildNodes().addAll(descrResults); |
691 |
|
} |
692 |
|
|
693 |
50
|
return clu; |
694 |
|
|
695 |
|
} |
696 |
|
|
697 |
|
|
698 |
|
|
699 |
|
|
700 |
|
@param |
701 |
|
@param |
702 |
|
@param |
703 |
|
@return |
704 |
|
@throws |
705 |
|
|
|
|
| 67.9% |
Uncovered Elements: 17 (53) |
Complexity: 18 |
Complexity Density: 0.44 |
|
706 |
11
|
public List<BaseDTOAssemblyNode<?,?>> disassembleCredentialProgram(ProgramCredentialAssembly program, NodeOperation operation, String relationType) throws AssemblyException {... |
707 |
|
|
708 |
11
|
List<BaseDTOAssemblyNode<?, ?>> results = new ArrayList<BaseDTOAssemblyNode<?, ?>>(); |
709 |
|
|
710 |
11
|
try { |
711 |
11
|
CluInfo credentialClu = luService.getClu(program.getCredentialProgramId()); |
712 |
|
} catch (DoesNotExistException e) { |
713 |
|
} catch (Exception e) { |
714 |
0
|
throw new AssemblyException("Credential Clu does not exist for " + program.getCredentialProgramId()); |
715 |
|
} |
716 |
|
|
717 |
11
|
Map<String, String> currentRelations = new HashMap<String, String>(); |
718 |
|
|
719 |
11
|
if (!NodeOperation.CREATE.equals(operation)) { |
720 |
8
|
try { |
721 |
8
|
List<CluCluRelationInfo> cluRelations = luService.getCluCluRelationsByClu(program.getId()); |
722 |
8
|
for (CluCluRelationInfo cluRelation : cluRelations) { |
723 |
32
|
if (relationType.equals(cluRelation.getType()) ) { |
724 |
6
|
currentRelations.put(cluRelation.getRelatedCluId(), cluRelation.getId()); |
725 |
|
} |
726 |
|
} |
727 |
|
} catch (DoesNotExistException e) { |
728 |
|
} catch (InvalidParameterException e) { |
729 |
|
} catch (MissingParameterException e) { |
730 |
|
} catch (OperationFailedException e) { |
731 |
0
|
throw new AssemblyException("Error getting related clus", e); |
732 |
|
} |
733 |
|
} |
734 |
|
|
735 |
|
|
736 |
|
|
737 |
11
|
if (NodeOperation.CREATE == operation |
738 |
|
|| (NodeOperation.UPDATE == operation && !currentRelations.containsKey(program.getCredentialProgramId()) )) { |
739 |
|
|
740 |
11
|
CluCluRelationInfo relation = new CluCluRelationInfo(); |
741 |
11
|
relation.setCluId(program.getCredentialProgramId()); |
742 |
11
|
relation.setRelatedCluId(program.getId()); |
743 |
11
|
relation.setType(relationType); |
744 |
|
|
745 |
|
|
746 |
11
|
relation.setState(DtoConstants.STATE_ACTIVE); |
747 |
|
|
748 |
11
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
749 |
|
null); |
750 |
11
|
relationNode.setNodeData(relation); |
751 |
11
|
relationNode.setOperation(NodeOperation.CREATE); |
752 |
|
|
753 |
11
|
results.add(relationNode); |
754 |
0
|
} else if (NodeOperation.UPDATE == operation |
755 |
|
&& currentRelations.containsKey(program.getCredentialProgramId())) { |
756 |
|
|
757 |
|
|
758 |
|
|
759 |
|
|
760 |
0
|
currentRelations.remove(program.getCredentialProgramId()); |
761 |
0
|
} else if (NodeOperation.DELETE == operation |
762 |
|
&& currentRelations.containsKey(program.getId())) { |
763 |
|
|
764 |
0
|
CluCluRelationInfo relationToDelete = new CluCluRelationInfo(); |
765 |
0
|
relationToDelete.setId( currentRelations.get(program.getId()) ); |
766 |
0
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationToDeleteNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
767 |
|
null); |
768 |
0
|
relationToDeleteNode.setNodeData(relationToDelete); |
769 |
0
|
relationToDeleteNode.setOperation(NodeOperation.DELETE); |
770 |
0
|
results.add(relationToDeleteNode); |
771 |
|
|
772 |
|
|
773 |
|
|
774 |
0
|
currentRelations.remove(program.getId()); |
775 |
|
} |
776 |
|
|
777 |
11
|
if(currentRelations != null && currentRelations.size() > 0){ |
778 |
6
|
for (Map.Entry<String, String> entry : currentRelations.entrySet()) { |
779 |
|
|
780 |
|
|
781 |
6
|
CluCluRelationInfo relationToDelete = new CluCluRelationInfo(); |
782 |
6
|
relationToDelete.setId( entry.getValue() ); |
783 |
6
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationToDeleteNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
784 |
|
null); |
785 |
6
|
relationToDeleteNode.setNodeData(relationToDelete); |
786 |
6
|
relationToDeleteNode.setOperation(NodeOperation.DELETE); |
787 |
6
|
results.add(relationToDeleteNode); |
788 |
|
} |
789 |
|
} |
790 |
11
|
return results; |
791 |
|
} |
792 |
|
|
|
|
| 0% |
Uncovered Elements: 30 (30) |
Complexity: 11 |
Complexity Density: 0.55 |
|
793 |
0
|
public List<BaseDTOAssemblyNode<?, ?>> addRelationNodes(String cluId, String relatedCluId, String relationType, NodeOperation operation)throws AssemblyException{... |
794 |
0
|
Map<String, String> currentRelations = null; |
795 |
0
|
List<BaseDTOAssemblyNode<?, ?>> results = new ArrayList<BaseDTOAssemblyNode<?, ?>>(); |
796 |
|
|
797 |
0
|
if (!NodeOperation.CREATE.equals(operation)) { |
798 |
0
|
currentRelations = getCluCluRelations(cluId, relationType); |
799 |
|
} |
800 |
|
|
801 |
|
|
802 |
0
|
if (NodeOperation.CREATE == operation |
803 |
|
|| (NodeOperation.UPDATE == operation && !currentRelations.containsKey(relatedCluId) )) { |
804 |
|
|
805 |
0
|
addCreateRelationNode(cluId, relatedCluId, relationType, results); |
806 |
0
|
} else if (NodeOperation.UPDATE == operation |
807 |
|
&& currentRelations.containsKey(relatedCluId)) { |
808 |
|
|
809 |
|
|
810 |
|
|
811 |
|
|
812 |
0
|
currentRelations.remove(relatedCluId); |
813 |
0
|
} else if (NodeOperation.DELETE == operation |
814 |
|
&& currentRelations.containsKey(relatedCluId)) { |
815 |
|
|
816 |
0
|
addDeleteRelationNodes(currentRelations, results); |
817 |
|
|
818 |
|
|
819 |
|
|
820 |
0
|
currentRelations.remove(relatedCluId); |
821 |
|
} |
822 |
|
|
823 |
0
|
if(currentRelations != null && currentRelations.size() > 0){ |
824 |
0
|
for (Map.Entry<String, String> entry : currentRelations.entrySet()) { |
825 |
|
|
826 |
|
|
827 |
0
|
CluCluRelationInfo relationToDelete = new CluCluRelationInfo(); |
828 |
0
|
relationToDelete.setId( entry.getValue() ); |
829 |
0
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationToDeleteNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
830 |
|
null); |
831 |
0
|
relationToDeleteNode.setNodeData(relationToDelete); |
832 |
0
|
relationToDeleteNode.setOperation(NodeOperation.DELETE); |
833 |
0
|
results.add(relationToDeleteNode); |
834 |
|
} |
835 |
|
} |
836 |
0
|
return results; |
837 |
|
} |
|
|
| 60% |
Uncovered Elements: 6 (15) |
Complexity: 8 |
Complexity Density: 0.89 |
|
838 |
29
|
public List<BaseDTOAssemblyNode<?, ?>> addAllRelationNodes(String cluId, String relatedCluId, String relationType, NodeOperation operation, Map<String, String> currentRelations)throws AssemblyException{... |
839 |
29
|
List<BaseDTOAssemblyNode<?, ?>> results = new ArrayList<BaseDTOAssemblyNode<?, ?>>(); |
840 |
|
|
841 |
29
|
if (NodeOperation.CREATE == operation |
842 |
|
|| (NodeOperation.UPDATE == operation && !currentRelations.containsKey(relatedCluId) )) { |
843 |
|
|
844 |
27
|
addCreateRelationNode(cluId, relatedCluId, relationType, results); |
845 |
2
|
} else if (NodeOperation.UPDATE == operation |
846 |
|
&& currentRelations.containsKey(relatedCluId)) { |
847 |
|
|
848 |
|
|
849 |
|
|
850 |
|
|
851 |
2
|
currentRelations.remove(relatedCluId); |
852 |
0
|
} else if (NodeOperation.DELETE == operation |
853 |
|
&& currentRelations.containsKey(relatedCluId)) { |
854 |
|
|
855 |
0
|
addDeleteRelationNodes(currentRelations, results); |
856 |
|
|
857 |
|
|
858 |
|
|
859 |
0
|
currentRelations.remove(relatedCluId); |
860 |
|
} |
861 |
|
|
862 |
29
|
return results; |
863 |
|
} |
|
|
| 90% |
Uncovered Elements: 1 (10) |
Complexity: 6 |
Complexity Density: 0.75 |
|
864 |
3
|
public Map<String, String> getCluCluRelations(String cluId, String relationType) throws AssemblyException{... |
865 |
3
|
Map<String, String> currentRelations = new HashMap<String, String>(); |
866 |
|
|
867 |
3
|
try { |
868 |
3
|
List<CluCluRelationInfo> cluRelations = luService.getCluCluRelationsByClu(cluId); |
869 |
|
|
870 |
3
|
for (CluCluRelationInfo cluRelation : cluRelations) { |
871 |
13
|
if (relationType.equals(cluRelation.getType())) { |
872 |
4
|
currentRelations.put(cluRelation.getRelatedCluId(), cluRelation.getId()); |
873 |
|
} |
874 |
|
} |
875 |
|
} catch (DoesNotExistException e) { |
876 |
|
} catch (InvalidParameterException e) { |
877 |
|
} catch (MissingParameterException e) { |
878 |
|
} catch (OperationFailedException e) { |
879 |
0
|
throw new AssemblyException("Error getting related clus", e); |
880 |
|
} |
881 |
|
|
882 |
3
|
return currentRelations; |
883 |
|
} |
884 |
|
|
|
|
| 90% |
Uncovered Elements: 1 (10) |
Complexity: 8 |
Complexity Density: 1 |
|
885 |
22
|
public Map<String, CluCluRelationInfo> getCluCluActiveRelations(String cluId, String relationType) throws AssemblyException{... |
886 |
22
|
Map<String, CluCluRelationInfo> currentRelations = new HashMap<String, CluCluRelationInfo>(); |
887 |
|
|
888 |
22
|
try { |
889 |
22
|
List<CluCluRelationInfo> cluRelations = luService.getCluCluRelationsByClu(cluId); |
890 |
|
|
891 |
22
|
for (CluCluRelationInfo cluRelation : cluRelations) { |
892 |
97
|
if (relationType.equals(cluRelation.getType()) && (!cluRelation.getState().isEmpty() && cluRelation.getState().equalsIgnoreCase(DtoConstants.STATE_ACTIVE))) { |
893 |
47
|
currentRelations.put(cluRelation.getRelatedCluId(), cluRelation); |
894 |
|
} |
895 |
|
} |
896 |
|
} catch (DoesNotExistException e) { |
897 |
|
} catch (InvalidParameterException e) { |
898 |
|
} catch (MissingParameterException e) { |
899 |
|
} catch (OperationFailedException e) { |
900 |
0
|
throw new AssemblyException("Error getting related clus", e); |
901 |
|
} |
902 |
|
|
903 |
22
|
return currentRelations; |
904 |
|
} |
905 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (9) |
Complexity: 1 |
Complexity Density: 0.11 |
|
906 |
34
|
public void addCreateRelationNode(String cluId, String relatedCluId, String relationType, List<BaseDTOAssemblyNode<?, ?>> results){... |
907 |
34
|
CluCluRelationInfo relation = new CluCluRelationInfo(); |
908 |
34
|
relation.setCluId(cluId); |
909 |
34
|
relation.setRelatedCluId(relatedCluId); |
910 |
34
|
relation.setType(relationType); |
911 |
|
|
912 |
|
|
913 |
|
|
914 |
|
|
915 |
34
|
relation.setState(DtoConstants.STATE_ACTIVE); |
916 |
|
|
917 |
34
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
918 |
|
null); |
919 |
34
|
relationNode.setNodeData(relation); |
920 |
34
|
relationNode.setOperation(NodeOperation.CREATE); |
921 |
|
|
922 |
34
|
results.add(relationNode); |
923 |
|
|
924 |
|
} |
925 |
|
|
|
|
| 0% |
Uncovered Elements: 7 (7) |
Complexity: 1 |
Complexity Density: 0.14 |
|
926 |
0
|
public void addDeleteRelationNodes(Map<String, String> currentRelations, List<BaseDTOAssemblyNode<?, ?>> results){... |
927 |
0
|
for (Map.Entry<String, String> entry : currentRelations.entrySet()) { |
928 |
|
|
929 |
|
|
930 |
0
|
CluCluRelationInfo relationToDelete = new CluCluRelationInfo(); |
931 |
0
|
relationToDelete.setId( entry.getValue() ); |
932 |
0
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> relationToDeleteNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
933 |
|
null); |
934 |
0
|
relationToDeleteNode.setNodeData(relationToDelete); |
935 |
0
|
relationToDeleteNode.setOperation(NodeOperation.DELETE); |
936 |
0
|
results.add(relationToDeleteNode); |
937 |
|
} |
938 |
|
} |
939 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (8) |
Complexity: 1 |
Complexity Density: 0.12 |
|
940 |
1
|
public void addSuspendedRelationNodes(Map<String, CluCluRelationInfo> currentRelations, List<BaseDTOAssemblyNode<?, ?>> results){... |
941 |
1
|
for (Map.Entry<String, CluCluRelationInfo> entry : currentRelations.entrySet()) { |
942 |
1
|
CluCluRelationInfo suspendedRelation = new CluCluRelationInfo(); |
943 |
1
|
suspendedRelation = entry.getValue(); |
944 |
1
|
suspendedRelation.setState(DtoConstants.STATE_SUSPENDED); |
945 |
1
|
BaseDTOAssemblyNode<Object, CluCluRelationInfo> suspendedRelationNode = new BaseDTOAssemblyNode<Object, CluCluRelationInfo>( |
946 |
|
null); |
947 |
1
|
suspendedRelationNode.setNodeData(suspendedRelation); |
948 |
1
|
suspendedRelationNode.setOperation(NodeOperation.UPDATE); |
949 |
1
|
results.add(suspendedRelationNode); |
950 |
|
} |
951 |
|
} |
952 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (8) |
Complexity: 3 |
Complexity Density: 0.5 |
|
953 |
260
|
private void addLuCodeFromProgram(String type, String value, List<LuCodeInfo> list) throws AssemblyException {... |
954 |
|
|
955 |
260
|
if (value != null && !value.isEmpty()) { |
956 |
191
|
LuCodeInfo code = new LuCodeInfo(); |
957 |
191
|
code.setType(type); |
958 |
191
|
code.setValue(value); |
959 |
191
|
code.setAttributes(new HashMap<String, String>()); |
960 |
191
|
list.add(code); |
961 |
|
} |
962 |
|
} |
963 |
|
|
964 |
|
|
965 |
|
|
966 |
|
|
967 |
|
@param |
968 |
|
@param |
969 |
|
@param |
970 |
|
@return |
971 |
|
@throws |
972 |
|
|
|
|
| 73.5% |
Uncovered Elements: 13 (49) |
Complexity: 14 |
Complexity Density: 0.38 |
|
973 |
50
|
private List<BaseDTOAssemblyNode<?, ?>> disassemblePublicationTargets(ProgramPublicationAssembly program, NodeOperation operation) throws AssemblyException {... |
974 |
|
|
975 |
50
|
List<BaseDTOAssemblyNode<?, ?>> results = new ArrayList<BaseDTOAssemblyNode<?, ?>>(); |
976 |
|
|
977 |
50
|
Map<String, CluPublicationInfo> currentPubs = new HashMap<String, CluPublicationInfo>(); |
978 |
50
|
if (!NodeOperation.CREATE.equals(operation)) { |
979 |
|
|
980 |
|
|
981 |
34
|
try { |
982 |
34
|
List<CluPublicationInfo> cluPubs = luService.getCluPublicationsByCluId(program.getId()); |
983 |
34
|
for(CluPublicationInfo cluPub : cluPubs){ |
984 |
30
|
cluPub.setState(program.getState()); |
985 |
30
|
if (!cluPub.getType().equals(ProgramAssemblerConstants.CATALOG)) { |
986 |
11
|
currentPubs.put(cluPub.getType(), cluPub); |
987 |
|
} |
988 |
|
} |
989 |
|
} catch (DoesNotExistException e) { |
990 |
|
} catch (Exception e) { |
991 |
0
|
throw new AssemblyException("Error finding publications"); |
992 |
|
} |
993 |
|
} |
994 |
|
|
995 |
50
|
if (program.getCatalogPublicationTargets() != null && !program.getCatalogPublicationTargets().isEmpty()) { |
996 |
21
|
for (String publicationType : program.getCatalogPublicationTargets()) { |
997 |
|
|
998 |
42
|
if (NodeOperation.CREATE == operation |
999 |
|
|| (NodeOperation.UPDATE == operation && !currentPubs.containsKey(publicationType) )) { |
1000 |
|
|
1001 |
31
|
CluPublicationInfo pubInfo = buildCluPublicationInfo(program.getId(), publicationType); |
1002 |
|
|
1003 |
|
|
1004 |
31
|
pubInfo.setState(program.getState()); |
1005 |
31
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
1006 |
|
null); |
1007 |
31
|
pubNode.setNodeData(pubInfo); |
1008 |
31
|
pubNode.setOperation(NodeOperation.CREATE); |
1009 |
|
|
1010 |
31
|
results.add(pubNode); |
1011 |
11
|
} else if (NodeOperation.UPDATE == operation |
1012 |
|
&& currentPubs.containsKey(publicationType)) { |
1013 |
|
|
1014 |
|
|
1015 |
|
|
1016 |
11
|
CluPublicationInfo pubInfo = currentPubs.remove(publicationType); |
1017 |
11
|
pubInfo.setState(program.getState()); |
1018 |
11
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
1019 |
|
null); |
1020 |
11
|
pubNode.setNodeData(pubInfo); |
1021 |
11
|
pubNode.setOperation(NodeOperation.UPDATE); |
1022 |
11
|
results.add(pubNode); |
1023 |
0
|
} else if (NodeOperation.DELETE == operation |
1024 |
|
&& currentPubs.containsKey(publicationType)) { |
1025 |
|
|
1026 |
0
|
CluPublicationInfo pubToDelete = new CluPublicationInfo(); |
1027 |
0
|
pubToDelete.setId(publicationType); |
1028 |
0
|
BaseDTOAssemblyNode<Object, CluPublicationInfo> pubToDeleteNode = new BaseDTOAssemblyNode<Object, CluPublicationInfo>( |
1029 |
|
null); |
1030 |
0
|
pubToDeleteNode.setNodeData(pubToDelete); |
1031 |
0
|
pubToDeleteNode.setOperation(NodeOperation.DELETE); |
1032 |
0
|
results.add(pubToDeleteNode); |
1033 |
|
|
1034 |
0
|
currentPubs.remove(publicationType); |
1035 |
|
} |
1036 |
|
} |
1037 |
|
} |
1038 |
|
|
1039 |
|
|
1040 |
50
|
for (Map.Entry<String, CluPublicationInfo> entry : currentPubs.entrySet()) { |
1041 |
|
|
1042 |
|
|
1043 |
0
|
deletePublicationInfo(results, entry.getValue()); |
1044 |
|
} |
1045 |
|
|
1046 |
50
|
return results; |
1047 |
|
} |
1048 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
1049 |
55
|
private CluPublicationInfo buildCluPublicationInfo(String programId, String publicationType) throws AssemblyException {... |
1050 |
|
|
1051 |
55
|
CluPublicationInfo pubInfo = new CluPublicationInfo(); |
1052 |
55
|
pubInfo.setType(publicationType); |
1053 |
55
|
pubInfo.setCluId(programId); |
1054 |
|
|
1055 |
55
|
return pubInfo; |
1056 |
|
} |
1057 |
|
|
1058 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
1059 |
1
|
public void setLuService(LuService luService) {... |
1060 |
1
|
this.luService = luService; |
1061 |
|
} |
1062 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
1063 |
1
|
public void setCluAssemblerUtils(CluAssemblerUtils cluAssemblerUtils) {... |
1064 |
1
|
this.cluAssemblerUtils = cluAssemblerUtils; |
1065 |
|
} |
1066 |
|
|
|
|
| 61.5% |
Uncovered Elements: 5 (13) |
Complexity: 5 |
Complexity Density: 0.56 |
|
1067 |
14
|
public String getCredentialProgramID(String cluId) throws AssemblyException {... |
1068 |
|
|
1069 |
14
|
List<String> credentialProgramIDs = null; |
1070 |
14
|
try { |
1071 |
14
|
credentialProgramIDs = luService.getCluIdsByRelation(cluId, ProgramAssemblerConstants.HAS_MAJOR_PROGRAM); |
1072 |
|
} catch (Exception e) { |
1073 |
0
|
throw new AssemblyException(e); |
1074 |
|
} |
1075 |
|
|
1076 |
|
|
1077 |
14
|
if (null == credentialProgramIDs || credentialProgramIDs.isEmpty()) { |
1078 |
0
|
throw new AssemblyException("Program with ID == " + cluId + " has no Credential Program associated with it."); |
1079 |
14
|
} else if (credentialProgramIDs.size() > 1) { |
1080 |
0
|
throw new AssemblyException("Program with ID == " + cluId + " has more than one Credential Program associated with it."); |
1081 |
|
} |
1082 |
14
|
return credentialProgramIDs.get(0); |
1083 |
|
} |
1084 |
|
|
1085 |
|
} |