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.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 clu.
39   *
40   * @Author KSContractMojo
41   * @Author Kamal
42   * @Since Mon Jan 11 15:20:48 PST 2010
43   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/cluFeeRecordInfo+Structure+v1.0-rc2">CluFeeRecordInfo</>
44   *
45   */
46  @XmlAccessorType(XmlAccessType.FIELD)
47  public class CluFeeRecordInfo 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 List<AffiliatedOrgInfo> affiliatedOrgs;
62  
63      @XmlElement
64      private RichTextInfo descr;
65      
66      @XmlElement
67      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
68      private Map<String, String> attributes;
69  
70      @XmlElement
71      private MetaInfo metaInfo;
72  
73      @XmlAttribute
74      private String id;
75  
76      /**
77       * A code that identifies the type of the fee. For example: Lab Fee or Tuition Fee or CMF for Course Materials Fee.
78       */
79      public String getFeeType() {
80          return feeType;
81      }
82  
83      public void setFeeType(String feeType) {
84          this.feeType = feeType;
85      }
86  
87      /**
88       * Indicates the structure and interpretation of the fee amounts, i.e. Fixed, Variable, Multiple.
89       */
90      public String getRateType() {
91  		return rateType;
92  	}
93  
94  	public void setRateType(String rateType) {
95  		this.rateType = rateType;
96  	}
97  
98  	/**
99       * The amount or amounts associated with the fee. The number fee amounts and interpretation depends on the rate type.
100      */
101     public List<CurrencyAmountInfo> getFeeAmounts() {
102     	if(feeAmounts==null){
103     		feeAmounts = new ArrayList<CurrencyAmountInfo>();
104     	}
105         return feeAmounts;
106     }
107 
108     public void setFeeAmounts(List<CurrencyAmountInfo> feeAmounts) {
109         this.feeAmounts = feeAmounts;
110     }
111 
112     /**
113      * List of affiliated organizations.
114      */
115     public List<AffiliatedOrgInfo> getAffiliatedOrgs() {
116         if (affiliatedOrgs == null) {
117             affiliatedOrgs = new ArrayList<AffiliatedOrgInfo>(0);
118         }
119         return affiliatedOrgs;
120     }
121 
122     public void setAffiliatedOrgs(List<AffiliatedOrgInfo> affiliatedOrgs) {
123         this.affiliatedOrgs = affiliatedOrgs;
124     }
125 
126 	/**
127 	 * 	Narrative description of the CLU Fee Record. 
128 	 */
129     public RichTextInfo getDescr() {
130 		return descr;
131 	}
132 
133 	public void setDescr(RichTextInfo descr) {
134 		this.descr = descr;
135 	}
136 
137 	/**
138      * List of key/value pairs, typically used for dynamic attributes.
139      */
140     public Map<String, String> getAttributes() {
141         if (attributes == null) {
142             attributes = new HashMap<String, String>();
143         }
144         return attributes;
145     }
146 
147     public void setAttributes(Map<String, String> attributes) {
148         this.attributes = attributes;
149     }
150 
151     
152     /**
153 	 * Create and last update info for the structure. This is optional and treated as read only since the 
154 	 * data is set by the internals of the service during maintenance operations.     
155 	 */
156     public MetaInfo getMetaInfo() {
157 		return metaInfo;
158 	}
159 
160 	public void setMetaInfo(MetaInfo metaInfo) {
161 		this.metaInfo = metaInfo;
162 	}
163 
164 	/**
165      * Identifier for the clu fee record.
166      */
167     public String getId() {
168         return id;
169     }
170 
171     public void setId(String id) {
172         this.id = id;
173     }
174 }