Home / Class/ VarHandleFactory Class — netty Architecture

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;

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