View Javadoc

1   /*
2    * Copyright 2009 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 1.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.student.lum.course.dto;
17  
18  import java.io.Serializable;
19  import java.util.ArrayList;
20  import java.util.HashMap;
21  import java.util.List;
22  import java.util.Map;
23  
24  import javax.xml.bind.annotation.XmlAccessType;
25  import javax.xml.bind.annotation.XmlAccessorType;
26  import javax.xml.bind.annotation.XmlAttribute;
27  import javax.xml.bind.annotation.XmlElement;
28  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
29  
30  import org.kuali.student.common.dto.AmountInfo;
31  import org.kuali.student.common.dto.HasAttributes;
32  import org.kuali.student.common.dto.Idable;
33  import org.kuali.student.common.dto.MetaInfo;
34  import org.kuali.student.common.dto.TimeAmountInfo;
35  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
36  
37  /**
38   * Detailed information about a single course activity.
39   *
40   * @Author KSContractMojo
41   * @Author Kamal
42   * @Since Tue May 18 11:30:56 PDT 2010
43   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/activityInfo+Structure">ActivityInfo</>
44   *
45   */
46  @XmlAccessorType(XmlAccessType.FIELD)
47  public class ActivityInfo implements Serializable, Idable, HasAttributes {
48  
49      private static final long serialVersionUID = 1L;
50  
51      @XmlElement
52      private TimeAmountInfo duration;
53  
54      @XmlElement
55      private List<String> unitsContentOwner;
56  
57      @XmlElement
58      private int defaultEnrollmentEstimate;
59  
60      @XmlElement
61      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
62      private Map<String, String> attributes;
63  
64      @XmlElement
65      private MetaInfo metaInfo;
66  
67      @XmlAttribute
68      private String activityType;
69  
70      @XmlAttribute
71      private String state;
72  
73      @XmlAttribute
74      private String id;
75      
76      @XmlElement
77      private AmountInfo contactHours;
78  
79      /**
80       * The standard duration of the Course.
81       */
82      public TimeAmountInfo getDuration() {
83          return duration;
84      }
85  
86      public void setDuration(TimeAmountInfo duration) {
87          this.duration = duration;
88      }
89  
90      /**
91       * The organizations that represents the Subject area of the course.
92       */
93      public List<String> getUnitsContentOwner() {
94          if (unitsContentOwner == null) {
95          	unitsContentOwner = new ArrayList<String>(0);
96          }
97          return unitsContentOwner;
98      }
99  
100     public void setUnitsContentOwner(List<String> unitsContentOwner) {
101         this.unitsContentOwner = unitsContentOwner;
102     }
103 
104     /**
105      * Default enrollment estimate for this CLU.
106      */
107     public int getDefaultEnrollmentEstimate() {
108         return defaultEnrollmentEstimate;
109     }
110 
111     public void setDefaultEnrollmentEstimate(int defaultEnrollmentEstimate) {
112         this.defaultEnrollmentEstimate = defaultEnrollmentEstimate;
113     }
114 
115     /**
116      * List of key/value pairs, typically used for dynamic attributes.
117      */
118     public Map<String, String> getAttributes() {
119         if (attributes == null) {
120             attributes = new HashMap<String, String>();
121         }
122         return attributes;
123     }
124 
125     public void setAttributes(Map<String, String> attributes) {
126         this.attributes = attributes;
127     }
128 
129     /**
130      * Create and last update info for the structure. This is optional and treated as read only since the data is set by the internals of the service during maintenance operations.
131      */
132     public MetaInfo getMetaInfo() {
133         return metaInfo;
134     }
135 
136     public void setMetaInfo(MetaInfo metaInfo) {
137         this.metaInfo = metaInfo;
138     }
139 
140     /**
141      * Unique identifier for a learning unit type. Once set at create time, this field may not be updated.
142      */
143     public String getActivityType() {
144         return activityType;
145     }
146 
147     public void setActivityType(String activityType) {
148         this.activityType = activityType;
149     }
150 
151     /**
152      * The current status of the course. The values for this field are constrained to those in the luState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value. This field may not be updated through updating this structure and must instead be updated through a dedicated operation.
153      */
154     public String getState() {
155         return state;
156     }
157 
158     public void setState(String state) {
159         this.state = state;
160     }
161 
162     /**
163      * Unique identifier for an Activity. This is optional, due to the identifier being set at the time of creation. Once the Course has been created, this should be seen as required.
164      */
165     public String getId() {
166         return id;
167     }
168 
169     public void setId(String id) {
170         this.id = id;
171     }
172 
173 	public void setContactHours(AmountInfo contactHours) {
174 		this.contactHours = contactHours;
175 	}
176     /**
177      * ContactHours for an Activity.
178      */
179 	public AmountInfo getContactHours() {
180 		return contactHours;
181 	}
182 }