Package org.springframework.core.io.buffer

# Class Netty5DataBufferFactory

java.lang.Object
org.springframework.core.io.buffer.Netty5DataBufferFactory

All Implemented Interfaces:
  `DataBufferFactory`

public class Netty5DataBufferFactory extends Object implements DataBufferFactory
Implementation of the `DataBufferFactory` interface based on a Netty 5 `BufferAllocator`.

Since:
  6.0
Author:
  Violeta Georgieva, Arjen Poutsma

## Constructor Summary

Constructors
Constructor
Description
`Netty5DataBufferFactory(io.netty5.buffer.BufferAllocator bufferAllocator)`
Create a new `Netty5DataBufferFactory` based on the given factory.

## Method Summary

Modifier and Type
Method
Description
`Netty5DataBuffer`
`allocateBuffer()`
Deprecated.
`Netty5DataBuffer`
`allocateBuffer(int initialCapacity)`
Allocate a data buffer of the given initial capacity.
`io.netty5.buffer.BufferAllocator`
`getBufferAllocator()`
Return the `BufferAllocator` used by this factory.
`boolean`
`isDirect()`
Indicates whether this factory allocates direct buffers (i.e.
`DataBuffer`
`join(List<? extends DataBuffer> dataBuffers)`
Return a new `DataBuffer` composed of the `dataBuffers` elements joined together.
`static io.netty5.buffer.Buffer`
`toBuffer(DataBuffer buffer)`
Return the given Netty `DataBuffer` as a `Buffer`.
`String`
`toString()`
`Netty5DataBuffer`
`wrap(byte[] bytes)`
Wrap the given `byte` array in a `DataBuffer`.
`Netty5DataBuffer`
`wrap(io.netty5.buffer.Buffer buffer)`
Wrap the given Netty `Buffer` in a `Netty5DataBuffer`.
`Netty5DataBuffer`
`wrap(ByteBuffer byteBuffer)`
Wrap the given `ByteBuffer` in a `DataBuffer`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Netty5DataBufferFactory

public Netty5DataBufferFactory(io.netty5.buffer.BufferAllocator bufferAllocator)
Create a new `Netty5DataBufferFactory` based on the given factory.

Parameters:
  `bufferAllocator` - the factory to use

## Method Details

### getBufferAllocator

public io.netty5.buffer.BufferAllocator getBufferAllocator()
Return the `BufferAllocator` used by this factory.

### allocateBuffer

@Deprecated public Netty5DataBuffer allocateBuffer()
Deprecated.
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 Netty5DataBuffer 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 Netty5DataBuffer wrap(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 Netty5DataBuffer 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

### wrap

public Netty5DataBuffer wrap(io.netty5.buffer.Buffer buffer)
Wrap the given Netty `Buffer` in a `Netty5DataBuffer`.

Parameters:
  `buffer` - the Netty buffer to wrap
Returns:
  the wrapped buffer

### join

public DataBuffer join(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 uses Netty's `CompositeBuffer`.

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

### isDirect

public boolean isDirect()
Description copied from interface: `DataBufferFactory`
Indicates whether this factory allocates direct buffers (i.e. non-heap, native memory).

Specified by:
  `isDirect` in interface `DataBufferFactory`
Returns:
  `true` if this factory allocates direct buffers; `false` otherwise

### toBuffer

public static io.netty5.buffer.Buffer toBuffer(DataBuffer buffer)
Return the given Netty `DataBuffer` as a `Buffer`.

Returns the native buffer if `buffer` is a `Netty5DataBuffer`; returns `BufferAllocator.copyOf(ByteBuffer)` otherwise.

Parameters:
  `buffer` - the `DataBuffer` to return a `Buffer` for
Returns:
  the netty `Buffer`

### toString

public String toString()

Overrides:
  `toString` in class `Object`