Class DefaultDataBufferFactory
java.lang.Object
org.springframework.core.io.buffer.DefaultDataBufferFactory
- All Implemented Interfaces:
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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The default capacity when none is specified.static final DefaultDataBufferFactory
Shared instance based on the default constructor. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newDefaultDataBufferFactory
with default settings.DefaultDataBufferFactory
(boolean preferDirect) Creates a newDefaultDataBufferFactory
, indicating whether direct buffers should be created byallocateBuffer()
andallocateBuffer(int)
.DefaultDataBufferFactory
(boolean preferDirect, int defaultInitialCapacity) Creates a newDefaultDataBufferFactory
, indicating whether direct buffers should be created byallocateBuffer()
andallocateBuffer(int)
, and what the capacity is to be used forallocateBuffer()
. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.allocateBuffer
(int initialCapacity) Allocate a data buffer of the given initial capacity.boolean
isDirect()
Indicates whether this factory allocates direct buffers (i.e.join
(List<? extends DataBuffer> dataBuffers) Return a newDataBuffer
composed of thedataBuffers
elements joined together.toString()
wrap
(byte[] bytes) Wrap the givenbyte
array in aDataBuffer
.wrap
(ByteBuffer byteBuffer) Wrap the givenByteBuffer
in aDataBuffer
.
-
Field Details
-
DEFAULT_INITIAL_CAPACITY
public static final int DEFAULT_INITIAL_CAPACITYThe default capacity when none is specified.
-
-
Constructor Details
-
DefaultDataBufferFactory
public DefaultDataBufferFactory()Creates a newDefaultDataBufferFactory
with default settings.- See Also:
-
DefaultDataBufferFactory
public DefaultDataBufferFactory(boolean preferDirect) Creates a newDefaultDataBufferFactory
, indicating whether direct buffers should be created byallocateBuffer()
andallocateBuffer(int)
.- Parameters:
preferDirect
-true
if direct buffers are to be preferred;false
otherwise
-
DefaultDataBufferFactory
public DefaultDataBufferFactory(boolean preferDirect, int defaultInitialCapacity) Creates a newDefaultDataBufferFactory
, indicating whether direct buffers should be created byallocateBuffer()
andallocateBuffer(int)
, and what the capacity is to be used forallocateBuffer()
.- Parameters:
preferDirect
-true
if direct buffers are to be preferred;false
otherwise
-
-
Method Details
-
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 interfaceDataBufferFactory
- Returns:
- the allocated buffer
-
allocateBuffer
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 interfaceDataBufferFactory
- Parameters:
initialCapacity
- the initial capacity of the buffer to allocate- Returns:
- the allocated buffer
-
wrap
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
byteBuffer
- the NIO byte buffer to wrap- Returns:
- the wrapped buffer
-
wrap
Description copied from interface:DataBufferFactory
- Specified by:
wrap
in interfaceDataBufferFactory
- Parameters:
bytes
- the byte array to wrap- Returns:
- the wrapped buffer
-
join
Return a newDataBuffer
composed of thedataBuffers
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 indataBuffers
.- Specified by:
join
in interfaceDataBufferFactory
- 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 interfaceDataBufferFactory
- Returns:
true
if this factory allocates direct buffers;false
otherwise
-
toString
-