Package org.bndtools.core.resolve.ui

Source Code of org.bndtools.core.resolve.ui.BundleSorter

package org.bndtools.core.resolve.ui;

import org.bndtools.utils.resources.ResourceUtils;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.osgi.framework.Version;
import org.osgi.resource.Capability;
import org.osgi.resource.Resource;

class BundleSorter extends ViewerSorter {

    @Override
    public int compare(Viewer viewer, Object e1, Object e2) {
        Resource r1 = (Resource) e1;
        Resource r2 = (Resource) e2;

        Capability id1 = ResourceUtils.getIdentityCapability(r1);
        Capability id2 = ResourceUtils.getIdentityCapability(r2);

        String name1 = ResourceUtils.getIdentity(id1);
        if (name1 == null) {
            name1 = "";
        }
        String name2 = ResourceUtils.getIdentity(id2);
        if (name2 == null) {
            name2 = "";
        }

        int ret = name1.compareTo(name2);
        if (ret != 0) {
            return ret;
        }

        Version ver1 = ResourceUtils.getVersion(id1);
        if (ver1 == null) {
            ver1 = Version.emptyVersion;
        }
        Version ver2 = ResourceUtils.getVersion(id2);
        if (ver2 == null) {
            ver2 = Version.emptyVersion;
        }
        return ver1.compareTo(ver2);
    }
}
TOP

Related Classes of org.bndtools.core.resolve.ui.BundleSorter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.