View Javadoc
1   /**
2    * Copyright 2004-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.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/ecl2.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.kpme.core.paygrade;
17  
18  import java.math.BigDecimal;
19  import java.sql.Timestamp;
20  
21  import org.kuali.kpme.core.api.paygrade.PayGrade;
22  import org.kuali.kpme.core.api.paygrade.PayGradeContract;
23  import org.kuali.kpme.core.bo.HrBusinessObject;
24  import org.kuali.kpme.core.util.HrConstants;
25  
26  import com.google.common.collect.ImmutableList;
27  import com.google.common.collect.ImmutableMap;
28  
29  public class PayGradeBo extends HrBusinessObject implements PayGradeContract {
30  
31  	private static final String SAL_GROUP = "salGroup";
32  	private static final String PAY_GRADE = "payGrade";
33  	
34  	private static final long serialVersionUID = -5736949952127760566L;
35  	//KPME-2273/1965 Primary Business Keys List.
36  	public static final ImmutableList<String> BUSINESS_KEYS = new ImmutableList.Builder<String>()
37              .add(PAY_GRADE)
38              .add(SAL_GROUP)
39              .build();
40  
41  	public static final String CACHE_NAME = HrConstants.CacheNamespace.NAMESPACE_PREFIX + "PayGrade";
42  
43  	private String hrPayGradeId;
44  	private String payGrade;
45  	private String description;
46  	private String salGroup;
47      private String rateType;
48      private BigDecimal minRate;
49      private BigDecimal maxRate;
50      private BigDecimal midPointRate;
51      private BigDecimal maxHiringRate;
52  
53      
54      @Override
55  	public ImmutableMap<String, Object> getBusinessKeyValuesMap() {
56      	return  new ImmutableMap.Builder<String, Object>()
57  			.put(PAY_GRADE, this.getPayGrade())
58  			.put(SAL_GROUP, this.getSalGroup())
59  			.build();
60  	}
61      
62      
63      public String getHrPayGradeId() {
64  		return hrPayGradeId;
65  	}
66  
67  	public void setHrPayGradeId(String hrPayGradeId) {
68  		this.hrPayGradeId = hrPayGradeId;
69  	}
70  
71  	public String getPayGrade() {
72  		return payGrade;
73  	}
74  
75  	public void setPayGrade(String payGrade) {
76  		this.payGrade = payGrade;
77  	}
78  
79  	public String getDescription() {
80  		return description;
81  	}
82  
83  	public void setDescription(String description) {
84  		this.description = description;
85  	}
86  
87  	@Override
88  	public String getUniqueKey() {
89  		return payGrade;
90  	}
91  	
92  	@Override
93  	public String getId() {
94  		return getHrPayGradeId();
95  	}
96  
97  	@Override
98  	public void setId(String id) {
99  		setHrPayGradeId(id);
100 	}
101 	
102 	public String getSalGroup() {
103 		return salGroup;
104 	}
105 
106 	public void setSalGroup(String salGroup) {
107 		this.salGroup = salGroup;
108 	}
109 
110     public String getRateType() {
111         return rateType;
112     }
113 
114     public void setRateType(String rateType) {
115         this.rateType = rateType;
116     }
117 
118     public BigDecimal getMinRate() {
119         return minRate;
120     }
121 
122     public void setMinRate(BigDecimal minRate) {
123         this.minRate = minRate;
124     }
125 
126     public BigDecimal getMaxRate() {
127         return maxRate;
128     }
129 
130     public void setMaxRate(BigDecimal maxRate) {
131         this.maxRate = maxRate;
132     }
133 
134     public BigDecimal getMidPointRate() {
135         return midPointRate;
136     }
137 
138     public void setMidPointRate(BigDecimal midPointRate) {
139         this.midPointRate = midPointRate;
140     }
141 
142     public BigDecimal getMaxHiringRate() {
143         return maxHiringRate;
144     }
145 
146     public void setMaxHiringRate(BigDecimal maxHiringRate) {
147         this.maxHiringRate = maxHiringRate;
148     }
149 
150     public static PayGradeBo from(PayGrade im) {
151         if (im == null) {
152             return null;
153         }
154         PayGradeBo pg = new PayGradeBo();
155 
156         pg.setHrPayGradeId(im.getHrPayGradeId());
157         pg.setPayGrade(im.getPayGrade());
158         pg.setDescription(im.getDescription());
159         pg.setSalGroup(im.getSalGroup());
160         pg.setRateType(im.getRateType());
161         pg.setMinRate(im.getMinRate());
162         pg.setMaxRate(im.getMaxRate());
163         pg.setMidPointRate(im.getMidPointRate());
164         pg.setMaxHiringRate(im.getMaxHiringRate());
165 
166 
167         pg.setEffectiveDate(im.getEffectiveLocalDate() == null ? null : im.getEffectiveLocalDate().toDate());
168         pg.setActive(im.isActive());
169         if (im.getCreateTime() != null) {
170             pg.setTimestamp(new Timestamp(im.getCreateTime().getMillis()));
171         }
172         pg.setUserPrincipalId(im.getUserPrincipalId());
173         pg.setVersionNumber(im.getVersionNumber());
174         pg.setObjectId(im.getObjectId());
175 
176         return pg;
177     }
178 
179     public static PayGrade to(PayGradeBo bo) {
180         if (bo == null) {
181             return null;
182         }
183 
184         return PayGrade.Builder.create(bo).build();
185     }
186 }