public Handle createLambda()

in log4j-weaver/src/main/java/org/apache/logging/log4j/weaver/LocationCacheGenerator.java [68:89]


    public Handle createLambda(String internalClassName, SupplierLambdaType type) {
        final String cacheClassName = getCacheClassName(internalClassName);
        final LocationCacheContents contents = locationCacheClasses.computeIfAbsent(cacheClassName,
                k -> new LocationCacheContents());
        contents.addLambda(type);
        final String methodName = type.name().toLowerCase();
        final String methodDescriptor = Type.getMethodDescriptor(MESSAGE_TYPE, type.getArgumentTypes());
        switch (type) {
            case FORMATTED_MESSAGE:
            case ENTRY_MESSAGE_MESSAGE:
            case ENTRY_MESSAGE_STRING_OBJECTS:
            case ENTRY_MESSAGE_STRING_SUPPLIERS:
            case EXIT_MESSAGE_ENTRY_MESSAGE:
            case EXIT_MESSAGE_MESSAGE:
            case EXIT_MESSAGE_OBJECT_ENTRY_MESSAGE:
            case EXIT_MESSAGE_OBJECT_MESSAGE:
            case EXIT_MESSAGE_STRING_OBJECT:
                return new Handle(Opcodes.H_INVOKESTATIC, cacheClassName, methodName, methodDescriptor, false);
            default:
                throw new IllegalArgumentException();
        }
    }