APIdia Launch Partner
Top Description Inners Fields Constructors Methods
io.github.spannm.jackcess.impl

public abstract Class TempBufferHolder

extends Object
Class Inheritance
Known Direct Subclasses
io.github.spannm.jackcess.impl.TempBufferHolder.HardTempBufferHolder, io.github.spannm.jackcess.impl.TempBufferHolder.SoftTempBufferHolder, io.github.spannm.jackcess.impl.TempBufferHolder.NoneTempBufferHolder
Imports
java.lang.ref.Reference, .SoftReference, java.nio.ByteBuffer, .ByteOrder

Manages a reference to a ByteBuffer.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
TempBufferHolder.HardTempBufferHolder

TempBufferHolder which has a hard reference to the buffer.

private static class
TempBufferHolder.NoneTempBufferHolder

TempBufferHolder which has a no reference to the buffer.

private static class
TempBufferHolder.SoftTempBufferHolder

TempBufferHolder which has a soft reference to the buffer.

public static enum
TempBufferHolder.Type

The caching type for the buffer holder.

Field Summary

Modifier and TypeField and Description
private final boolean
autoRewind

whether or not every get automatically rewinds the buffer

private static final Reference<ByteBuffer>
private int
modCount

the mod count of the current buffer (changes on every realloc)

private final ByteOrder
order

ByteOrder for all allocated buffers

Constructor Summary

AccessConstructor and Description
protected
TempBufferHolder(boolean autoRewind, ByteOrder order)

Method Summary

Modifier and TypeMethod and Description
public abstract void
clear()

Releases any referenced memory.

public final ByteBuffer
getBuffer(int size)

Returns a ByteBuffer of at least the given size, with the limit set to the given size, and the predefined byteOrder.

public abstract ByteBuffer

Returns:

the currently referenced buffer, null if none
getExistingBuffer
()

Returns the currently referenced buffer, null if none.

public int

Returns:

the modification count of the current buffer (this count is changed every time the buffer is reallocated)
getModCount
()

Returns the modification count of the current buffer (this count is changed every time the buffer is reallocated).

public final ByteBuffer
getPageBuffer(PageChannel pageChannel)

Returns a ByteBuffer of at least the defined page size, with the limit set to the page size, and the predefined byteOrder.

public static TempBufferHolder
newHolder(TempBufferHolder.Type
the type of reference desired for any created buffer
type
,
boolean
whether or not every get automatically rewinds the buffer
autoRewind
)

Creates a new TempBufferHolder.

public static TempBufferHolder
newHolder(TempBufferHolder.Type
the type of reference desired for any created buffer
type
,
boolean
whether or not every get automatically rewinds the buffer
autoRewind
,
ByteOrder
byte order for all allocated buffers
order
)

Creates a new TempBufferHolder.

protected abstract void
setNewBuffer(ByteBuffer newBuffer)

Sets a new buffer for this holder.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

autoRewindback to summary
private final boolean autoRewind

whether or not every get automatically rewinds the buffer

EMPTY_BUFFER_REFback to summary
private static final Reference<ByteBuffer> EMPTY_BUFFER_REF
modCountback to summary
private int modCount

the mod count of the current buffer (changes on every realloc)

orderback to summary
private final ByteOrder order

ByteOrder for all allocated buffers

Constructor Detail

TempBufferHolderback to summary
protected TempBufferHolder(boolean autoRewind, ByteOrder order)

Method Detail

clearback to summary
public abstract void clear()

Releases any referenced memory.

getBufferback to summary
public final ByteBuffer getBuffer(int size)

Returns a ByteBuffer of at least the given size, with the limit set to the given size, and the predefined byteOrder. Will be rewound iff autoRewind is enabled for this buffer.

getExistingBufferback to summary
public abstract ByteBuffer getExistingBuffer()

Returns the currently referenced buffer, null if none.

Returns:ByteBuffer

the currently referenced buffer, null if none

getModCountback to summary
public int getModCount()

Returns the modification count of the current buffer (this count is changed every time the buffer is reallocated).

Returns:int

the modification count of the current buffer (this count is changed every time the buffer is reallocated)

getPageBufferback to summary
public final ByteBuffer getPageBuffer(PageChannel pageChannel)

Returns a ByteBuffer of at least the defined page size, with the limit set to the page size, and the predefined byteOrder. Will be rewound iff autoRewind is enabled for this buffer.

newHolderback to summary
public static TempBufferHolder newHolder(TempBufferHolder.Type type, boolean autoRewind)

Creates a new TempBufferHolder.

Parameters
type:TempBufferHolder.Type

the type of reference desired for any created buffer

autoRewind:boolean

whether or not every get automatically rewinds the buffer

newHolderback to summary
public static TempBufferHolder newHolder(TempBufferHolder.Type type, boolean autoRewind, ByteOrder order)

Creates a new TempBufferHolder.

