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.core.statement.dto;
17  
18  import java.io.Serializable;
19  import java.util.ArrayList;
20  import java.util.Date;
21  import java.util.List;
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  
28  import org.kuali.student.common.dto.HasTypeState;
29  import org.kuali.student.common.dto.Idable;
30  import org.kuali.student.common.dto.MetaInfo;
31  import org.kuali.student.common.dto.RichTextInfo;
32  
33  /**
34   *Information about a requirement component.
35   */ 
36  @XmlAccessorType(XmlAccessType.FIELD)
37  public class ReqComponentInfo implements Serializable, Idable, HasTypeState {
38  
39  	private static final long serialVersionUID = 1L;
40  
41      @XmlElement
42      private RichTextInfo desc;
43  
44      @XmlElement
45      private List<ReqCompFieldInfo> reqCompFields;
46  
47      @XmlElement
48      private Date effectiveDate;
49  
50      @XmlElement
51      private Date expirationDate;
52  
53      @XmlElement
54      private MetaInfo metaInfo;
55  
56      @XmlAttribute
57      private String type;
58  
59      @XmlAttribute
60      private String state;
61  
62      @XmlAttribute
63      private String id;
64  
65      /**
66       * <code>naturalLanguageTranslation</code> attribute is a read-only 
67       * attribute which is generated on-the-fly and should not be persisted.
68       */
69      @XmlAttribute
70      private String naturalLanguageTranslation;
71      
72  	/**
73       * Narrative description of the requirement component.
74       */
75      public RichTextInfo getDesc() {
76          return desc;
77      }
78  
79      public void setDesc(RichTextInfo desc) {
80          this.desc = desc;
81      }
82  
83      /**
84       * Detailed information about a requirement component field value.
85       */
86      public List<ReqCompFieldInfo> getReqCompFields() {
87          if(null == reqCompFields) {
88              reqCompFields = new ArrayList<ReqCompFieldInfo>();
89          }
90          return reqCompFields;
91      }
92  
93      public void setReqCompFields(List<ReqCompFieldInfo> reqCompFields) {
94          this.reqCompFields = reqCompFields;
95      }
96  
97      /**
98       * Date and time that this requirement component 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.
99       */
100     public Date getEffectiveDate() {
101         return effectiveDate;
102     }
103 
104     public void setEffectiveDate(Date effectiveDate) {
105         this.effectiveDate = effectiveDate;
106     }
107 
108     /**
109      * Date and time that this requirement component expires. This is a similar concept to the expiration date on enumerated values. If specified, this must 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.
110      */
111     public Date getExpirationDate() {
112         return expirationDate;
113     }
114 
115     public void setExpirationDate(Date expirationDate) {
116         this.expirationDate = expirationDate;
117     }
118 
119     /**
120      * 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.
121      */
122     public MetaInfo getMetaInfo() {
123         return metaInfo;
124     }
125 
126     public void setMetaInfo(MetaInfo metaInfo) {
127         this.metaInfo = metaInfo;
128     }
129 
130     /**
131      * Unique identifier for a requirement component type.
132      */
133     public String getType() {
134         return type;
135     }
136 
137     public void setType(String type) {
138         this.type = type;
139     }
140     
141 	/**
142      * The current status of the requirement component. The values for this field are constrained to those in the reqComponentState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
143      */
144     public String getState() {
145         return state;
146     }
147 
148     public void setState(String state) {
149         this.state = state;
150     }
151 
152     /**
153      * Unique identifier for a requirement component. This is optional, due to the identifier being set at the time of creation. Once the requirement component has been created, this should be seen as required.
154      */
155     public String getId() {
156         return id;
157     }
158 
159     public void setId(String id) {
160         this.id = id;
161     }
162 
163 	public String getNaturalLanguageTranslation() {
164 		return naturalLanguageTranslation;
165 	}
166 
167 	public void setNaturalLanguageTranslation(String naturalLanguageTranslation) {
168 		this.naturalLanguageTranslation = naturalLanguageTranslation;
169 	}
170 
171     @Override
172 	public String toString() {
173 		return "ReqComponentInfo[id=" + id + ", type=" + type + ", state="
174 				+ state + "]";
175 	}
176 }