1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.lum.course.service.assembler;
17
18 import org.kuali.student.common.util.UUIDHelper;
19 import org.kuali.student.core.assembly.BOAssembler;
20 import org.kuali.student.core.assembly.BaseDTOAssemblyNode;
21 import org.kuali.student.core.assembly.BaseDTOAssemblyNode.NodeOperation;
22 import org.kuali.student.core.assembly.data.AssemblyException;
23 import org.kuali.student.lum.course.dto.CourseJointInfo;
24 import org.kuali.student.lum.lu.dto.CluCluRelationInfo;
25 import org.kuali.student.lum.lu.dto.CluInfo;
26 import org.kuali.student.lum.lu.service.LuService;
27
28
29
30
31
32
33
34 public class CourseJointAssembler implements BOAssembler<CourseJointInfo, CluCluRelationInfo> {
35
36 LuService luService;
37
38
39
40
41 public LuService getLuService() {
42 return luService;
43 }
44
45
46
47
48 public void setLuService(LuService luService) {
49 this.luService = luService;
50 }
51
52 @Override
53 public CourseJointInfo assemble(CluCluRelationInfo cluRel, CourseJointInfo jointInfo, boolean shallowBuild) throws AssemblyException {
54 if(null == cluRel) {
55 return null;
56 }
57
58 CourseJointInfo joint = (jointInfo != null) ? jointInfo : new CourseJointInfo();
59
60 CluInfo clu;
61 try {
62 clu = luService.getClu(cluRel.getRelatedCluId());
63
64 joint.setCourseId(clu.getId());
65 joint.setType(clu.getType());
66 joint.setSubjectArea(clu.getOfficialIdentifier().getDivision());
67 joint.setCourseTitle(clu.getOfficialIdentifier().getLongName());
68 joint.setCourseNumberSuffix(clu.getOfficialIdentifier().getSuffixCode());
69 joint.setRelationId(cluRel.getId());
70
71 } catch (Exception e) {
72 throw new AssemblyException("Error getting related clus", e);
73 }
74
75 return joint;
76 }
77
78 @Override
79 public BaseDTOAssemblyNode<CourseJointInfo, CluCluRelationInfo> disassemble(
80 CourseJointInfo joint, NodeOperation operation) throws AssemblyException {
81
82 if(null == joint){
83
84 throw new AssemblyException("Activity can not be null");
85 }
86
87 BaseDTOAssemblyNode<CourseJointInfo, CluCluRelationInfo> result = new BaseDTOAssemblyNode<CourseJointInfo, CluCluRelationInfo>(this);
88 result.setBusinessDTORef(joint);
89 result.setOperation(operation);
90
91 CluCluRelationInfo cluRel = new CluCluRelationInfo();
92 cluRel.setId(UUIDHelper.genStringUUID(joint.getRelationId()));
93 cluRel.setRelatedCluId(joint.getCourseId());
94 cluRel.setType(CourseAssemblerConstants.JOINT_RELATION_TYPE);
95 result.setNodeData(cluRel);
96
97
98 return result;
99 }
100 }