001package net.minecraft.nbt;
002
003import java.io.DataInput;
004import java.io.DataOutput;
005import java.io.IOException;
006
007public class NBTTagLong extends NBTBase
008{
009    /** The long value for the tag. */
010    public long data;
011
012    public NBTTagLong(String par1Str)
013    {
014        super(par1Str);
015    }
016
017    public NBTTagLong(String par1Str, long par2)
018    {
019        super(par1Str);
020        this.data = par2;
021    }
022
023    /**
024     * Write the actual data contents of the tag, implemented in NBT extension classes
025     */
026    void write(DataOutput par1DataOutput) throws IOException
027    {
028        par1DataOutput.writeLong(this.data);
029    }
030
031    /**
032     * Read the actual data contents of the tag, implemented in NBT extension classes
033     */
034    void load(DataInput par1DataInput) throws IOException
035    {
036        this.data = par1DataInput.readLong();
037    }
038
039    /**
040     * Gets the type byte for the tag.
041     */
042    public byte getId()
043    {
044        return (byte)4;
045    }
046
047    public String toString()
048    {
049        return "" + this.data;
050    }
051
052    /**
053     * Creates a clone of the tag.
054     */
055    public NBTBase copy()
056    {
057        return new NBTTagLong(this.getName(), this.data);
058    }
059
060    public boolean equals(Object par1Obj)
061    {
062        if (super.equals(par1Obj))
063        {
064            NBTTagLong nbttaglong = (NBTTagLong)par1Obj;
065            return this.data == nbttaglong.data;
066        }
067        else
068        {
069            return false;
070        }
071    }
072
073    public int hashCode()
074    {
075        return super.hashCode() ^ (int)(this.data ^ this.data >>> 32);
076    }
077}