/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.purap.util; import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.kuali.kfs.module.purap.document.PurchasingAccountsPayableDocument; public class VendorGroupingHelper implements Comparable { private Integer vendorHeaderGeneratedIdentifier; private Integer vendorDetailAssignedIdentifier; private String vendorCountry; private String vendorPostalCode; public VendorGroupingHelper( PurchasingAccountsPayableDocument doc ) { vendorHeaderGeneratedIdentifier = doc.getVendorHeaderGeneratedIdentifier(); vendorDetailAssignedIdentifier = doc.getVendorDetailAssignedIdentifier(); vendorCountry = doc.getVendorCountryCode(); vendorPostalCode = doc.getVendorPostalCode(); if ( vendorPostalCode != null && vendorPostalCode.length() > 5 ) { vendorPostalCode = vendorPostalCode.substring(0, 5); } } public Integer getVendorHeaderGeneratedIdentifier() { return vendorHeaderGeneratedIdentifier; } public Integer getVendorDetailAssignedIdentifier() { return vendorDetailAssignedIdentifier; } public String getVendorCountry() { return vendorCountry; } public String getVendorPostalCode() { return vendorPostalCode; } /** * @see java.lang.Object#toString() */ public String toString() { return vendorHeaderGeneratedIdentifier + "-" + vendorDetailAssignedIdentifier + "-" + vendorCountry + "-" + vendorPostalCode; } /** * @see java.lang.Object#equals(Object) */ public boolean equals(Object object) { if ( !(object instanceof VendorGroupingHelper) ) { return false; } VendorGroupingHelper rhs = (VendorGroupingHelper)object; return new EqualsBuilder().append( this.vendorPostalCode, rhs.vendorPostalCode ).append( this.vendorHeaderGeneratedIdentifier, rhs.vendorHeaderGeneratedIdentifier ).append( this.vendorDetailAssignedIdentifier, rhs.vendorDetailAssignedIdentifier ).append( this.vendorCountry, rhs.vendorCountry ).isEquals(); } /** * @see java.lang.Object#hashCode() */ public int hashCode() { return new HashCodeBuilder( -999235111, -1951404497 ).append( this.vendorPostalCode ) .append( this.vendorHeaderGeneratedIdentifier ) .append( this.vendorDetailAssignedIdentifier ).append( this.vendorCountry ) .toHashCode(); } /** * @see java.lang.Comparable#compareTo(Object) */ public int compareTo(Object object) { VendorGroupingHelper myClass = (VendorGroupingHelper)object; return new CompareToBuilder().append( this.vendorPostalCode, myClass.vendorPostalCode ) .append( this.vendorHeaderGeneratedIdentifier, myClass.vendorHeaderGeneratedIdentifier ) .append( this.vendorDetailAssignedIdentifier, myClass.vendorDetailAssignedIdentifier ).append( this.vendorCountry, myClass.vendorCountry ).toComparison(); } }