001    /**
002     * Copyright 2004-2013 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.hr.time.timeblock;
017    
018    import java.math.BigDecimal;
019    
020    import org.apache.commons.lang.builder.EqualsBuilder;
021    import org.apache.commons.lang.builder.HashCodeBuilder;
022    import org.kuali.hr.time.util.TkConstants;
023    import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
024    
025    public class TimeHourDetail extends PersistableBusinessObjectBase{
026    
027            /**
028             *
029             */
030            private static final long serialVersionUID = 1L;
031            private String tkTimeHourDetailId;
032            private String tkTimeBlockId;
033            private String earnCode;
034            private BigDecimal hours = TkConstants.BIG_DECIMAL_SCALED_ZERO;
035            private BigDecimal amount = TkConstants.BIG_DECIMAL_SCALED_ZERO;
036    
037        public TimeHourDetail() {
038        }
039    
040        protected TimeHourDetail(TimeHourDetail t) {
041            // All of the following are Immutable, be aware if new fields
042            // are added.
043            this.tkTimeHourDetailId = t.tkTimeHourDetailId;
044            this.tkTimeBlockId = t.tkTimeBlockId;
045            this.earnCode = t.earnCode;
046            this.hours = t.hours;
047            this.amount = t.amount;
048        }
049    
050        public TimeHourDetail copy() {
051            return new TimeHourDetail(this);
052        }
053    
054            public String getEarnCode() {
055                    return earnCode;
056            }
057    
058            public void setEarnCode(String earnCode) {
059                    this.earnCode = earnCode;
060            }
061    
062            public BigDecimal getHours() {
063                    return hours;
064            }
065    
066            public void setHours(BigDecimal hours) {
067                    if(hours != null){
068                            this.hours = hours.setScale(TkConstants.BIG_DECIMAL_SCALE, TkConstants.BIG_DECIMAL_SCALE_ROUNDING);
069                    } else {
070                            this.hours = hours;
071                    }
072            }
073    
074            public BigDecimal getAmount() {
075                    return amount;
076            }
077    
078            public void setAmount(BigDecimal amount) {
079                    if(amount != null){
080                            this.amount = amount.setScale(TkConstants.BIG_DECIMAL_SCALE, TkConstants.BIG_DECIMAL_SCALE_ROUNDING);
081                    } else {
082                            this.amount = amount;
083                    }
084            }
085    
086            public String getTkTimeBlockId() {
087                    return tkTimeBlockId;
088            }
089    
090            public void setTkTimeBlockId(String tkTimeBlockId) {
091                    this.tkTimeBlockId = tkTimeBlockId;
092            }
093            public void setTkTimeHourDetailId(String tkTimeHourDetailId) {
094                    this.tkTimeHourDetailId = tkTimeHourDetailId;
095            }
096    
097            public String getTkTimeHourDetailId() {
098                    return tkTimeHourDetailId;
099            }
100    
101            @Override
102            public boolean equals(Object obj) {
103                    if (obj == null) { 
104                            return false;
105                    }
106                    if (obj == this) { 
107                            return true;
108                    }
109                    if (obj.getClass() != getClass()) {
110                            return false;
111                    }
112                    TimeHourDetail timeHourDetail = (TimeHourDetail) obj;
113                    return new EqualsBuilder()
114                            .append(earnCode, timeHourDetail.earnCode)
115                            .append(amount, timeHourDetail.amount)
116                            .append(hours, timeHourDetail.hours)
117                            .isEquals();
118        }
119    
120            @Override
121            public int hashCode() {
122                    return new HashCodeBuilder(17, 31)
123                            .append(earnCode)
124                            .append(amount)
125                            .append(hours)
126                            .toHashCode();
127        }
128    }