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.common.dto.HasAttributes;
30  import org.kuali.student.common.dto.HasTypeState;
31  import org.kuali.student.common.dto.Idable;
32  import org.kuali.student.common.dto.MetaInfo;
33  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
34  
35  /**
36   *Detailed information about a LUI to LUI relationship.
37   */ 
38  @XmlAccessorType(XmlAccessType.FIELD)
39  public class LuiLuiRelationInfo implements Serializable, Idable, HasTypeState, HasAttributes {
40  
41      private static final long serialVersionUID = 1L;
42  
43      @XmlElement
44      private String luiId;
45  
46      @XmlElement
47      private String relatedLuiId;
48  
49      @XmlElement
50      private Date effectiveDate;
51  
52      @XmlElement
53      private Date expirationDate;
54  
55      @XmlElement
56      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
57      private Map<String, String> attributes;
58  
59      @XmlElement
60      private MetaInfo metaInfo;
61  
62      @XmlAttribute
63      private String type;
64  
65      @XmlAttribute
66      private String state;
67  
68      @XmlAttribute
69      private String id;
70  
71      /**
72       * Unique identifier for a Learning Unit Instance (LUI).
73       */
74      public String getLuiId() {
75          return luiId;
76      }
77  
78      public void setLuiId(String luiId) {
79          this.luiId = luiId;
80      }
81  
82      /**
83       * Unique identifier for a Learning Unit Instance (LUI).
84       */
85      public String getRelatedLuiId() {
86          return relatedLuiId;
87      }
88  
89      public void setRelatedLuiId(String relatedLuiId) {
90          this.relatedLuiId = relatedLuiId;
91      }
92  
93      /**
94       * Date and time that this LUI to LUI relationship type 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.
95       */
96      public Date getEffectiveDate() {
97          return effectiveDate;
98      }
99  
100     public void setEffectiveDate(Date effectiveDate) {
101         this.effectiveDate = effectiveDate;
102     }
103 
104     /**
105      * Date and time that this LUI to LUI relationship type 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.
106      */
107     public Date getExpirationDate() {
108         return expirationDate;
109     }
110 
111     public void setExpirationDate(Date expirationDate) {
112         this.expirationDate = expirationDate;
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 the LU to LU relation type.
142      */
143     public String getType() {
144         return type;
145     }
146 
147     public void setType(String type) {
148         this.type = type;
149     }
150 
151     /**
152      * The current status of the LUI to LUI relationship. The values for this field are constrained to those in the luLuRelationState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
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 a LUI to LUI relation. 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.
164      */
165     public String getId() {
166         return id;
167     }
168 
169     public void setId(String id) {
170         this.id = id;
171     }
172 }