package net.minecraft.util;

class IntHashMapEntry
{
    /** The hash code of this entry */
    final int hashEntry;

    /** The object stored in this entry */
    Object valueEntry;

    /** The next entry in this slot */
    IntHashMapEntry nextEntry;

    /** The id of the hash slot computed from the hash */
    final int slotHash;

    IntHashMapEntry(int par1, int par2, Object par3Obj, IntHashMapEntry par4IntHashMapEntry)
    {
        this.valueEntry = par3Obj;
        this.nextEntry = par4IntHashMapEntry;
        this.hashEntry = par2;
        this.slotHash = par1;
    }

    /**
     * Returns the hash code for this entry
     */
    public final int getHash()
    {
        return this.hashEntry;
    }

    /**
     * Returns the object stored in this entry
     */
    public final Object getValue()
    {
        return this.valueEntry;
    }

    public final boolean equals(Object par1Obj)
    {
        if (!(par1Obj instanceof IntHashMapEntry))
        {
            return false;
        }
        else
        {
            IntHashMapEntry var2 = (IntHashMapEntry)par1Obj;
            Integer var3 = Integer.valueOf(this.getHash());
            Integer var4 = Integer.valueOf(var2.getHash());

            if (var3 == var4 || var3 != null && var3.equals(var4))
            {
                Object var5 = this.getValue();
                Object var6 = var2.getValue();

                if (var5 == var6 || var5 != null && var5.equals(var6))
                {
                    return true;
                }
            }

            return false;
        }
    }

    public final int hashCode()
    {
        return IntHashMap.getHash(this.hashEntry);
    }

    public final String toString()
    {
        return this.getHash() + "=" + this.getValue();
    }
}
