View Javadoc
1   package org.kuali.student.myplan.plan.dataobject;
2   
3   import java.io.Serializable;
4   import java.util.Date;
5   import java.util.List;
6   
7   import org.kuali.student.ap.academicplan.infc.PlanItem;
8   import org.kuali.student.ap.framework.config.KsapFrameworkServiceLocator;
9   import org.kuali.student.ap.framework.context.YearTerm;
10  import org.kuali.student.common.collection.KSCollectionUtils;
11  import org.kuali.student.r2.common.exceptions.OperationFailedException;
12  import org.kuali.student.r2.common.infc.Attribute;
13  import org.slf4j.Logger;
14  import org.slf4j.LoggerFactory;
15  
16  public class PlanItemDataObject implements Serializable {
17      private static final Logger LOG = LoggerFactory.getLogger(PlanItemDataObject.class);
18  	private static final long serialVersionUID = -3416993703358577253L;
19  
20  	//  Common properties.
21      private String id;
22  
23      private Date dateAdded;
24      private String planType;
25      private String atp;
26      private String refObjId;
27      private String refObjType;
28      private String term;
29      private String termName;
30      private int year;
31      private String creditPref;
32  
33      private String campusCode;
34      private String activityCode;
35  
36      public static PlanItemDataObject build(PlanItem item) {
37          PlanItemDataObject itemDO = new PlanItemDataObject();
38  
39          // At the application level we are only dealing with single ATP per plan item
40          try{
41              itemDO.setAtp(KSCollectionUtils.getRequiredZeroElement(item.getPlanTermIds()));
42              YearTerm termYear = KsapFrameworkServiceLocator.getTermHelper().getYearTerm(itemDO.getAtp());
43              itemDO.setTermName(termYear.getTermName());
44              itemDO.setYear(termYear.getYear());
45              itemDO.setTerm(termYear.getLongName());
46          }catch (OperationFailedException e){
47              LOG.warn("No term found during build",e);
48          }
49  
50          itemDO.setDateAdded(item.getMeta().getCreateTime());
51          itemDO.setId(item.getId());
52          itemDO.setRefObjId(item.getRefObjectId());
53          itemDO.setRefObjType(item.getRefObjectType());
54          itemDO.setPlanType(item.getTypeKey());
55  
56          for (Attribute attr : item.getAttributes()) {
57          	String value = attr.getValue();
58          	if ("campusCode".equals(attr.getKey()))
59          		itemDO.campusCode = value;
60          	if ("activityCode".equals(attr.getKey()))
61          		itemDO.activityCode = value;
62          }
63  
64          if(item.getCredits()!=null)itemDO.setCreditPref(item.getCredits().toString());
65  
66          return itemDO;
67      }
68  
69      //  Planned course specific properties.
70  
71      //  Ids of the ATPs associated with this course.
72      private List<String> atpIds;
73  
74      public String getId() {
75          return id;
76      }
77  
78      public void setId(String id) {
79          this.id = id;
80      }
81  
82      public Date getDateAdded() {
83          return dateAdded;
84      }
85  
86      public void setDateAdded(Date dateAdded) {
87          this.dateAdded = dateAdded;
88      }
89  
90      public String getPlanType() {
91          return planType;
92      }
93  
94      public void setPlanType(String planType) {
95          this.planType = planType;
96      }
97  
98      public String getAtp() {
99          return atp;
100     }
101 
102     public void setAtp(String atp) {
103         this.atp = atp;
104     }
105 
106     public String getRefObjId() {
107         return refObjId;
108     }
109 
110     public void setRefObjId(String refObjId) {
111         this.refObjId = refObjId;
112     }
113 
114     public String getRefObjType() {
115         return refObjType;
116     }
117 
118     public void setRefObjType(String refObjType) {
119         this.refObjType = refObjType;
120     }
121 
122     public String getTerm() {
123         return term;
124     }
125 
126     public void setTerm(String term) {
127         this.term = term;
128     }
129 
130     public int getYear() {
131         return year;
132     }
133 
134     public void setYear(int year) {
135         this.year = year;
136     }
137 
138     public String getCreditPref() {
139         return creditPref;
140     }
141 
142     public void setCreditPref(String creditPref) {
143         this.creditPref = creditPref;
144     }
145 
146     public List<String> getAtpIds() {
147         return atpIds;
148     }
149 
150     public void setAtpIds(List<String> atpIds) {
151         this.atpIds = atpIds;
152     }
153     public String getIdXmlSafe() {
154         return getId() == null ? null : getId().replace('.', '_');
155     }
156 
157     public String getTermName() {
158         return termName;
159     }
160 
161     public void setTermName(String termName) {
162         this.termName = termName;
163     }
164 
165 	public String getCampusCode() {
166 		return campusCode;
167 	}
168 
169 	public void setCampusCode(String campusCode) {
170 		this.campusCode = campusCode;
171 	}
172 
173 	public String getActivityCode() {
174 		return activityCode;
175 	}
176 
177 	public void setActivityCode(String activityCode) {
178 		this.activityCode = activityCode;
179 	}
180 
181 }