Class DataChunk

  • All Implemented Interfaces:
    Chunk
    Direct Known Subclasses:
    CacheableDataChunk

    public class DataChunk
    extends Object
    implements Chunk
    Buffer chunk representation. Helps HTTP module to avoid redundant String creation.
    Author:
    Alexey Stashok
    • Method Detail

      • newInstance

        public static DataChunk newInstance()
      • toImmutable

        public DataChunk toImmutable()
      • set

        public void set​(DataChunk value,
                        int start,
                        int end)
      • notifyDirectUpdate

        public void notifyDirectUpdate()
        Notify the Chunk that its content is going to be changed directly
      • setBuffer

        public void setBuffer​(org.glassfish.grizzly.Buffer buffer,
                              int position,
                              int limit)
      • setBuffer

        public void setBuffer​(org.glassfish.grizzly.Buffer buffer)
      • getCharChunk

        public CharChunk getCharChunk()
      • setChars

        public void setChars​(char[] chars,
                             int position,
                             int limit)
      • getByteChunk

        public ByteChunk getByteChunk()
      • setBytes

        public void setBytes​(byte[] bytes)
      • setBytes

        public void setBytes​(byte[] bytes,
                             int position,
                             int limit)
      • setString

        public void setString​(String string)
      • trimLeft

        public void trimLeft()
      • duplicate

        public void duplicate​(DataChunk src)
        Copy the src into this DataChunk, allocating more space if needed
      • getLength

        public int getLength()
        Returns the DataChunk length.
        Specified by:
        getLength in interface Chunk
        Returns:
        the DataChunk length.
      • getStart

        public int getStart()
        Returns the DataChunk start position.
        Specified by:
        getStart in interface Chunk
        Returns:
        the DataChunk start position.
      • setStart

        public void setStart​(int start)
        Sets the DataChunk start position.
        Specified by:
        setStart in interface Chunk
        Parameters:
        start - the DataChunk start position.
      • getEnd

        public int getEnd()
        Returns the DataChunk end position.
        Specified by:
        getEnd in interface Chunk
        Returns:
        the DataChunk end position.
      • setEnd

        public void setEnd​(int end)
        Sets the DataChunk end position.
        Specified by:
        setEnd in interface Chunk
        Parameters:
        end - the DataChunk end position.
      • indexOf

        public final int indexOf​(char c,
                                 int fromIndex)
        Returns true if the message bytes starts with the specified string.
        Specified by:
        indexOf in interface Chunk
        Parameters:
        c - the character
        fromIndex - The start position
      • indexOf

        public final int indexOf​(String s,
                                 int fromIndex)
        Returns true if the message bytes starts with the specified string.
        Specified by:
        indexOf in interface Chunk
        Parameters:
        s - the string
        fromIndex - The start position
      • delete

        public final void delete​(int from,
                                 int to)
        Specified by:
        delete in interface Chunk
      • toString

        public String toString​(int start,
                               int end)
        Specified by:
        toString in interface Chunk
      • equals

        public boolean equals​(Object object)
        Compares this DataChunk and the passed object.
        Overrides:
        equals in class Object
        Parameters:
        object - the Object to compare
        Returns:
        true if the passed object represents another DataChunk and its content is equal to this DataChunk's content.
      • equals

        public boolean equals​(String s)
        Compares the message bytes to the specified String object.
        Parameters:
        s - the String to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equals

        public boolean equals​(ByteChunk byteChunkToCheck)
        Compares the message data to the specified ByteChunk.
        Parameters:
        byteChunkToCheck - the ByteChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equals

        public boolean equals​(BufferChunk bufferChunkToCheck)
        Compares the message data to the specified BufferChunk.
        Parameters:
        bufferChunkToCheck - the BufferChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equals

        public boolean equals​(CharChunk charChunkToCheck)
        Compares the message data to the specified CharChunk.
        Parameters:
        charChunkToCheck - the CharChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equals

        public boolean equals​(byte[] bytes)
        Compares the message data to the specified byte[].
        Parameters:
        bytes - the byte[] to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equals

        public boolean equals​(byte[] bytes,
                              int start,
                              int len)
        Compares the message data to the specified byte[].
        Parameters:
        bytes - the byte[] to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(Object object)
        Compares this DataChunk and the passed object ignoring case considerations.
        Parameters:
        object - the Object to compare
        Returns:
        true if the passed object represents another DataChunk and its content is equal to this DataChunk's content ignoring case considerations.
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(String s)
        Compares the message bytes to the specified String object ignoring case considerations.
        Parameters:
        s - the String to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(ByteChunk byteChunkToCheck)
        Compares the message data to the specified ByteChunk ignoring case considerations.
        Parameters:
        byteChunkToCheck - the ByteChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(BufferChunk bufferChunkToCheck)
        Compares the message data to the specified BufferChunk ignoring case considerations.
        Parameters:
        bufferChunkToCheck - the BufferChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(CharChunk charChunkToCheck)
        Compares the message data to the specified CharChunk ignoring case considerations.
        Parameters:
        charChunkToCheck - the CharChunk to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(byte[] bytes)
        Compares the message data to the specified byte[] ignoring case considerations.
        Parameters:
        bytes - the byte[] to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • equalsIgnoreCase

        public boolean equalsIgnoreCase​(byte[] bytes,
                                        int start,
                                        int len)
        Compares the message data to the specified byte[] ignoring case considerations.
        Parameters:
        bytes - the byte[] to compare
        Returns:
        true if the comparison succeeded, false otherwise
      • hashCode

        public int hashCode()
        Returns DataChunk hash code.
        Overrides:
        hashCode in class Object
        Returns:
        DataChunk hash code.
      • equalsIgnoreCaseLowerCase

        public final boolean equalsIgnoreCaseLowerCase​(byte[] b)
        Compares the data chunk to the specified byte array representing lower-case ASCII characters.
        Parameters:
        b - the byte[] to compare
        Returns:
        true if the comparison succeeded, false otherwise
        Since:
        2.1.2
      • startsWith

        public final boolean startsWith​(String s,
                                        int pos)
        Returns true if the DataChunk starts with the specified string.
        Parameters:
        s - the string
        pos - The start position
        Returns:
        true if the DataChunk starts with the specified string.
      • startsWithIgnoreCase

        public final boolean startsWithIgnoreCase​(String s,
                                                  int pos)
        Returns true if the DataChunk starts with the specified string.
        Parameters:
        s - the string
        pos - The start position
        Returns:
        true if the DataChunk starts with the specified string.
      • isNull

        public final boolean isNull()
      • resetBuffer

        protected void resetBuffer()
      • resetCharChunk

        protected void resetCharChunk()
      • resetByteChunk

        protected void resetByteChunk()
      • resetString

        protected void resetString()
      • reset

        protected void reset()
      • recycle

        public void recycle()