blob: 5cf09ed7d9c709da4c4831a3ee4e74d4b24b5481 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 The Eclipse Foundation and others.
* 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:
* Vadim Dmitriev - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.gerrit.core.client;
import java.util.Comparator;
import com.google.gerrit.reviewdb.Project;
/**
* Compares {@link com.google.gerrit.reviewdb.Project} by name, case insensitive, ascending, nulls last.
*
* @throws NullPointerException
* one or both parameters are null
* @see com.google.gerrit.reviewdb.Project
* @author Vadim Dmitriev
*/
public class ProjectByNameComparator implements Comparator<Project> {
@Override
public int compare(Project o1, Project o2) {
if (o1 == null || o2 == null) {
throw new NullPointerException("Project can not be null"); //$NON-NLS-1$
}
String o1Name = o1.getName();
String o2Name = o2.getName();
if (o1Name == null && o2Name == null) {
return 0;
} else if (o1Name == null) {
return 1;
} else if (o2Name == null) {
return -1;
} else {
return o1Name.compareToIgnoreCase(o2Name);
}
}
}