class file writing support for AttributeMappers.
Supports writing portions of a class file to a growable buffer, such
as writing various numerical types (e.g., u2, u4), to the end
of the buffer, as well as to create constant pool entries.
All numeric values in the class file format are big endian. Writing larger numeric values to smaller
numeric values are always done with truncation, that the least significant
bytes are kept and the other bytes are silently dropped. As a result,
numeric value writing methods can write both signed and unsigned values, and
users should validate their values before writing if silent dropping of most
significant bytes is not the intended behavior.
AttributeMapper#writeAttribute(BufWriter, Attribute)
| Modifier and Type | Method and Description |
|---|---|
| public boolean | Returns: whether the provided constant pool is index-compatible with the constant pool of this bufferthe other constant pool other)Returns whether the provided constant pool is index-compatible with the constant pool of this buffer. |
| public ConstantPoolBuilder | Returns: the constant pool builder associated with this bufferReturns the constant pool builder associated with this buffer. |
| public void | patchInt(int
the offset in this buffer at which to patch offset, int the size of the integer value being written, in bytes size, int the integer value to be truncated value)Patches a previously written integer value. |
| public void | reserveSpace(int
the number of bytes to reserve freeBytes)Ensures that the buffer has at least |
| public int | Returns: the number of bytes that have been written to the bufferReturns the number of bytes that have been written to the buffer. |
| public void | |
| public void | writeBytes(byte[]
the byte array arr, int the start offset of the range within the byte array start, int the length of the range length)Writes a range of a byte array to the buffer. |
| public void | |
| public void | |
| public void | writeIndex(PoolEntry
the constant pool entry entry)Writes the index of the specified constant pool entry as a |
| public void | writeIndexOrZero(PoolEntry
the constant pool entry, may be entry)nullWrites the index of the specified constant pool entry, or the value
|
| public void | |
| public void | writeIntBytes(int
the size of the integer value being written, in bytes intSize, long the value to be truncated intValue)Writes a multibyte value to the buffer. |
| public void | |
| public void | |
| public void |
| canWriteDirect | back to summary |
|---|---|
| public boolean canWriteDirect(ConstantPool other) Returns whether the provided constant pool is index-compatible with the constant pool of this buffer.
This is a shortcut for
| |
| constantPool | back to summary |
|---|---|
| public ConstantPoolBuilder constantPool() Returns the constant pool builder associated with this buffer.
| |
| patchInt | back to summary |
|---|---|
| public void patchInt(int offset, int size, int value) Patches a previously written integer value. API Note The
| |
| reserveSpace | back to summary |
|---|---|
| public void reserveSpace(int freeBytes) Ensures that the buffer has at least The writing result is the same without calls to this method, but the writing process may be slower. API Note This is a hint that changes no visible state of the buffer; it helps to reduce reallocation of the underlying storage by allocating sufficient space at once.
| |
| size | back to summary |
|---|---|
| public int size() Returns the number of bytes that have been written to the buffer.
| |
| writeBytes | back to summary |
|---|---|
| public void writeBytes(byte[] arr) Writes the contents of a byte array to the buffer.
| |
| writeBytes | back to summary |
|---|---|
| public void writeBytes(byte[] arr, int start, int length) Writes a range of a byte array to the buffer.
| |
| writeDouble | back to summary |
|---|---|
| public void writeDouble(double x) Writes a double value, of 8 bytes, to the buffer.
In the conversions, all NaN values of the
| |
| writeFloat | back to summary |
|---|---|
| public void writeFloat(float x) Writes a float value, of 4 bytes, to the buffer.
In the conversions, all NaN values of the
| |
| writeIndex | back to summary |
|---|---|
| public void writeIndex(PoolEntry entry) Writes the index of the specified constant pool entry as a
| |
| writeIndexOrZero | back to summary |
|---|---|
| public void writeIndexOrZero(PoolEntry entry) Writes the index of the specified constant pool entry, or the value
| |
| writeInt | back to summary |
|---|---|
| public void writeInt(int x) Writes 4 bytes, or an int, to the buffer.
| |
| writeIntBytes | back to summary |
|---|---|
| public void writeIntBytes(int intSize, long intValue) Writes a multibyte value to the buffer.
| |
| writeLong | back to summary |
|---|---|
| public void writeLong(long x) Writes 8 bytes, or a long, to the buffer.
| |
| writeU1 | back to summary |
|---|---|
| public void writeU1(int x) Writes a byte to the buffer.
| |
| writeU2 | back to summary |
|---|---|
| public void writeU2(int x) Writes 2 bytes, or a short, to the buffer.
| |