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.Date;
20  import java.util.HashMap;
21  import java.util.Map;
22  
23  import javax.xml.bind.annotation.XmlAccessType;
24  import javax.xml.bind.annotation.XmlAccessorType;
25  import javax.xml.bind.annotation.XmlAttribute;
26  import javax.xml.bind.annotation.XmlElement;
27  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
28  
29  import org.kuali.student.core.dto.HasAttributes;
30  import org.kuali.student.core.dto.HasTypeState;
31  import org.kuali.student.core.dto.Idable;
32  import org.kuali.student.core.dto.MetaInfo;
33  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
34  
35  /**
36   * Detailed information about a CLU to LO relation.
37   *
38   * @Author KSContractMojo
39   * @Author Kamal
40   * @Since Mon Jan 11 15:21:39 PST 2010
41   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/cluLoRelationInfo+Structure+v1.0-rc1">CluLoRelationInfo v1.0-rc1</>
42   *
43   */
44  @XmlAccessorType(XmlAccessType.FIELD)
45  public class CluLoRelationInfo  implements Serializable, Idable, HasTypeState, HasAttributes {
46  
47      private static final long serialVersionUID = 1L;
48  
49      @XmlElement
50      private String cluId;
51  
52      @XmlElement
53      private String loId;
54  
55      @XmlElement
56      private Date effectiveDate;
57  
58      @XmlElement
59      private Date expirationDate;
60  
61      @XmlElement
62      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
63      private Map<String, String> attributes;
64  
65      @XmlElement
66      private MetaInfo metaInfo;
67  
68      @XmlAttribute
69      private String type;
70  
71      @XmlAttribute
72      private String state;
73  
74      @XmlAttribute
75      private String id;
76  
77      /**
78       * Unique identifier for a Canonical Learning Unit (CLU).
79       */
80      public String getCluId() {
81          return cluId;
82      }
83  
84      public void setCluId(String cluId) {
85          this.cluId = cluId;
86      }
87  
88      /**
89       * Unique identifier for a learning objective record.
90       */
91      public String getLoId() {
92          return loId;
93      }
94  
95      public void setLoId(String loId) {
96          this.loId = loId;
97      }
98  
99      /**
100      * Date and time that this CLU to LO relationship 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.
101      */
102     public Date getEffectiveDate() {
103         return effectiveDate;
104     }
105 
106     public void setEffectiveDate(Date effectiveDate) {
107         this.effectiveDate = effectiveDate;
108     }
109 
110     /**
111      * Date and time that this CLU to LO relationship 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.
112      */
113     public Date getExpirationDate() {
114         return expirationDate;
115     }
116 
117     public void setExpirationDate(Date expirationDate) {
118         this.expirationDate = expirationDate;
119     }
120 
121     /**
122      * List of key/value pairs, typically used for dynamic attributes.
123      */
124     public Map<String, String> getAttributes() {
125         if (attributes == null) {
126             attributes = new HashMap<String, String>();
127         }
128         return attributes;
129     }
130 
131     public void setAttributes(Map<String, String> attributes) {
132         this.attributes = attributes;
133     }
134 
135     /**
136      * 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.
137      */
138     public MetaInfo getMetaInfo() {
139         return metaInfo;
140     }
141 
142     public void setMetaInfo(MetaInfo metaInfo) {
143         this.metaInfo = metaInfo;
144     }
145 
146     /**
147      * Unique identifier for a clu lo relation type.
148      */
149     public String getType() {
150         return type;
151     }
152 
153     public void setType(String type) {
154         this.type = type;
155     }
156 
157     /**
158      * Identifier for the current status of a CLU to LO relationship. The values for this field are constrained to those in the luLoRelationState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
159      */
160     public String getState() {
161         return state;
162     }
163 
164     public void setState(String state) {
165         this.state = state;
166     }
167 
168     /**
169      * Unique identifier for a single CLU LO Relation record. This is optional, due to the identifier being set at the time of creation. Once the relation has been created, this should be seen as required.
170      */
171     public String getId() {
172         return id;
173     }
174 
175     public void setId(String id) {
176         this.id = id;
177     }
178 
179     @Override
180     public String toString() {
181     	return "CLuLoRelationInfo[id=" + id + ", cluId=" + cluId + ", loId=" + loId + "]";
182     }
183 
184 }