package xsbti.api;
import java.util.Arrays;
import java.util.List;
public final class Source implements java.io.Serializable
{
public Source(Compilation compilation, byte[] hash, SourceAPI api, int apiHash, _internalOnly_NameHashes _internalOnly_nameHashes, boolean hasMacro)
{
this.compilation = compilation;
this.hash = hash;
this.api = api;
this.apiHash = apiHash;
this._internalOnly_nameHashes = _internalOnly_nameHashes;
this.hasMacro = hasMacro;
}
private final Compilation compilation;
private final byte[] hash;
private final SourceAPI api;
private final int apiHash;
private final _internalOnly_NameHashes _internalOnly_nameHashes;
private final boolean hasMacro;
public final Compilation compilation()
{
return compilation;
}
public final byte[] hash()
{
return hash;
}
public final SourceAPI api()
{
return api;
}
public final int apiHash()
{
return apiHash;
}
public final _internalOnly_NameHashes _internalOnly_nameHashes()
{
return _internalOnly_nameHashes;
}
public final boolean hasMacro()
{
return hasMacro;
}
public boolean equals(Object obj)
{
if (this == obj) {
return true;
} else if (!(obj instanceof Source)) {
return false;
} else {
Source o = (Source)obj;
return compilation().equals(o.compilation()) && Arrays.equals(hash(), o.hash()) && api().equals(o.api()) && apiHash() == o.apiHash() && _internalOnly_nameHashes().equals(o._internalOnly_nameHashes()) && hasMacro() == o.hasMacro();
}
}
public int hashCode()
{
return 37 * (37 * (37 * (37 * (37 * (37 * (17) + compilation().hashCode()) + Arrays.hashCode(hash())) + api().hashCode()) + apiHash()) + _internalOnly_nameHashes().hashCode()) + (hasMacro() ? 0 : 1);
}
public String toString()
{
return "Source(" + "compilation: " + compilation() + ", " + "hash: " + Arrays.toString(hash()) + ", " + "api: " + api() + ", " + "apiHash: " + apiHash() + ", " + "_internalOnly_nameHashes: " + _internalOnly_nameHashes() + ", " + "hasMacro: " + hasMacro() + ")";
}
}