private void processSimpleType()

in java/clickhouse-client/src/main/java/com/epam/deltix/clickhouse/writer/WriterCodecGenerator.java [266:369]


    private void processSimpleType(MethodVisitor methodVisitor, String memberName,
                                   Class<?> memberDataType, String memberTypeDescriptor,
                                   DataTypes dbDataTypeValue) {
        if (IntrospectionType.BY_GETTERS == introspectionType)
            invokeCommonLoadGetterInstructions(methodVisitor, memberName, memberTypeDescriptor);
        else if (IntrospectionType.BY_FIELDS == introspectionType)
            invokeCommonLoadFieldInstructions(methodVisitor, memberName, memberTypeDescriptor);
        else
            throw unsupportedIntrospectionType();

        switch (dbDataTypeValue) {
            case ENUM8:
            case ENUM16:
                methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_ENUM_NAME, CodecUtil.PROCESS_ENUM_DESC, false);
                break;

            case STRING:
            case FIXED_STRING:
                methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_STRING_NAME, CodecUtil.PROCESS_STRING_DESC, false);
                break;

            case UINT8:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_BOOLEAN_NAME, CodecUtil.PROCESS_PRIMITIVE_BOOLEAN_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_BOOLEAN_NAME, CodecUtil.PROCESS_BOOLEAN_DESC, false);
                break;
            case UINT16:
            case UINT32:
            case UINT64:
                throw unsupportedDataTypeException(dbDataTypeValue, memberDataType);

            case INT8:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_BYTE_NAME, CodecUtil.PROCESS_PRIMITIVE_BYTE_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_BYTE_NAME, CodecUtil.PROCESS_BYTE_DESC, false);
                break;
            case INT16:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_SHORT_NAME, CodecUtil.PROCESS_PRIMITIVE_SHORT_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_SHORT_NAME, CodecUtil.PROCESS_SHORT_DESC, false);
                break;
            case INT32:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_INTEGER_NAME, CodecUtil.PROCESS_PRIMITIVE_INTEGER_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_INTEGER_NAME, CodecUtil.PROCESS_INTEGER_DESC, false);
                break;
            case INT64:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_LONG_NAME, CodecUtil.PROCESS_PRIMITIVE_LONG_DESC, false);
                else if (memberDataType.equals(Long.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_LONG_NAME, CodecUtil.PROCESS_LONG_DESC, false);
                else if (memberDataType.equals(Instant.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_INSTANT_AS_LONG_NAME, CodecUtil.PROCESS_INSTANT_DESC, false);
                else if (memberDataType.equals(Duration.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DURATION_AS_LONG_NAME, CodecUtil.PROCESS_DURATION_DESC, false);
                break;

            case FLOAT32:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_FLOAT_NAME, CodecUtil.PROCESS_PRIMITIVE_FLOAT_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_FLOAT_NAME, CodecUtil.PROCESS_FLOAT_DESC, false);
                break;
            case FLOAT64:
                if (memberDataType.isPrimitive())
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DOUBLE_NAME, CodecUtil.PROCESS_PRIMITIVE_DOUBLE_DESC, false);
                else
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DOUBLE_NAME, CodecUtil.PROCESS_DOUBLE_DESC, false);
                break;

            case DECIMAL:
            case DECIMAL32:
            case DECIMAL64:
            case DECIMAL128:
                if (memberDataType.equals(Decimal64.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DECIMAL64_NAME, CodecUtil.PROCESS_DECIMAL64_DESC, false);
                else if (memberDataType.equals(BigDecimal.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_BIG_DECIMAL_NAME, CodecUtil.PROCESS_BIG_DECIMAL_DESC, false);
                break;

            case DATE:
                if (memberDataType.equals(long.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DATE_NAME, CodecUtil.PROCESS_DATE_BY_PRIMITIVE_LONG_DESC, false);
                else if (memberDataType.equals(Long.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DATE_NAME, CodecUtil.PROCESS_DATE_BY_LONG_DESC, false);
                else if (memberDataType.equals(LocalDate.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_DATE_NAME, CodecUtil.PROCESS_DATE_BY_LOCAL_DATE_DESC, false);
                break;

            case DATE_TIME:
            case DATE_TIME64:
                if (memberDataType.equals(Instant.class))
                    methodVisitor.visitMethodInsn(INVOKESTATIC, CodecUtil.INTERNAL_NAME, CodecUtil.PROCESS_INSTANT_NAME, CodecUtil.PROCESS_INSTANT_DESC, false);
                break;

            default:
                throw unsupportedDataTypeException(dbDataTypeValue, memberDataType);
        }
        storeParameterIndexValue(methodVisitor);
    }