001 /* 002 * Employee.java 003 * 004 * Copyright (C) 2005 Anupam Sengupta ([email protected]) 005 * 006 * This program is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU General Public License 008 * as published by the Free Software Foundation; either version 2 009 * of the License, or (at your option) any later version. 010 * 011 * This program is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with this program; if not, write to the Free Software 018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 019 * 020 * Version $Revision: 1.2 $ 021 */ 022 package test.net.sf.anupam.csv.beans; 023 024 import org.apache.commons.lang.builder.CompareToBuilder; 025 import org.apache.commons.lang.builder.EqualsBuilder; 026 import org.apache.commons.lang.builder.HashCodeBuilder; 027 import org.apache.commons.lang.builder.ToStringBuilder; 028 029 /** 030 * Sample bean to represent an employee. 031 * 032 * @author Anupam Sengupta 033 * @version $Revision: 1.2 $ 034 * @csv.bean-mapping bean-name="employeeBean" csv-header="true" 035 */ 036 public class Employee 037 implements Comparable<Employee> { 038 // ~ Instance fields 039 // -------------------------------------------------------- 040 041 /** 042 * Employee ID. 043 */ 044 private String employeeID; 045 046 /** 047 * First name of the employee. 048 */ 049 private String firstName; 050 051 /** 052 * Last name of the employee. 053 */ 054 private String lastName; 055 056 /** 057 * The client supplied identifier. 058 */ 059 private String clientSuppliedID; 060 061 /** 062 * An alternate client supplied identifier. 063 */ 064 private String clientSuppliedSecondaryID; 065 066 /** 067 * the designation of this employee. 068 */ 069 private Designation designation; 070 071 /** 072 * Default Constructor. 073 */ 074 public Employee() { 075 super(); 076 } 077 078 /** 079 * Returns value of the clientSuppliedID. 080 * 081 * @return Returns the clientSuppliedID. 082 * @csv.field-mapping field-name="MyTimeID" position="8" 083 */ 084 public String getClientSuppliedID() { 085 return this.clientSuppliedID; 086 } 087 088 /** 089 * Sets value of the clientSuppliedID. 090 * 091 * @param clientSuppliedID The clientSuppliedID to set. 092 */ 093 public void setClientSuppliedID(final String clientSuppliedID) { 094 this.clientSuppliedID = clientSuppliedID; 095 } 096 097 /** 098 * Returns value of the clientSuppliedSecondaryID. 099 * 100 * @return Returns the clientSuppliedSecondaryID. 101 * @csv.field-mapping field-name="contractorID" position="7" 102 */ 103 public String getClientSuppliedSecondaryID() { 104 return this.clientSuppliedSecondaryID; 105 } 106 107 /** 108 * Sets value of the clientSuppliedSecondaryID. 109 * 110 * @param clientSuppliedSecondaryID The clientSuppliedSecondaryID to set. 111 */ 112 public void setClientSuppliedSecondaryID( 113 final String clientSuppliedSecondaryID) { 114 this.clientSuppliedSecondaryID = clientSuppliedSecondaryID; 115 } 116 117 /** 118 * Sets the employee ID. 119 * 120 * @param employeeID The employeeID to set. 121 */ 122 public void setEmployeeID(final String employeeID) { 123 this.employeeID = employeeID; 124 } 125 126 /** 127 * Return the employee ID. 128 * 129 * @return Returns the employeeID. 130 * @csv.field-mapping position="1" 131 */ 132 public String getEmployeeID() { 133 return this.employeeID; 134 } 135 136 /** 137 * Set the first name. 138 * 139 * @param firstName The firstName to set. 140 */ 141 public void setFirstName(final String firstName) { 142 this.firstName = firstName; 143 } 144 145 /** 146 * Returns the first name. 147 * 148 * @return Returns the firstName. 149 * @csv.field-mapping position="2" reformat="firstWord" 150 */ 151 public String getFirstName() { 152 return this.firstName; 153 } 154 155 /** 156 * Sets the last name. 157 * 158 * @param lastName The lastName to set. 159 */ 160 public void setLastName(final String lastName) { 161 this.lastName = lastName; 162 } 163 164 /** 165 * Returns the last name. 166 * 167 * @return Returns the lastName. 168 * @csv.field-mapping position="2" reformat="lastWord" 169 */ 170 public String getLastName() { 171 return this.lastName; 172 } 173 174 /** 175 * Compares this employee against another employee for ordering purposes. The comparision 176 * is based on the employee ID. 177 * 178 * @param other the other employee to compare against 179 * @return <code>0</code> if the two employee are equal, <code>-1</code> if this employee ID 180 * is lower, <code>+1</code> if this employee ID is higher 181 * @see Comparable#compareTo(Object) 182 */ 183 public int compareTo(final Employee other) { 184 185 return new CompareToBuilder().append(employeeID, other.employeeID) 186 .toComparison(); 187 } 188 189 /** 190 * Compares this employee against another for equality. The comparision is based on the 191 * employee ID. 192 * 193 * @param other the other employee to compare against 194 * @return <code>true</code> if equal, <code>false</code> otherwise 195 * @see Object#equals(Object) 196 */ 197 @Override 198 public boolean equals(final Object other) { 199 if (this == other) { 200 return true; 201 } 202 203 if (!(other instanceof Employee)) { 204 return false; 205 } 206 207 final Employee castOther = (Employee) other; 208 209 return new EqualsBuilder().append(employeeID, castOther.employeeID) 210 .isEquals(); 211 } 212 213 /** 214 * Returns the hashcode for this employee. The hash code is based on the employee ID. 215 * 216 * @return the hash code 217 * @see Object#hashCode() 218 */ 219 @Override 220 public int hashCode() { 221 return new HashCodeBuilder().append(employeeID).toHashCode(); 222 } 223 224 /** 225 * Returns a string representation of this employee for <code>debugging</code> purposes 226 * only. 227 * 228 * @return the string representation 229 * @see Object#toString() 230 */ 231 @Override 232 public String toString() { 233 return new ToStringBuilder(this).append("employeeID", employeeID) 234 .append("firstName", firstName).append("lastName", lastName) 235 .append("clientSuppliedID", clientSuppliedID).append( 236 "clientSuppliedSecondayID", clientSuppliedSecondaryID) 237 .append("designation", designation).toString(); 238 } 239 240 /** 241 * Returns value of the designation. 242 * 243 * @return Returns the designation. 244 * @csv.field-mapping position="3" bean-ref="designationBean" 245 */ 246 public Designation getDesignation() { 247 return this.designation; 248 } 249 250 /** 251 * Sets value of the designation. 252 * 253 * @param designation The designation to set. 254 */ 255 public void setDesignation(final Designation designation) { 256 this.designation = designation; 257 } 258 }