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.Date;
020    
021    import javax.xml.bind.annotation.XmlAccessType;
022    import javax.xml.bind.annotation.XmlAccessorType;
023    import javax.xml.bind.annotation.XmlAttribute;
024    import javax.xml.bind.annotation.XmlElement;
025    
026    import org.kuali.student.common.dto.Idable;
027    import org.kuali.student.common.dto.MetaInfo;
028    import org.kuali.student.common.dto.RichTextInfo;
029    
030    /**
031     * Information about a result option.
032     *
033     * @Author KSContractMojo
034     * @Author Kamal
035     * @Since Mon Jan 11 15:21:31 PST 2010
036     * @See <a href="https://test.kuali.org/confluence/display/KULSTU/resultOptionInfo+Structure+v1.0-rc3">ResultOptionInfo</>
037     *
038     */
039    @XmlAccessorType(XmlAccessType.FIELD)
040    public class ResultOptionInfo implements Serializable, Idable {
041    
042        private static final long serialVersionUID = 1L;
043    
044        @XmlElement
045        private RichTextInfo desc;
046    
047        @XmlElement
048        private String resultUsageTypeKey;
049    
050        @XmlElement
051        private String resultComponentId;
052    
053        @XmlElement
054        private Date effectiveDate;
055    
056        @XmlElement
057        private Date expirationDate;
058    
059        @XmlElement
060        private MetaInfo metaInfo;
061    
062        @XmlAttribute
063        private String state;
064    
065        @XmlAttribute
066        private String id;
067    
068        /**
069         * Narrative description of the result option.
070         */
071        public RichTextInfo getDesc() {
072            return desc;
073        }
074    
075        public void setDesc(RichTextInfo desc) {
076            this.desc = desc;
077        }
078    
079        /**
080         * Unique identifier for a result usage type.
081         */
082        public String getResultUsageTypeKey() {
083            return resultUsageTypeKey;
084        }
085    
086        public void setResultUsageTypeKey(String resultUsageTypeKey) {
087            this.resultUsageTypeKey = resultUsageTypeKey;
088        }
089    
090        /**
091         * Unique identifier for a result component.
092         */
093        public String getResultComponentId() {
094            return resultComponentId;
095        }
096    
097        public void setResultComponentId(String resultComponentId) {
098            this.resultComponentId = resultComponentId;
099        }
100    
101        /**
102         * Date and time that this result option 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.
103         */
104        public Date getEffectiveDate() {
105            return effectiveDate;
106        }
107    
108        public void setEffectiveDate(Date effectiveDate) {
109            this.effectiveDate = effectiveDate;
110        }
111    
112        /**
113         * Date and time that this result option 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.
114         */
115        public Date getExpirationDate() {
116            return expirationDate;
117        }
118    
119        public void setExpirationDate(Date expirationDate) {
120            this.expirationDate = expirationDate;
121        }
122    
123        /**
124         * 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.
125         */
126        public MetaInfo getMetaInfo() {
127            return metaInfo;
128        }
129    
130        public void setMetaInfo(MetaInfo metaInfo) {
131            this.metaInfo = metaInfo;
132        }
133    
134        /**
135         * The current status of the result option. The values for this field are constrained to those in the resultOptionState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
136         */
137        public String getState() {
138            return state;
139        }
140    
141        public void setState(String state) {
142            this.state = state;
143        }
144    
145        /**
146         * Unique identifier for a result option. This is optional, due to the identifier being set at the time of creation. Once the result option has been created, this should be seen as required.
147         */
148        public String getId() {
149            return id;
150        }
151    
152        public void setId(String id) {
153            this.id = id;
154        }
155    }