package xsbti.api;

import java.util.Arrays;
import java.util.List;
public final class Parameterized extends SimpleType 
{
	public Parameterized(SimpleType baseType, Type[] typeArguments)
	{
		this.baseType = baseType;
		this.typeArguments = typeArguments;
	}
	private final SimpleType baseType;
	private final Type[] typeArguments;
	public final SimpleType baseType()
	{
		return baseType;
	}
	public final Type[] typeArguments()
	{
		return typeArguments;
	}
	public boolean equals(Object obj)
	{
		 if (this == obj) {
			 return true;
		} else if (!(obj instanceof Parameterized)) {
			 return false;
		} else {
			Parameterized o = (Parameterized)obj;
			return baseType().equals(o.baseType()) && Arrays.deepEquals(typeArguments(), o.typeArguments());
		}
	}
	public int hashCode()
	{
		 return 37 * (37 * (17) + baseType().hashCode()) + Arrays.deepHashCode(typeArguments());
	}
	public String toString()
	{
		 return "Parameterized(" + "baseType: " + baseType() + ", " + "typeArguments: " + Arrays.toString(typeArguments()) + ")";
	}
}