public int compare()

in plugins/org.apache.karaf.eik.workbench/src/main/java/org/apache/karaf/eik/workbench/ui/views/services/ServicesViewerSorter.java [30:56]


    public int compare(Viewer viewer, Object e1, Object e2) {
        if (e1 instanceof ServiceItem == false || e2 instanceof ServiceItem == false) {
            return 0;
        }

        final ServiceItem lhs = (ServiceItem) e1;
        final ServiceItem rhs = (ServiceItem) e2;

        final BundleItem lhsBundle = (BundleItem) lhs.getAdapter(BundleItem.class);
        final BundleItem rhsBundle = (BundleItem) rhs.getAdapter(BundleItem.class);

        if (lhsBundle == null && rhsBundle == null) {
            return 0;
        } else if (lhsBundle == null) {
            return -1;
        } else if (rhsBundle == null) {
            return 1;
        } else {
            int value = lhsBundle.getSymbolicName().compareTo(rhsBundle.getSymbolicName());

            if (value == 0) {
                value = lhs.getServiceInterfaces()[0].compareTo(rhs.getServiceInterfaces()[0]);
            }

            return value;
        }
    }