001 /* 002 * Copyright 2007-2008 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 edu.sampleu.travel.bo; 017 018 import org.apache.commons.lang.ObjectUtils; 019 import org.apache.commons.lang.StringUtils; 020 import org.apache.commons.lang.builder.HashCodeBuilder; 021 import org.kuali.rice.core.jpa.annotations.Sequence; 022 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 023 024 import javax.persistence.*; 025 import java.util.LinkedHashMap; 026 import java.util.List; 027 028 029 /** 030 * FiscalOfficer 031 */ 032 @Entity 033 @Table(name="TRV_ACCT_FO") 034 @Sequence(name="seq_acct_fo_id", property="id") 035 public class FiscalOfficer extends PersistableBusinessObjectBase { 036 037 private static final long serialVersionUID = -4645124696676896963L; 038 039 @Id 040 @Column(name="acct_fo_id") 041 private Long id; 042 043 @Column(name="acct_fo_user_name") 044 private String userName; 045 046 @Column(name="acct_fo_user_name") 047 private String firstName; 048 049 @OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER, mappedBy="fiscalOfficer") 050 private List<TravelAccount> accounts; 051 052 /** 053 * @return the firstName 054 */ 055 public String getFirstName() { 056 return this.firstName; 057 } 058 059 /** 060 * @param firstName the firstName to set 061 */ 062 public void setFirstName(String firstName) { 063 this.firstName = firstName; 064 } 065 066 public void setUserName(String userId) { 067 userName = userId; 068 } 069 070 public String getUserName() { 071 return userName; 072 } 073 074 public final boolean equals(Object o) { 075 if (o == null) return false; 076 if (!(o instanceof FiscalOfficer)) return false; 077 FiscalOfficer f = (FiscalOfficer) o; 078 return StringUtils.equals(userName, f.getUserName()) && 079 ObjectUtils.equals(id, f.getId()); 080 } 081 082 public int hashCode() { 083 return new HashCodeBuilder().append(id).append(userName).toHashCode(); 084 } 085 086 public Long getId() { 087 return id; 088 } 089 090 public void setId(Long id) { 091 this.id = id; 092 } 093 094 public List<TravelAccount> getAccounts() { 095 return accounts; 096 } 097 098 public void setAccounts(List<TravelAccount> accounts) { 099 this.accounts = accounts; 100 } 101 102 @Override 103 protected LinkedHashMap toStringMapper() { 104 LinkedHashMap propMap = new LinkedHashMap(); 105 propMap.put("id", getId()); 106 propMap.put("userName", getUserName()); 107 return propMap; 108 } 109 110 }