org.springframework.core.io.buffer

Class DefaultDataBufferFactory

  • java.lang.Object
    • org.springframework.core.io.buffer.DefaultDataBufferFactory
  • All Implemented Interfaces:
    DataBufferFactory


    public class DefaultDataBufferFactory
    extends java.lang.Object
    implements DataBufferFactory
    Default implementation of the DataBufferFactory interface. Allows for specification of the default initial capacity at construction time, as well as whether heap-based or direct buffers are to be preferred.
    Since:
    5.0
    Author:
    Arjen Poutsma
    • Constructor Detail

      • DefaultDataBufferFactory

        public DefaultDataBufferFactory()
        Creates a new DefaultDataBufferFactory with default settings.
      • DefaultDataBufferFactory

        public DefaultDataBufferFactory(boolean preferDirect)
        Creates a new DefaultDataBufferFactory, indicating whether direct buffers should be created by allocateBuffer() and allocateBuffer(int).
        Parameters:
        preferDirect - true if direct buffers are to be preferred; false otherwise
      • DefaultDataBufferFactory

        public DefaultDataBufferFactory(boolean preferDirect,
                                        int defaultInitialCapacity)
        Creates a new DefaultDataBufferFactory, indicating whether direct buffers should be created by allocateBuffer() and allocateBuffer(int), and what the capacity is to be used for allocateBuffer().
        Parameters:
        preferDirect - true if direct buffers are to be preferred; false otherwise
    • Method Detail

      • allocateBuffer

        public DefaultDataBuffer allocateBuffer()
        Description copied from interface: DataBufferFactory
        Allocate a data buffer of a default initial capacity. Depending on the underlying implementation and its configuration, this will be heap-based or direct buffer.
        Specified by:
        allocateBuffer in interface DataBufferFactory
        Returns:
        the allocated buffer
      • allocateBuffer

        public DefaultDataBuffer allocateBuffer(int initialCapacity)
        Description copied from interface: DataBufferFactory
        Allocate a data buffer of the given initial capacity. Depending on the underlying implementation and its configuration, this will be heap-based or direct buffer.
        Specified by:
        allocateBuffer in interface DataBufferFactory
        Parameters:
        initialCapacity - the initial capacity of the buffer to allocate
        Returns:
        the allocated buffer
      • wrap

        public DefaultDataBuffer wrap(java.nio.ByteBuffer byteBuffer)
        Description copied from interface: DataBufferFactory
        Wrap the given ByteBuffer in a DataBuffer. Unlike allocating, wrapping does not use new memory.
        Specified by:
        wrap in interface DataBufferFactory
        Parameters:
        byteBuffer - the NIO byte buffer to wrap
        Returns:
        the wrapped buffer
      • wrap

        public DataBuffer wrap(byte[] bytes)
        Description copied from interface: DataBufferFactory
        Wrap the given byte array in a DataBuffer. Unlike allocating, wrapping does not use new memory.
        Specified by:
        wrap in interface DataBufferFactory
        Parameters:
        bytes - the byte array to wrap
        Returns:
        the wrapped buffer
      • join

        public DataBuffer join(java.util.List<? extends DataBuffer> dataBuffers)
        Return a new DataBuffer composed of the dataBuffers elements joined together. Depending on the implementation, the returned buffer may be a single buffer containing all data of the provided buffers, or it may be a true composite that contains references to the buffers.

        Note that the given data buffers do not have to be released, as they are released as part of the returned composite.

        This implementation creates a single DefaultDataBuffer to contain the data in dataBuffers.

        Specified by:
        join in interface DataBufferFactory
        Parameters:
        dataBuffers - the data buffers to be composed
        Returns:
        a buffer that is composed from the dataBuffers argument
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object