View Javadoc

1   /*
2    * Copyright 2009 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 1.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.student.lum.course.dto;
17  
18  import java.io.Serializable;
19  import java.util.ArrayList;
20  import java.util.HashMap;
21  import java.util.List;
22  import java.util.Map;
23  
24  import javax.xml.bind.annotation.XmlAccessType;
25  import javax.xml.bind.annotation.XmlAccessorType;
26  import javax.xml.bind.annotation.XmlAttribute;
27  import javax.xml.bind.annotation.XmlElement;
28  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
29  
30  import org.kuali.student.common.dto.CurrencyAmountInfo;
31  import org.kuali.student.common.dto.HasAttributes;
32  import org.kuali.student.common.dto.Idable;
33  import org.kuali.student.common.dto.MetaInfo;
34  import org.kuali.student.common.dto.RichTextInfo;
35  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
36  
37  /**
38   * Information about a fee related to a course.
39   *
40   * @Author KSContractMojo
41   * @Author Daniel Epstein
42   * @Since Mon Jul 26 14:12:33 EDT 2010
43   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/courseFeeInfo+Structure">CourseFeeInfo</>
44   *
45   */
46  @XmlAccessorType(XmlAccessType.FIELD)
47  public class CourseFeeInfo implements Serializable, Idable, HasAttributes {
48  
49      private static final long serialVersionUID = 1L;
50  
51      @XmlElement
52      private String feeType;
53  
54      @XmlElement
55      private String rateType;
56  
57      @XmlElement
58      private List<CurrencyAmountInfo> feeAmounts;
59  
60      @XmlElement
61      private RichTextInfo descr;
62  
63      @XmlElement
64      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
65      private Map<String, String> attributes;
66  
67      @XmlElement
68      private MetaInfo metaInfo;
69  
70      @XmlAttribute
71      private String id;
72  
73      /**
74       * A code that identifies the type of the fee. For example: Lab Fee or Tuition Fee or CMF for Course Materials Fee.
75       */
76      public String getFeeType() {
77          return feeType;
78      }
79  
80      public void setFeeType(String feeType) {
81          this.feeType = feeType;
82      }
83  
84      /**
85       * Indicates the structure and interpretation of the fee amounts, i.e. Fixed, Variable, Multiple.
86       */
87      public String getRateType() {
88          return rateType;
89      }
90  
91      public void setRateType(String rateType) {
92          this.rateType = rateType;
93      }
94  
95      /**
96       * The amount or amounts associated with the fee. The number fee amounts and interpretation depends on the rate type.
97       */
98      public List<CurrencyAmountInfo> getFeeAmounts() {
99          if (feeAmounts == null) {
100             feeAmounts = new ArrayList<CurrencyAmountInfo>(0);
101         }
102         return feeAmounts;
103     }
104 
105     public void setFeeAmounts(List<CurrencyAmountInfo> feeAmounts) {
106         this.feeAmounts = feeAmounts;
107     }
108 
109     /**
110      * Narrative description of the Course Fee.
111      */
112     public RichTextInfo getDescr() {
113         return descr;
114     }
115 
116     public void setDescr(RichTextInfo descr) {
117         this.descr = descr;
118     }
119 
120     /**
121      * List of key/value pairs, typically used for dynamic attributes.
122      */
123     public Map<String, String> getAttributes() {
124         if (attributes == null) {
125             attributes = new HashMap<String, String>();
126         }
127         return attributes;
128     }
129 
130     public void setAttributes(Map<String, String> attributes) {
131         this.attributes = attributes;
132     }
133 
134     /**
135      * 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.
136      */
137     public MetaInfo getMetaInfo() {
138         return metaInfo;
139     }
140 
141     public void setMetaInfo(MetaInfo metaInfo) {
142         this.metaInfo = metaInfo;
143     }
144 
145     /**
146      * Identifier for the clu fee record.
147      */
148     public String getId() {
149         return id;
150     }
151 
152     public void setId(String id) {
153         this.id = id;
154     }
155 }