| package org.eclipse.juno.tests.utils; |
| |
| import java.util.Comparator; |
| |
| import org.eclipse.equinox.p2.metadata.IInstallableUnit; |
| |
| public class IUNameAndIdComparator implements Comparator<IInstallableUnit> { |
| |
| |
| public int compare(IInstallableUnit iu1, IInstallableUnit iu2) { |
| // neither iu should be null ... but, just to cover all cases |
| if ((iu1 == null) && (iu2 == null)) { |
| return 0; |
| } |
| else if ((iu1 == null) || (iu2 == null)) { |
| return 1; |
| } |
| else { |
| String p1 = iu1.getProperty(IInstallableUnit.PROP_NAME, null); |
| String p2 = iu2.getProperty(IInstallableUnit.PROP_NAME, null); |
| if (p1 == null) { |
| p1 = "null"; |
| } |
| if (p2 == null) { |
| p2 = "null"; |
| } |
| int result = p1.compareTo(p2); |
| if (result == 0) { |
| // if provider names are equal, use id as secondary |
| // sort key |
| result = iu1.getId().compareTo(iu2.getId()); |
| } |
| return result; |
| } |
| } |
| } |