/******************************************************************************* * Copyright (c) 2008 Pierre-Antoine Grégoire. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Pierre-Antoine Grégoire - initial API and implementation *******************************************************************************/ package org.org.eclipse.dws.core.internal.versioning; import java.util.Comparator; import org.org.repository.crawler.maven2.model.Artifact; import org.org.repository.crawler.maven2.model.ArtifactVersion; import org.org.repository.crawler.maven2.model.Group; /** * The Class ArtifactVersionComparator. */ public class ArtifactVersionComparator implements Comparator<ArtifactVersion> { /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare(ArtifactVersion o1, ArtifactVersion o2) { int result=0; Artifact artifact1=(o1.getParent()==null)?null:o1.getParent(); Group group1=(artifact1.getParent()==null)?null:artifact1.getParent(); Artifact artifact2=(o2.getParent()==null)?null:o2.getParent(); Group group2=(artifact2.getParent()==null)?null:artifact2.getParent(); int groupsComparison =group1==null?0:group1.compareTo(group2); if(groupsComparison==0){ int artifactComparison =artifact1==null?0:artifact1.compareTo(artifact2); if(artifactComparison==0){ int artifactVersionComparison =o1==null?0:o1.compareTo(o2); if(artifactVersionComparison==0){ }else{ result=-artifactVersionComparison; } }else{ result=artifactComparison; } }else{ result=groupsComparison; } return result; } }