001    /*
002     * Designation.java 
003     * 
004     * Copyright (C) 2005 Anupam Sengupta (anupamsg@users.sourceforge.net) 
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 designation.
031     *
032     * @author Anupam Sengupta
033     * @version $Revision: 1.2 $
034     * @csv.bean-mapping bean-name="designationBean" csv-header="true"
035     */
036    public class Designation
037            implements Comparable<Designation> {
038    
039        /**
040         * The designation.
041         */
042        private String designation;
043    
044        /**
045         * Constructor for Designation.
046         */
047        public Designation() {
048            super();
049        }
050    
051        /**
052         * Compares this designation to another designation.
053         *
054         * @param other the other designation to compare against
055         * @return <code>0</code> if the two designations are equal, <code>-1</code> if this
056         *         designation ranks lower, <code>+1</code> if this designation ranks higher
057         * @see Comparable#compareTo(Object)
058         */
059        public int compareTo(final Designation other) {
060    
061            return new CompareToBuilder().append(designation, other.designation)
062                    .toComparison();
063        }
064    
065        /**
066         * Returns the string representation of this designation for <strong>debugging</strong>
067         * purposes only.
068         *
069         * @return the string representation
070         * @see Object#toString()
071         */
072        @Override
073        public String toString() {
074            return new ToStringBuilder(this).append("designation", designation)
075                    .toString();
076        }
077    
078        /**
079         * Returns the hash code for this designation. The hash code is based on the designation string.
080         *
081         * @return the hash code for this designation
082         * @see Object#hashCode()
083         */
084        @Override
085        public int hashCode() {
086            return new HashCodeBuilder().append(designation).toHashCode();
087        }
088    
089        /**
090         * Compares this designation with another for equality. The equality is based on the
091         * designation string.
092         *
093         * @param other the other designation to compare against
094         * @return <code>true</code> if the designations are equal, <code>false</code> otherwise
095         * @see Object#equals(Object)
096         */
097        @Override
098        public boolean equals(final Object other) {
099            if (this == other) {
100                return true;
101            }
102    
103            if (!(other instanceof Designation)) {
104                return false;
105            }
106            final Designation castOther = (Designation) other;
107            return new EqualsBuilder().append(designation, castOther.designation)
108                    .isEquals();
109        }
110    
111        /**
112         * Returns value of the designation.
113         *
114         * @return Returns the designation.
115         * @csv.field-mapping position="4"
116         */
117        public String getDesignation() {
118            return this.designation;
119        }
120    
121        /**
122         * Sets value of the designation.
123         *
124         * @param designation The designation to set.
125         */
126        public void setDesignation(final String designation) {
127            this.designation = designation;
128        }
129    
130    }