package org.aksw.sparqlify.type_system;
import java.util.List;
public class CandidateMethod<T> {
private MethodEntry<T> method;
private List<CandidateMethod<T>> coercions;
private MethodDistance distance;
public CandidateMethod(MethodEntry<T> method, List<CandidateMethod<T>> coercions, MethodDistance distance) {
this.coercions = coercions;
this.method = method;
this.distance = distance;
}
public MethodEntry<T> getMethod() {
return method;
}
public List<CandidateMethod<T>> getCoercions() {
return coercions;
}
public MethodDistance getDistance() {
return distance;
}
@Override
public String toString() {
return "CandidateMethod [method=" + method + ", coercions=" + coercions
+ ", distance=" + distance + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((coercions == null) ? 0 : coercions.hashCode());
result = prime * result
+ ((distance == null) ? 0 : distance.hashCode());
result = prime * result + ((method == null) ? 0 : method.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;
CandidateMethod<?> other = (CandidateMethod<?>) obj;
if (coercions == null) {
if (other.coercions != null)
return false;
} else if (!coercions.equals(other.coercions))
return false;
if (distance == null) {
if (other.distance != null)
return false;
} else if (!distance.equals(other.distance))
return false;
if (method == null) {
if (other.method != null)
return false;
} else if (!method.equals(other.method))
return false;
return true;
}
}