001    /*
002     * Copyright 2011 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 org.kuali.kfs.module.purap.util;
017    
018    import java.util.Comparator;
019    
020    import org.kuali.kfs.sys.businessobject.AccountingLine;
021    
022    
023    public class PurapAccountingLineComparator implements Comparator<AccountingLine> {
024        /**
025         * Compares two accounting lines based on their account number and object code, in ascending order.
026         * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
027         */
028        public int compare(AccountingLine sal1, AccountingLine sal2) {
029            int compare = 0;
030            if (sal1 != null && sal2 != null) {
031                if (sal1.getAccountNumber() != null && sal2.getAccountNumber() != null) {                        
032                    compare = sal1.getAccountNumber().compareTo(sal2.getAccountNumber());    
033                    if (compare == 0) {
034                        if (sal1.getFinancialObjectCode() != null && sal2.getFinancialObjectCode() != null)
035                            compare =  sal1.getFinancialObjectCode().compareTo(sal2.getFinancialObjectCode());
036                    }
037                }
038            }
039            return compare;
040        }
041    }