package org.archstudio.prolog.engine;
public class Signature {
public final String functor;
public final int arity;
public Signature(String functor, int arity) {
this.functor = functor;
this.arity = arity;
}
@Override
public String toString() {
return functor + "/" + arity;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + arity;
result = prime * result + (functor == null ? 0 : functor.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;
}
Signature other = (Signature) obj;
if (arity != other.arity) {
return false;
}
if (functor == null) {
if (other.functor != null) {
return false;
}
}
else if (!functor.equals(other.functor)) {
return false;
}
return true;
}
}