View Javadoc

1   /*
2    * Copyright 2013 The Kuali Foundation 
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the
5    * "License"); you may not use this file except in compliance with the
6    * License. You may obtain a copy of the License at
7    *
8    * http://www.osedu.org/licenses/ECL-2.0
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
13   * implied. See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.core.rate.dto;
18  
19  import org.kuali.student.core.rate.infc.Rate;
20  import org.kuali.student.core.rate.infc.FlexibleUnitAmount;
21  
22  import org.kuali.student.r2.common.dto.IdEntityInfo;
23  import org.kuali.student.r2.common.dto.CurrencyAmountInfo;
24  
25  import java.io.Serializable;
26  import java.util.ArrayList;
27  import java.util.Date;
28  import java.util.List;
29  
30  import javax.xml.bind.annotation.XmlAccessType;
31  import javax.xml.bind.annotation.XmlAccessorType;
32  import javax.xml.bind.annotation.XmlAnyElement;
33  import javax.xml.bind.annotation.XmlElement;
34  import javax.xml.bind.annotation.XmlType;
35  
36  import org.w3c.dom.Element;
37  
38  @XmlAccessorType(XmlAccessType.FIELD)
39  @XmlType(name = "RateInfo", propOrder = {
40          "id", "typeKey", "stateKey", "name", "descr",
41          "catalogRateId", "atpId", "amount", "flexibleUnitAmounts",
42          "transactionCode", "transactionDateTypeKey", "transactionDate", 
43          "recognitionDate", "isLimitRate", "minimumLimitUnits",
44          "maximumLimitUnits", "limitAmount",
45          "meta", "attributes", "_futureElements" })
46  
47  public class RateInfo
48      extends IdEntityInfo 
49      implements Rate {
50  
51      private static final long serialVersionUID = 1L;
52  
53      @XmlElement
54      private String catalogRateId;
55  
56      @XmlElement
57      private String atpId;
58  
59      @XmlElement
60      private CurrencyAmountInfo amount;
61  
62      @XmlElement
63      private List<FlexibleUnitAmountInfo> flexibleUnitAmounts;
64  
65      @XmlElement
66      private String transactionCode;
67  
68      @XmlElement
69      private String transactionDateTypeKey;
70  
71      @XmlElement
72      private Date transactionDate;
73  
74      @XmlElement
75      private Date recognitionDate;
76  
77      @XmlElement
78      private Boolean isLimitRate;
79  
80      @XmlElement
81      private Integer minimumLimitUnits;
82  
83      @XmlElement
84      private Integer maximumLimitUnits;
85  
86      @XmlElement
87      private CurrencyAmountInfo limitAmount;
88      
89      @XmlAnyElement
90      private List<Element> _futureElements;
91  
92  
93      /**
94       * Constructs a new RateInfo.
95       */
96      public RateInfo() {
97      }
98  
99      /**
100      * Constructs a new RateInfo from another Rate.
101      *
102      * @param rate the Rate to copy
103      */
104     public RateInfo(Rate rate) {
105         super(rate);
106 
107         if (rate != null) {
108             this.catalogRateId = rate.getCatalogRateId();
109             this.atpId = rate.getAtpId();
110             if (rate.getAmount() != null) {
111                 this.amount = new CurrencyAmountInfo(rate.getAmount());
112             }
113 
114             this.flexibleUnitAmounts = new ArrayList<FlexibleUnitAmountInfo>();
115             if (rate.getFlexibleUnitAmounts() != null) {
116                 for (FlexibleUnitAmount amount : rate.getFlexibleUnitAmounts()) {
117                     this.flexibleUnitAmounts.add(new FlexibleUnitAmountInfo(amount));
118                 }
119             }
120 
121             this.transactionCode = rate.getTransactionCode();
122             this.transactionDateTypeKey = rate.getTransactionDateTypeKey();
123             if (rate.getTransactionDate() != null) {
124                 this.transactionDate = new Date(rate.getTransactionDate().getTime());
125             }
126 
127             if (rate.getRecognitionDate() != null) {
128                 this.recognitionDate = new Date(rate.getRecognitionDate().getTime());
129             }
130             
131             this.isLimitRate = rate.getIsLimitRate();
132             this.minimumLimitUnits = rate.getMinimumLimitUnits();
133             this.maximumLimitUnits = rate.getMaximumLimitUnits();
134 
135             if (rate.getLimitAmount() != null) {
136                 this.amount = new CurrencyAmountInfo(rate.getLimitAmount());
137             }
138         }
139     }
140 
141     
142     @Override
143     public String getCatalogRateId() {
144         return (this.catalogRateId);
145     }
146     
147     public void setCatalogRateId(String catalogRateId) {
148         this.catalogRateId = catalogRateId;
149     }
150 
151     @Override
152     public String getAtpId() {
153         return (this.atpId);
154     }
155 
156     public void setAtpId(String atpId) {
157         this.atpId = atpId;
158     }
159 
160     @Override
161     public CurrencyAmountInfo getAmount() {
162         return (this.amount);
163     }
164 
165     public void setAmount(CurrencyAmountInfo amount) {
166         this.amount = amount;
167     }
168 
169     @Override
170     public List<FlexibleUnitAmountInfo> getFlexibleUnitAmounts() {
171         if (this.flexibleUnitAmounts == null) {
172             this.flexibleUnitAmounts = new ArrayList<FlexibleUnitAmountInfo>(0);
173         }
174 
175         return (this.flexibleUnitAmounts);
176     }
177 
178     public void setFlexibleUnitAmounts(List <FlexibleUnitAmountInfo> flexibleUnitAmounts) {
179         this.flexibleUnitAmounts = flexibleUnitAmounts;
180     }
181 
182     @Override
183     public String getTransactionDateTypeKey() {
184         return (this.transactionDateTypeKey);
185     }
186 
187     public void setTransactionDateTypeKey(String transactionDateTypeKey) {
188         this.transactionDateTypeKey = transactionDateTypeKey;
189     }
190 
191     @Override
192     public String getTransactionCode() {
193         return (this.transactionCode);
194     }
195 
196     public void setTransactionCode(String transactionCode) {
197         this.transactionCode = transactionCode;
198     }
199 
200     @Override
201     public Date getTransactionDate() {
202         return (this.transactionDate);
203     }
204 
205     public void setTransactionDate(Date transactionDate) {
206         this.transactionDate = transactionDate;
207     }
208 
209     @Override
210     public Date getRecognitionDate() {
211         return (this.recognitionDate);
212     }
213 
214     public void setRecognitionDate(Date recognitionDate) {
215         this.recognitionDate = recognitionDate;
216     }
217 
218     @Override
219     public Boolean getIsLimitRate() {
220         return (this.isLimitRate);
221     }
222 
223     public void setIsLimitRate(Boolean isLimitRate) {
224         this.isLimitRate = isLimitRate;
225     }
226 
227     @Override
228     public Integer getMinimumLimitUnits() {
229         return (this.minimumLimitUnits);
230     }
231 
232     public void setMinimumLimitUnits(Integer minimumLimitUnits) {
233         this.minimumLimitUnits = minimumLimitUnits;
234     }
235 
236     @Override
237     public Integer getMaximumLimitUnits() {
238         return (this.maximumLimitUnits);
239     }
240 
241     public void setMaximumLimitUnits(Integer maximumLimitUnits) {
242         this.maximumLimitUnits = maximumLimitUnits;
243     }
244 
245     @Override
246     public CurrencyAmountInfo getLimitAmount() {
247         return (this.limitAmount);
248     }
249 
250     public void setLimitAmount(CurrencyAmountInfo limitAmount) {
251         this.limitAmount = limitAmount;
252     }    
253 }