package xsbti.api;
import java.util.Arrays;
import java.util.List;
public final class Def extends ParameterizedDefinition
{
public Def(ParameterList[] valueParameters, Type returnType, TypeParameter[] typeParameters, String name, Access access, Modifiers modifiers, Annotation[] annotations)
{
super(typeParameters, name, access, modifiers, annotations);
this.valueParameters = valueParameters;
this.returnType = returnType;
}
private final ParameterList[] valueParameters;
private final Type returnType;
public final ParameterList[] valueParameters()
{
return valueParameters;
}
public final Type returnType()
{
return returnType;
}
public boolean equals(Object obj)
{
if (this == obj) {
return true;
} else if (!(obj instanceof Def)) {
return false;
} else {
Def o = (Def)obj;
return Arrays.deepEquals(valueParameters(), o.valueParameters()) && returnType().equals(o.returnType()) && Arrays.deepEquals(typeParameters(), o.typeParameters()) && name().equals(o.name()) && access().equals(o.access()) && modifiers().equals(o.modifiers()) && Arrays.deepEquals(annotations(), o.annotations());
}
}
public int hashCode()
{
return 37 * (37 * (37 * (37 * (37 * (37 * (37 * (17) + Arrays.deepHashCode(valueParameters())) + returnType().hashCode()) + Arrays.deepHashCode(typeParameters())) + name().hashCode()) + access().hashCode()) + modifiers().hashCode()) + Arrays.deepHashCode(annotations());
}
public String toString()
{
return "Def(" + "valueParameters: " + Arrays.toString(valueParameters()) + ", " + "returnType: " + returnType() + ", " + "typeParameters: " + Arrays.toString(typeParameters()) + ", " + "name: " + name() + ", " + "access: " + access() + ", " + "modifiers: " + modifiers() + ", " + "annotations: " + Arrays.toString(annotations()) + ")";
}
}