package mil.nga.giat.geowave.analytic.clustering;
import mil.nga.giat.geowave.analytic.AnalyticItemWrapper;
public class CentroidPairing<T>
{
private AnalyticItemWrapper<T> centroid;
private AnalyticItemWrapper<T> pairedItem;
private double distance;
public CentroidPairing() {}
public CentroidPairing(
AnalyticItemWrapper<T> centroid,
AnalyticItemWrapper<T> pairedItem,
double distance ) {
super();
this.centroid = centroid;
this.pairedItem = pairedItem;
this.distance = distance;
}
public AnalyticItemWrapper<T> getCentroid() {
return centroid;
}
public void setCentroid(
AnalyticItemWrapper<T> centroid ) {
this.centroid = centroid;
}
public AnalyticItemWrapper<T> getPairedItem() {
return pairedItem;
}
public void setPairedItem(
AnalyticItemWrapper<T> pairedItem ) {
this.pairedItem = pairedItem;
}
public double getDistance() {
return distance;
}
public void setDistance(
double distance ) {
this.distance = distance;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((centroid == null) ? 0 : centroid.hashCode());
long temp;
temp = Double.doubleToLongBits(distance);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + ((pairedItem == null) ? 0 : pairedItem.hashCode());
return result;
}
@Override
public boolean equals(
Object obj ) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
CentroidPairing other = (CentroidPairing) obj;
if (centroid == null) {
if (other.centroid != null) return false;
}
else if (!centroid.equals(other.centroid)) return false;
if (Double.doubleToLongBits(distance) != Double.doubleToLongBits(other.distance)) return false;
if (pairedItem == null) {
if (other.pairedItem != null) return false;
}
else if (!pairedItem.equals(other.pairedItem)) return false;
return true;
}
}