VarHandleFactory Class — netty Architecture
Architecture documentation for the VarHandleFactory class in VarHandleFactory.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 81212e1f_cdde_5038_be16_ab6e4d16af12["VarHandleFactory"] 0e8613e4_c44f_9d05_20fe_b054f9eb2c07["VarHandleFactory.java"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|defined in| 0e8613e4_c44f_9d05_20fe_b054f9eb2c07 3ff66f5b_c3b6_648c_67e0_85e67d6df39a["VarHandleFactory()"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|method| 3ff66f5b_c3b6_648c_67e0_85e67d6df39a 66403f6d_b942_8863_03f2_b44e1c27dc38["isSupported()"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|method| 66403f6d_b942_8863_03f2_b44e1c27dc38 b1880d01_24bc_4855_c06c_1af41f7879d6["Throwable()"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|method| b1880d01_24bc_4855_c06c_1af41f7879d6 b33bd1c6_e9c0_3560_5d83_ffece8a57b54["privateLookup()"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|method| b33bd1c6_e9c0_3560_5d83_ffece8a57b54 26b34607_4824_d23d_e8ac_21329633997d["VarHandle()"] 81212e1f_cdde_5038_be16_ab6e4d16af12 -->|method| 26b34607_4824_d23d_e8ac_21329633997d
Relationship Graph
Source Code
common/src/main/java/io/netty/util/internal/VarHandleFactory.java lines 25–199
final class VarHandleFactory {
private VarHandleFactory() {
}
private static final MethodHandle FIND_VAR_HANDLE;
private static final MethodHandle PRIVATE_LOOKUP_IN;
private static final VarHandle LONG_LE_ARRAY_VIEW;
private static final VarHandle LONG_BE_ARRAY_VIEW;
private static final VarHandle INT_LE_ARRAY_VIEW;
private static final VarHandle INT_BE_ARRAY_VIEW;
private static final VarHandle SHORT_LE_ARRAY_VIEW;
private static final VarHandle SHORT_BE_ARRAY_VIEW;
private static final VarHandle LONG_LE_BYTE_BUFFER_VIEW;
private static final VarHandle LONG_BE_BYTE_BUFFER_VIEW;
private static final VarHandle INT_LE_BYTE_BUFFER_VIEW;
private static final VarHandle INT_BE_BYTE_BUFFER_VIEW;
private static final VarHandle SHORT_LE_BYTE_BUFFER_VIEW;
private static final VarHandle SHORT_BE_BYTE_BUFFER_VIEW;
private static final Throwable UNAVAILABILITY_CAUSE;
static {
MethodHandle findVarHandle = null;
MethodHandle privateLookupIn = null;
VarHandle longLeArrayViewHandle = null;
VarHandle longBeArrayViewHandle = null;
VarHandle intLeArrayViewHandle = null;
VarHandle intBeArrayViewHandle = null;
VarHandle shortLeArrayViewHandle = null;
VarHandle shortBeArrayViewHandle = null;
VarHandle longLeByteBufferViewHandle = null;
VarHandle longBeByteBufferViewHandle = null;
VarHandle intLeByteBufferViewHandle = null;
VarHandle intBeByteBufferViewHandle = null;
VarHandle shortLeByteBufferViewHandle = null;
VarHandle shortBeByteBufferViewHandle = null;
Throwable error = null;
try {
MethodHandles.Lookup lookup = MethodHandles.lookup();
findVarHandle = lookup.findVirtual(MethodHandles.Lookup.class, "findVarHandle",
MethodType.methodType(VarHandle.class, Class.class, String.class, Class.class));
privateLookupIn = lookup.findStatic(MethodHandles.class, "privateLookupIn",
MethodType.methodType(MethodHandles.Lookup.class, Class.class, MethodHandles.Lookup.class));
MethodHandle byteArrayViewHandle = lookup.findStatic(MethodHandles.class, "byteArrayViewVarHandle",
MethodType.methodType(VarHandle.class, Class.class, ByteOrder.class));
longLeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(long[].class, ByteOrder.LITTLE_ENDIAN);
longBeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(long[].class, ByteOrder.BIG_ENDIAN);
intLeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(int[].class, ByteOrder.LITTLE_ENDIAN);
intBeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(int[].class, ByteOrder.BIG_ENDIAN);
shortLeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(
short[].class, ByteOrder.LITTLE_ENDIAN);
shortBeArrayViewHandle = (VarHandle) byteArrayViewHandle.invokeExact(short[].class, ByteOrder.BIG_ENDIAN);
MethodHandle byteBufferViewHandle = lookup.findStatic(MethodHandles.class, "byteBufferViewVarHandle",
MethodType.methodType(VarHandle.class, Class.class, ByteOrder.class));
longLeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
long[].class, ByteOrder.LITTLE_ENDIAN);
longBeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
long[].class, ByteOrder.BIG_ENDIAN);
intLeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
int[].class, ByteOrder.LITTLE_ENDIAN);
intBeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
int[].class, ByteOrder.BIG_ENDIAN);
shortLeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
short[].class, ByteOrder.LITTLE_ENDIAN);
shortBeByteBufferViewHandle = (VarHandle) byteBufferViewHandle.invokeExact(
short[].class, ByteOrder.BIG_ENDIAN);
error = null;
} catch (Throwable e) {
error = e;
findVarHandle = null;
privateLookupIn = null;
longLeArrayViewHandle = null;
longBeArrayViewHandle = null;
intLeArrayViewHandle = null;
intBeArrayViewHandle = null;
shortLeArrayViewHandle = null;
longLeByteBufferViewHandle = null;
longBeByteBufferViewHandle = null;
intLeByteBufferViewHandle = null;
intBeByteBufferViewHandle = null;
shortLeByteBufferViewHandle = null;
Source
Frequently Asked Questions
What is the VarHandleFactory class?
VarHandleFactory is a class in the netty codebase, defined in common/src/main/java/io/netty/util/internal/VarHandleFactory.java.
Where is VarHandleFactory defined?
VarHandleFactory is defined in common/src/main/java/io/netty/util/internal/VarHandleFactory.java at line 25.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free