package org.eurocarbdb.dataaccess.core; import org.eurocarbdb.dataaccess.core.Reference; import java.util.Comparator; import java.util.List; import java.util.ArrayList; public class ComparatorExternalReference implements Comparator <Reference> { private List<Reference> toBeDeleted = new ArrayList<Reference>(); /* (non-Javadoc) * @see java.util.Comparator#compare(T, T) */ public int compare(Reference ref1, Reference ref2) { int t_result = ref1.getExternalReferenceName().compareTo(ref2.getExternalReferenceName()); if ( t_result == 0 ) { //same external database name try { Integer t_one = Integer.parseInt(ref1.getExternalReferenceId()); Integer t_two = Integer.parseInt(ref2.getExternalReferenceId()); t_result = t_one.compareTo(t_two); if ( t_result == 0 ) { this.toBeDeleted.add(ref2); } return t_result; } catch (Exception e) { t_result = ref1.getExternalReferenceId().compareTo(ref2.getExternalReferenceId()); if ( t_result == 0 ) { this.toBeDeleted.add(ref2); } return t_result; } } return t_result; } public List<Reference> getToBeDeleted(){ return this.toBeDeleted; } }