Parameters
type:TempBufferHolder.Type

the type of reference desired for any created buffer

autoRewind:boolean

whether or not every get automatically rewinds the buffer

order:ByteOrder

byte order for all allocated buffers

setNewBufferback to summary
protected abstract void setNewBuffer(ByteBuffer newBuffer)

Sets a new buffer for this holder.

io.github.spannm.jackcess.impl back to summary

private final Class TempBufferHolder.HardTempBufferHolder

extends TempBufferHolder
Class Inheritance

TempBufferHolder which has a hard reference to the buffer.

Field Summary

Modifier and TypeField and Description
private ByteBuffer

Constructor Summary

AccessConstructor and Description
private
HardTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Summary

Modifier and TypeMethod and Description
public void
clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

public ByteBuffer
getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

protected void
setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Inherited from io.github.spannm.jackcess.impl.TempBufferHolder:
getBuffergetModCountgetPageBuffernewHoldernewHolder

Field Detail

bufferback to summary
private ByteBuffer buffer

Constructor Detail

HardTempBufferHolderback to summary
private HardTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Detail

clearback to summary
public void clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

Annotations
@Override
getExistingBufferback to summary
public ByteBuffer getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

Annotations
@Override
setNewBufferback to summary
protected void setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Annotations
@Override
io.github.spannm.jackcess.impl back to summary

private final Class TempBufferHolder.NoneTempBufferHolder

extends TempBufferHolder
Class Inheritance

TempBufferHolder which has a no reference to the buffer.

Constructor Summary

AccessConstructor and Description
private
NoneTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Summary

Modifier and TypeMethod and Description
public void
clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

public ByteBuffer
getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

protected void
setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Inherited from io.github.spannm.jackcess.impl.TempBufferHolder:
getBuffergetModCountgetPageBuffernewHoldernewHolder

Constructor Detail

NoneTempBufferHolderback to summary
private NoneTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Detail

clearback to summary
public void clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

Annotations
@Override
getExistingBufferback to summary
public ByteBuffer getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

Annotations
@Override
setNewBufferback to summary
protected void setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Annotations
@Override
io.github.spannm.jackcess.impl back to summary

private final Class TempBufferHolder.SoftTempBufferHolder

extends TempBufferHolder
Class Inheritance

TempBufferHolder which has a soft reference to the buffer.

Field Summary

Modifier and TypeField and Description
private Reference<ByteBuffer>

Constructor Summary

AccessConstructor and Description
private
SoftTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Summary

Modifier and TypeMethod and Description
public void
clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

public ByteBuffer
getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

protected void
setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Inherited from io.github.spannm.jackcess.impl.TempBufferHolder:
getBuffergetModCountgetPageBuffernewHoldernewHolder

Field Detail

bufferback to summary
private Reference<ByteBuffer> buffer

Constructor Detail

SoftTempBufferHolderback to summary
private SoftTempBufferHolder(boolean autoRewind, ByteOrder order)

Method Detail

clearback to summary
public void clear()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.clear.

Releases any referenced memory.

Annotations
@Override
getExistingBufferback to summary
public ByteBuffer getExistingBuffer()

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.getExistingBuffer.

Returns the currently referenced buffer, null if none.

Annotations
@Override
setNewBufferback to summary
protected void setNewBuffer(ByteBuffer newBuffer)

Implements abstract io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Doc from io.github.spannm.jackcess.impl.TempBufferHolder.setNewBuffer.

Sets a new buffer for this holder.

Annotations
@Override
io.github.spannm.jackcess.impl back to summary

public final Enum TempBufferHolder.Type

extends Enum<TempBufferHolder.Type>
Class Inheritance

The caching type for the buffer holder.

Field Summary

Modifier and TypeField and Description
public static final TempBufferHolder.Type
HARD

a hard reference is maintained to the created buffer

public static final TempBufferHolder.Type
NONE

no reference is maintained to a created buffer (new buffer every time)

public static final TempBufferHolder.Type
SOFT

a soft reference is maintained to the created buffer (may be garbage collected if memory gets tight)

Constructor Summary

AccessConstructor and Description
private
Type()

Method Summary

Modifier and TypeMethod and Description
public static TempBufferHolder.Type
public static TempBufferHolder.Type[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

HARDback to summary
public static final TempBufferHolder.Type HARD

a hard reference is maintained to the created buffer

NONEback to summary
public static final TempBufferHolder.Type NONE

no reference is maintained to a created buffer (new buffer every time)

SOFTback to summary
public static final TempBufferHolder.Type SOFT

a soft reference is maintained to the created buffer (may be garbage collected if memory gets tight)

Constructor Detail

Typeback to summary
private Type()

Method Detail

valueOfback to summary
public static TempBufferHolder.Type valueOf(String name)
valuesback to summary
public static TempBufferHolder.Type[] values()