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.assembly.BOAssembler;
19 import org.kuali.student.common.assembly.BaseDTOAssemblyNode;
20 import org.kuali.student.common.assembly.BaseDTOAssemblyNode.NodeOperation;
21 import org.kuali.student.common.assembly.data.AssemblyException;
22 import org.kuali.student.common.util.UUIDHelper;
23 import org.kuali.student.lum.course.dto.ActivityInfo;
24 import org.kuali.student.lum.lu.dto.CluInfo;
25 import org.kuali.student.lum.lu.service.LuService;
26
27
28
29
30
31
32
33 public class ActivityAssembler implements BOAssembler<ActivityInfo, CluInfo> {
34
35 private LuService luService;
36
37 @Override
38 public ActivityInfo assemble(CluInfo clu, ActivityInfo activity, boolean shallowBuild) {
39 if(clu == null){
40 return null;
41 }
42
43 ActivityInfo activityInfo = (null != activity) ? activity : new ActivityInfo();
44
45 activityInfo.setId(clu.getId());
46 activityInfo.setActivityType(clu.getType());
47 activityInfo.setState(clu.getState());
48 activityInfo.setDefaultEnrollmentEstimate(clu.getDefaultEnrollmentEstimate());
49 activityInfo.setDuration(clu.getStdDuration());
50 activityInfo.setContactHours(clu.getIntensity());
51 activityInfo.setMetaInfo(clu.getMetaInfo());
52 activityInfo.setAttributes(clu.getAttributes());
53 return activityInfo;
54 }
55
56 @Override
57 public BaseDTOAssemblyNode<ActivityInfo,CluInfo> disassemble(
58 ActivityInfo activity, NodeOperation operation) throws AssemblyException {
59 if (activity==null) {
60
61 throw new AssemblyException("Activity can not be null");
62 }
63 if (NodeOperation.CREATE != operation && null == activity.getId()) {
64 throw new AssemblyException("Activity's id can not be null");
65 }
66
67 BaseDTOAssemblyNode<ActivityInfo,CluInfo> result = new BaseDTOAssemblyNode<ActivityInfo,CluInfo>(this);
68
69 CluInfo clu;
70 try {
71 clu = (NodeOperation.UPDATE == operation) ? luService.getClu(activity.getId()) : new CluInfo();
72 } catch (Exception e) {
73 throw new AssemblyException("Error retrieving activity learning unit during update", e);
74 }
75
76
77 clu.setId(UUIDHelper.genStringUUID(activity.getId()));
78 clu.setType(activity.getActivityType());
79 clu.setState(activity.getState());
80 clu.setDefaultEnrollmentEstimate(activity.getDefaultEnrollmentEstimate());
81 clu.setStdDuration(activity.getDuration());
82 clu.setIntensity(activity.getContactHours());
83 clu.setMetaInfo(activity.getMetaInfo());
84 clu.setAttributes(activity.getAttributes());
85
86
87 result.setNodeData(clu);
88
89
90 result.setBusinessDTORef(activity);
91
92 result.setOperation(operation);
93
94 return result;
95 }
96
97 public void setLuService(LuService luService) {
98 this.luService = luService;
99 }
100
101 public LuService getLuService() {
102 return luService;
103 }
104 }