package com.revolsys.geometry.graph.comparator;
import java.util.Comparator;
import com.revolsys.geometry.graph.Node;
import com.revolsys.geometry.model.Point;
public class NodeDegreeComparator<T> implements Comparator<Node<T>> {
private boolean invert = false;
public NodeDegreeComparator() {
}
public NodeDegreeComparator(final boolean invert) {
this.invert = invert;
}
@Override
public int compare(final Node<T> node1, final Node<T> node2) {
int compare;
final int degree1 = node1.getDegree();
final int degree2 = node2.getDegree();
if (degree1 == degree2) {
final Point point1 = node1;
final Point point2 = node2;
compare = point1.compareTo(point2);
} else if (degree1 < degree2) {
compare = -1;
} else {
compare = 1;
}
if (this.invert) {
return -compare;
} else {
return compare;
}
}
public boolean isInvert() {
return this.invert;
}
}