Package com.google.flatbuffers
Class FlexBuffersBuilder
- java.lang.Object
-
- com.google.flatbuffers.FlexBuffersBuilder
-
public class FlexBuffersBuilder extends java.lang.ObjectHelper class that builds com.google.flatbuffers.FlexBuffersThis class presents all necessary APIs to create com.google.flatbuffers.FlexBuffers. A `ByteBuffer` will be used to store the data. It can be created internally, or passed down in the constructor.
There are some limitations when compared to original implementation in C++. Most notably:
-
No support for mutations (might change in the future).
-
Buffer size limited to
Integer.MAX_VALUE -
Since Java does not support unsigned type, all unsigned operations accepts an immediate higher representation of similar type.
-
-
-
Field Summary
Fields Modifier and Type Field Description static intBUILDER_FLAG_NONENo keys or strings will be sharedstatic intBUILDER_FLAG_SHARE_ALLReserved for the future.static intBUILDER_FLAG_SHARE_KEY_VECTORSReserved for the future.static intBUILDER_FLAG_SHARE_KEYSKeys will be shared between elements.static intBUILDER_FLAG_SHARE_KEYS_AND_STRINGSStrings and keys will be shared between elements.static intBUILDER_FLAG_SHARE_STRINGSStrings will be shared between elements.
-
Constructor Summary
Constructors Constructor Description FlexBuffersBuilder()Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilderwithBUILDER_FLAG_SHARE_KEYSset.FlexBuffersBuilder(int bufSize)Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilderwithBUILDER_FLAG_SHARE_KEYSset.FlexBuffersBuilder(ReadWriteBuf bb, int flags)FlexBuffersBuilder(java.nio.ByteBuffer bb)Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilder.FlexBuffersBuilder(java.nio.ByteBuffer bb, int flags)Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Reset the com.google.flatbuffers.FlexBuffersBuilder by purging all data that it holds.intendMap(java.lang.String key, int start)Finishes a map, but writing the information in the bufferintendVector(java.lang.String key, int start, boolean typed, boolean fixed)Finishes a vector, but writing the information in the bufferjava.nio.ByteBufferfinish()Finish writing the message into the buffer.ReadWriteBufgetBuffer()Return `ByteBuffer` containing FlexBuffer message.intputBlob(byte[] value)Adds a byte array into the messageintputBlob(java.lang.String key, byte[] val)Adds a byte array into the messagevoidputBoolean(boolean val)Insert a single boolean into the buffervoidputBoolean(java.lang.String key, boolean val)Insert a single boolean into the buffervoidputFloat(double value)Adds a 64-bit float into the buff.voidputFloat(float value)Adds a 32-bit float into the buff.voidputFloat(java.lang.String key, double val)Adds a 64-bit float into the buff.voidputFloat(java.lang.String key, float val)Adds a 32-bit float into the buff.voidputInt(int val)Adds an integer into the buffvoidputInt(long value)Adds a 64-bit integer into the buffvoidputInt(java.lang.String key, int val)Adds a integer into the buffvoidputInt(java.lang.String key, long val)Adds a integer into the buffvoidputNull()Insert a null value into the buffervoidputNull(java.lang.String key)Insert a null value into the bufferintputString(java.lang.String value)Adds a String into the bufferintputString(java.lang.String key, java.lang.String val)Adds a String into the buffervoidputUInt(int value)Adds a unsigned integer into the buff.voidputUInt(long value)Adds a unsigned integer (stored in a signed 64-bit integer) into the buff.voidputUInt64(java.math.BigInteger value)Adds a 64-bit unsigned integer (stored asBigInteger) into the buff.intstartMap()Start a new map in the buffer.intstartVector()Start a new vector in the buffer.
-
-
-
Field Detail
-
BUILDER_FLAG_NONE
public static final int BUILDER_FLAG_NONE
No keys or strings will be shared- See Also:
- Constant Field Values
-
BUILDER_FLAG_SHARE_KEYS
public static final int BUILDER_FLAG_SHARE_KEYS
Keys will be shared between elements. Identical keys will only be serialized once, thus possibly saving space. But serialization performance might be slower and consumes more memory.- See Also:
- Constant Field Values
-
BUILDER_FLAG_SHARE_STRINGS
public static final int BUILDER_FLAG_SHARE_STRINGS
Strings will be shared between elements. Identical strings will only be serialized once, thus possibly saving space. But serialization performance might be slower and consumes more memory. This is ideal if you expect many repeated strings on the message.- See Also:
- Constant Field Values
-
BUILDER_FLAG_SHARE_KEYS_AND_STRINGS
public static final int BUILDER_FLAG_SHARE_KEYS_AND_STRINGS
Strings and keys will be shared between elements.- See Also:
- Constant Field Values
-
BUILDER_FLAG_SHARE_KEY_VECTORS
public static final int BUILDER_FLAG_SHARE_KEY_VECTORS
Reserved for the future.- See Also:
- Constant Field Values
-
BUILDER_FLAG_SHARE_ALL
public static final int BUILDER_FLAG_SHARE_ALL
Reserved for the future.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FlexBuffersBuilder
public FlexBuffersBuilder(int bufSize)
Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilderwithBUILDER_FLAG_SHARE_KEYSset.- Parameters:
bufSize- size of buffer in bytes.
-
FlexBuffersBuilder
public FlexBuffersBuilder()
Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilderwithBUILDER_FLAG_SHARE_KEYSset.
-
FlexBuffersBuilder
@Deprecated public FlexBuffersBuilder(java.nio.ByteBuffer bb, int flags)Deprecated.Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilder.- Parameters:
bb- `ByteBuffer` that will hold the messageflags- Share flags
-
FlexBuffersBuilder
public FlexBuffersBuilder(ReadWriteBuf bb, int flags)
-
FlexBuffersBuilder
public FlexBuffersBuilder(java.nio.ByteBuffer bb)
Constructs a newly allocatedcom.google.flatbuffers.FlexBuffersBuilder. By default same keys will be serialized only once- Parameters:
bb- `ByteBuffer` that will hold the message
-
-
Method Detail
-
clear
public void clear()
Reset the com.google.flatbuffers.FlexBuffersBuilder by purging all data that it holds.
-
getBuffer
public ReadWriteBuf getBuffer()
Return `ByteBuffer` containing FlexBuffer message.#finish()must be called before calling this function otherwise an assert will trigger.- Returns:
- `ByteBuffer` with finished message
-
putNull
public void putNull()
Insert a null value into the buffer
-
putNull
public void putNull(java.lang.String key)
Insert a null value into the buffer- Parameters:
key- key used to store element in map
-
putBoolean
public void putBoolean(boolean val)
Insert a single boolean into the buffer- Parameters:
val- true or false
-
putBoolean
public void putBoolean(java.lang.String key, boolean val)Insert a single boolean into the buffer- Parameters:
key- key used to store element in mapval- true or false
-
putInt
public void putInt(int val)
Adds an integer into the buff- Parameters:
val- integer
-
putInt
public void putInt(java.lang.String key, int val)Adds a integer into the buff- Parameters:
key- key used to store element in mapval- integer
-
putInt
public void putInt(java.lang.String key, long val)Adds a integer into the buff- Parameters:
key- key used to store element in mapval- 64-bit integer
-
putInt
public void putInt(long value)
Adds a 64-bit integer into the buff- Parameters:
value- integer
-
putUInt
public void putUInt(int value)
Adds a unsigned integer into the buff.- Parameters:
value- integer representing unsigned value
-
putUInt
public void putUInt(long value)
Adds a unsigned integer (stored in a signed 64-bit integer) into the buff.- Parameters:
value- integer representing unsigned value
-
putUInt64
public void putUInt64(java.math.BigInteger value)
Adds a 64-bit unsigned integer (stored asBigInteger) into the buff. Warning: This operation might be very slow.- Parameters:
value- integer representing unsigned value
-
putFloat
public void putFloat(float value)
Adds a 32-bit float into the buff.- Parameters:
value- float representing value
-
putFloat
public void putFloat(java.lang.String key, float val)Adds a 32-bit float into the buff.- Parameters:
key- key used to store element in mapval- float representing value
-
putFloat
public void putFloat(double value)
Adds a 64-bit float into the buff.- Parameters:
value- float representing value
-
putFloat
public void putFloat(java.lang.String key, double val)Adds a 64-bit float into the buff.- Parameters:
key- key used to store element in mapval- float representing value
-
putString
public int putString(java.lang.String value)
Adds a String into the buffer- Parameters:
value- string- Returns:
- start position of string in the buffer
-
putString
public int putString(java.lang.String key, java.lang.String val)Adds a String into the buffer- Parameters:
key- key used to store element in mapval- string- Returns:
- start position of string in the buffer
-
putBlob
public int putBlob(byte[] value)
Adds a byte array into the message- Parameters:
value- byte array- Returns:
- position in buffer as the start of byte array
-
putBlob
public int putBlob(java.lang.String key, byte[] val)Adds a byte array into the message- Parameters:
key- key used to store element in mapval- byte array- Returns:
- position in buffer as the start of byte array
-
startVector
public int startVector()
Start a new vector in the buffer.- Returns:
- a reference indicating position of the vector in buffer. This reference must be passed along when the vector is finished using endVector()
-
endVector
public int endVector(java.lang.String key, int start, boolean typed, boolean fixed)Finishes a vector, but writing the information in the buffer- Parameters:
key- key used to store element in mapstart- reference for beginning of the vector. Returned by {link startVector()}typed- boolean indicating whether vector is typedfixed- boolean indicating whether vector is fixed- Returns:
- Reference to the vector
-
finish
public java.nio.ByteBuffer finish()
Finish writing the message into the buffer. After that no other element must be inserted into the buffer. Also, you must call this function before start using the FlexBuffer message- Returns:
- `ByteBuffer` containing the FlexBuffer message
-
startMap
public int startMap()
Start a new map in the buffer.- Returns:
- a reference indicating position of the map in buffer. This reference must be passed along when the map is finished using endMap()
-
endMap
public int endMap(java.lang.String key, int start)Finishes a map, but writing the information in the buffer- Parameters:
key- key used to store element in mapstart- reference for beginning of the map. Returned by {link startMap()}- Returns:
- Reference to the map
-
-