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