001 /**
002 * Copyright 2010 The Kuali Foundation Licensed under the
003 * Educational Community License, Version 2.0 (the "License"); you may
004 * not use this file except in compliance with the License. You may
005 * obtain a copy of the License at
006 *
007 * http://www.osedu.org/licenses/ECL-2.0
008 *
009 * Unless required by applicable law or agreed to in writing,
010 * software distributed under the License is distributed on an "AS IS"
011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012 * or implied. See the License for the specific language governing
013 * permissions and limitations under the License.
014 */
015
016 package org.kuali.student.lum.lu.dto;
017
018 import java.io.Serializable;
019 import java.util.ArrayList;
020 import java.util.Date;
021 import java.util.HashMap;
022 import java.util.List;
023 import java.util.Map;
024
025 import javax.xml.bind.annotation.XmlAccessType;
026 import javax.xml.bind.annotation.XmlAccessorType;
027 import javax.xml.bind.annotation.XmlAttribute;
028 import javax.xml.bind.annotation.XmlElement;
029 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
030
031 import org.kuali.student.common.dto.HasAttributes;
032 import org.kuali.student.common.dto.Idable;
033 import org.kuali.student.common.dto.MetaInfo;
034 import org.kuali.student.common.dto.RichTextInfo;
035 import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
036
037 /**
038 *Detailed information about a single CLU Set.
039 */
040 @XmlAccessorType(XmlAccessType.FIELD)
041 public class CluSetInfo implements Serializable, Idable, HasAttributes {
042
043 private static final long serialVersionUID = 1L;
044
045 @XmlElement
046 private String name;
047
048 @XmlElement
049 private RichTextInfo descr;
050
051 @XmlElement
052 private Date effectiveDate;
053
054 @XmlElement
055 private Date expirationDate;
056
057 @XmlElement
058 private MembershipQueryInfo membershipQuery;
059
060 @XmlElement
061 private String adminOrg;
062
063 @XmlElement
064 private Boolean isReusable;
065
066 @XmlElement
067 private Boolean isReferenceable;
068
069 @XmlElement
070 private List<String> cluSetIds;
071
072 @XmlElement
073 private List<String> cluIds;
074
075 @XmlElement
076 @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
077 private Map<String, String> attributes;
078
079 @XmlElement
080 private MetaInfo metaInfo;
081
082 @XmlAttribute
083 private String type;
084
085 @XmlAttribute
086 private String state;
087
088 @XmlAttribute
089 private String id;
090
091 /**
092 * Friendly name of the CLU Set.
093 */
094 public String getName() {
095 return name;
096 }
097
098 public void setName(String name) {
099 this.name = name;
100 }
101
102 /**
103 * Narrative description of the CLU Set.
104 */
105 public RichTextInfo getDescr() {
106 return descr;
107 }
108
109 public void setDescr(RichTextInfo descr) {
110 this.descr = descr;
111 }
112
113 /**
114 * Date and time that this CLU Set became effective. This is a similar concept to the effective date on enumerated values. When an expiration date has been specified, this field must be less than or equal to the expiration date.
115 */
116 public Date getEffectiveDate() {
117 return effectiveDate;
118 }
119
120 public void setEffectiveDate(Date effectiveDate) {
121 this.effectiveDate = effectiveDate;
122 }
123
124 /**
125 * Date and time that this CLU Set expires. This is a similar concept to the expiration date on enumerated values. If specified, this should be greater than or equal to the effective date. If this field is not specified, then no expiration date has been currently defined and should automatically be considered greater than the effective date.
126 */
127 public Date getExpirationDate() {
128 return expirationDate;
129 }
130
131 public void setExpirationDate(Date expirationDate) {
132 this.expirationDate = expirationDate;
133 }
134
135 // /**
136 // * Specifies a search for CLU identifiers. Present for dynamic CLU Sets
137 // */
138 // public CluCriteriaInfo getCluCriteria() {
139 // return cluCriteria;
140 // }
141 //
142 // public void setCluCriteria(CluCriteriaInfo cluCriteria) {
143 // this.cluCriteria = cluCriteria;
144 // }
145
146 /**
147 * List of identifiers of directly contained CLU Sets. Present for enumerated CLU Sets.
148 */
149 public List<String> getCluSetIds() {
150 if (cluSetIds == null) {
151 cluSetIds = new ArrayList<String>();
152 }
153 return cluSetIds;
154 }
155
156 public void setCluSetIds(List<String> cluSetIds) {
157 this.cluSetIds = cluSetIds;
158 }
159
160 /**
161 * List of identifiers of directly contained CLUs. Present for enumerated CLU Sets.
162 */
163 public List<String> getCluIds() {
164 if (cluIds == null) {
165 cluIds = new ArrayList<String>();
166 }
167 return cluIds;
168 }
169
170 public void setCluIds(List<String> cluIds) {
171 this.cluIds = cluIds;
172 }
173
174 /**
175 * List of key/value pairs, typically used for dynamic attributes.
176 */
177 public Map<String, String> getAttributes() {
178 if (attributes == null) {
179 attributes = new HashMap<String, String>();
180 }
181 return attributes;
182 }
183
184 public void setAttributes(Map<String, String> attributes) {
185 this.attributes = attributes;
186 }
187
188 /**
189 * 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.
190 */
191 public MetaInfo getMetaInfo() {
192 return metaInfo;
193 }
194
195 public void setMetaInfo(MetaInfo metaInfo) {
196 this.metaInfo = metaInfo;
197 }
198
199 /**
200 * Unique identifier for a CLU Set. This is optional, due to the identifier being set at the time of creation. Once the CLU Set has been created, this should be seen as required.
201 */
202 public String getId() {
203 return id;
204 }
205
206 public void setId(String id) {
207 this.id = id;
208 }
209
210 public MembershipQueryInfo getMembershipQuery() {
211 return membershipQuery;
212 }
213
214 public void setMembershipQuery(MembershipQueryInfo membershipQuery) {
215 this.membershipQuery = membershipQuery;
216 }
217
218 /**
219 * Gets the clu set type.
220 * Once set at create time, this field may not be updated.
221 *
222 * @return Clu set type
223 */
224 public String getType() {
225 return type;
226 }
227
228 /**
229 * Sets the clu set type.
230 * Once set at create time, this field may not be updated.
231 *
232 * @param type Clu set type
233 */
234 public void setType(String type) {
235 this.type = type;
236 }
237
238 public String getState() {
239 return state;
240 }
241
242 public void setState(String state) {
243 this.state = state;
244 }
245
246 public String getAdminOrg() {
247 return adminOrg;
248 }
249
250 public void setAdminOrg(String adminOrg) {
251 this.adminOrg = adminOrg;
252 }
253
254 public Boolean getIsReusable() {
255 return isReusable;
256 }
257
258 public void setIsReusable(Boolean isReusable) {
259 this.isReusable = isReusable;
260 }
261
262 public Boolean getIsReferenceable() {
263 return isReferenceable;
264 }
265
266 public void setIsReferenceable(Boolean isReferenceable) {
267 this.isReferenceable = isReferenceable;
268 }
269 }