Class FilePosition

  • All Implemented Interfaces:
    BitFilePosition

    public class FilePosition
    extends java.lang.Object
    implements BitFilePosition
    Models a position within a file as the offset in bytes and the offset in bits in that byte. For example, an instance of the class FilePosition that points to the 10th bit of a file should be constructed with a byte offset of 1 and a bit offset of 2.
    Author:
    Craig Macdonald, Vassilis Plachouras & John Kane
    • Field Summary

      Fields 
      Modifier and Type Field Description
      byte Bits
      The offset in bits within the pointed byte.
      long Bytes
      The offset within a file in bytes.
      protected static int sizeInBytes
      The number of bytes a file position could be converted to - 8 for the byte's long, 1 for the bits
    • Constructor Summary

      Constructors 
      Constructor Description
      FilePosition()
      Default constructor.
      FilePosition​(byte[] in)
      Create an instance based on a byte buffer
      FilePosition​(long bytesPosition, byte bitsPosition)
      Creates an instance of the class from the given byte and bit offsets.
      FilePosition​(BitFilePosition in)
      Create a new FilePosition based on an existing one
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void build​(java.io.DataInput di)
      unseralize this object from the named dataoutput instance
      boolean equals​(java.lang.Object o)
      Is this FilePosition equal to another?
      long getOffset()
      Return the number of bytes offset.
      byte getOffsetBits()
      Return the number of bits offset.
      int hashCode()
      Define a hashcode for this - objects which defined equals(Object) should define hashCode() also
      void setOffset​(long bytes, byte bits)
      Set the offset in number of bytes and number of bits.
      void setOffset​(BitFilePosition pos)
      Sets the bit file position within this object to that represented by the specified bit file position.
      static int sizeInBytes()
      How large is this object when serialized
      void toBytes​(java.io.DataOutput dai)
      Seralize this object to the named dataoutput instance
      java.lang.String toString()
      String representation of this object
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • sizeInBytes

        protected static final int sizeInBytes
        The number of bytes a file position could be converted to - 8 for the byte's long, 1 for the bits
        See Also:
        Constant Field Values
      • Bytes

        public long Bytes
        The offset within a file in bytes.
      • Bits

        public byte Bits
        The offset in bits within the pointed byte.
    • Constructor Detail

      • FilePosition

        public FilePosition()
        Default constructor. Create an uninitialiased FilePosition
      • FilePosition

        public FilePosition​(long bytesPosition,
                            byte bitsPosition)
        Creates an instance of the class from the given byte and bit offsets.
        Parameters:
        bytesPosition - long the given byte offset.
        bitsPosition - byte the given bit offset.
      • FilePosition

        public FilePosition​(byte[] in)
        Create an instance based on a byte buffer
      • FilePosition

        public FilePosition​(BitFilePosition in)
        Create a new FilePosition based on an existing one
    • Method Detail

      • getOffset

        public long getOffset()
        Return the number of bytes offset.
        Specified by:
        getOffset in interface BitFilePosition
        Returns:
        the number of bytes offset.
      • getOffsetBits

        public byte getOffsetBits()
        Return the number of bits offset.
        Specified by:
        getOffsetBits in interface BitFilePosition
        Returns:
        the number of bits offset.
      • setOffset

        public void setOffset​(long bytes,
                              byte bits)
        Set the offset in number of bytes and number of bits.
        Specified by:
        setOffset in interface BitFilePosition
        Parameters:
        bytes - the number of bytes to set.
        bits - the number of bits to set.
      • setOffset

        public void setOffset​(BitFilePosition pos)
        Sets the bit file position within this object to that represented by the specified bit file position.
        Specified by:
        setOffset in interface BitFilePosition
        Parameters:
        pos - other bit file position to update the bit file position in this object.
      • sizeInBytes

        public static int sizeInBytes()
        How large is this object when serialized
      • toBytes

        public void toBytes​(java.io.DataOutput dai)
        Seralize this object to the named dataoutput instance
      • build

        public void build​(java.io.DataInput di)
        unseralize this object from the named dataoutput instance
      • equals

        public boolean equals​(java.lang.Object o)
        Is this FilePosition equal to another?
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Define a hashcode for this - objects which defined equals(Object) should define hashCode() also
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        String representation of this object
        Overrides:
        toString in class java.lang.Object