View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.lum.lu.dto;
17  
18  import java.io.Serializable;
19  import java.util.ArrayList;
20  import java.util.Date;
21  import java.util.HashMap;
22  import java.util.List;
23  import java.util.Map;
24  
25  import javax.xml.bind.annotation.XmlAccessType;
26  import javax.xml.bind.annotation.XmlAccessorType;
27  import javax.xml.bind.annotation.XmlAttribute;
28  import javax.xml.bind.annotation.XmlElement;
29  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
30  
31  import org.kuali.student.core.dto.HasAttributes;
32  import org.kuali.student.core.dto.Idable;
33  import org.kuali.student.core.dto.MetaInfo;
34  import org.kuali.student.core.dto.RichTextInfo;
35  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
36  
37  /**
38   *Detailed information about a single CLU Set.
39   */ 
40  @XmlAccessorType(XmlAccessType.FIELD)
41  public class CluSetInfo implements Serializable, Idable, HasAttributes {
42  
43      private static final long serialVersionUID = 1L;
44  
45      @XmlElement
46      private String name;
47  
48      @XmlElement
49      private RichTextInfo descr;
50  
51      @XmlElement
52      private Date effectiveDate;
53  
54      @XmlElement
55      private Date expirationDate;
56  
57      @XmlElement
58      private MembershipQueryInfo membershipQuery;
59      
60      @XmlElement
61      private String adminOrg;
62  
63      @XmlElement
64      private Boolean isReusable;
65  
66      @XmlElement
67      private Boolean isReferenceable;
68      
69      @XmlElement
70      private List<String> cluSetIds;
71  
72      @XmlElement
73      private List<String> cluIds;
74  
75      @XmlElement
76      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
77      private Map<String, String> attributes;
78  
79      @XmlElement
80      private MetaInfo metaInfo;
81  
82      @XmlAttribute
83      private String type;
84  
85      @XmlAttribute
86      private String state;
87  
88      @XmlAttribute
89      private String id;
90  
91      /**
92       * Friendly name of the CLU Set.
93       */
94      public String getName() {
95          return name;
96      }
97  
98      public void setName(String name) {
99          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 }